22
33#include < stdexcept>
44
5- const std::array<Operation::Type, 33 > Operation::Types = {
5+ const std::array<Operation::Type, 34 > Operation::Types = {
66 Operation::Type::NOP, Operation::Type::MOV, Operation::Type::ADD,
77 Operation::Type::SUB, Operation::Type::TRN, Operation::Type::MUL,
8- Operation::Type::DIV, Operation::Type::DIF, Operation::Type::MOD,
9- Operation::Type::POW, Operation::Type::GCD, Operation::Type::LEX,
10- Operation::Type::BIN, Operation::Type::LOG, Operation::Type::NRT,
11- Operation::Type::DGS, Operation::Type::DGR, Operation::Type::EQU,
12- Operation::Type::NEQ, Operation::Type::LEQ, Operation::Type::GEQ,
13- Operation::Type::MIN, Operation::Type::MAX, Operation::Type::BAN,
14- Operation::Type::BOR, Operation::Type::BXO, Operation::Type::LPB,
15- Operation::Type::LPE, Operation::Type::CLR, Operation::Type::SRT,
16- Operation::Type::SEQ, Operation::Type::PRG, Operation::Type::DBG,
8+ Operation::Type::DIV, Operation::Type::DIF, Operation::Type::DIR,
9+ Operation::Type::MOD, Operation::Type::POW, Operation::Type::GCD,
10+ Operation::Type::LEX, Operation::Type::BIN, Operation::Type::LOG,
11+ Operation::Type::NRT, Operation::Type::DGS, Operation::Type::DGR,
12+ Operation::Type::EQU, Operation::Type::NEQ, Operation::Type::LEQ,
13+ Operation::Type::GEQ, Operation::Type::MIN, Operation::Type::MAX,
14+ Operation::Type::BAN, Operation::Type::BOR, Operation::Type::BXO,
15+ Operation::Type::LPB, Operation::Type::LPE, Operation::Type::CLR,
16+ Operation::Type::SRT, Operation::Type::SEQ, Operation::Type::PRG,
17+ Operation::Type::DBG,
1718};
1819
1920const Operation::Metadata& Operation::Metadata::get (Type t) {
@@ -33,6 +34,8 @@ const Operation::Metadata& Operation::Metadata::get(Type t) {
3334 Operation::Type::DIV, " div" , 2 , true , true , true };
3435 static Operation::Metadata dif{
3536 Operation::Type::DIF, " dif" , 2 , true , true , true };
37+ static Operation::Metadata dir{
38+ Operation::Type::DIR, " dir" , 2 , true , true , true };
3639 static Operation::Metadata mod{
3740 Operation::Type::MOD, " mod" , 2 , true , true , true };
3841 static Operation::Metadata pow{
@@ -100,6 +103,8 @@ const Operation::Metadata& Operation::Metadata::get(Type t) {
100103 return div;
101104 case Operation::Type::DIF:
102105 return dif;
106+ case Operation::Type::DIR:
107+ return dir;
103108 case Operation::Type::MOD:
104109 return mod;
105110 case Operation::Type::POW:
@@ -167,12 +172,6 @@ const Operation::Metadata& Operation::Metadata::get(const std::string& name) {
167172 if (name == " cmp" ) {
168173 return get (Operation::Type::EQU);
169174 }
170- if (name == " dis" ) {
171- return get (Operation::Type::DGS);
172- }
173- if (name == " dir" ) {
174- return get (Operation::Type::DGR);
175- }
176175 throw std::runtime_error (" invalid operation: " + name);
177176}
178177
0 commit comments