-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDebug.cpp
More file actions
42 lines (41 loc) · 2.03 KB
/
Debug.cpp
File metadata and controls
42 lines (41 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "Debug.h"
std::string Noble::Core::Debug::OpToString(const Op::Code op)
{
std::stringstream ss;
switch (op)
{
case Op::Code::Add: ss << "ADD"; break;
case Op::Code::Constant: ss << "CST"; break;
case Op::Code::ConstantString: ss << "STR"; break;
case Op::Code::DefineGlobal: ss << "DFG"; break;
case Op::Code::Divide: ss << "DIV"; break;
case Op::Code::Equal: ss << "EQL"; break;
case Op::Code::False: ss << "FAL"; break;
case Op::Code::GetGlobal: ss << "GEG"; break;
case Op::Code::GetLocal: ss << "GEL"; break;
case Op::Code::Greater: ss << "GTR"; break;
case Op::Code::GreaterEqual: ss << "GEQ"; break;
case Op::Code::Jump: ss << "JMP"; break;
case Op::Code::JumpIfFalse: ss << "JIF"; break;
case Op::Code::JumpIfTrue: ss << "JIT"; break;
case Op::Code::Less: ss << "LES"; break;
case Op::Code::LessEqual: ss << "LEQ"; break;
case Op::Code::Loop: ss << "LOP"; break;
case Op::Code::Modulo: ss << "MOD"; break;
case Op::Code::Multiply: ss << "MUL"; break;
case Op::Code::Negate: ss << "NEG"; break;
case Op::Code::Not: ss << "NOT"; break;
case Op::Code::NotEqual: ss << "NEQ"; break;
case Op::Code::Null: ss << "NUL"; break;
case Op::Code::Pop: ss << "POP"; break;
case Op::Code::PopN: ss << "PPN"; break;
case Op::Code::Print: ss << "PRT"; break;
case Op::Code::Return: ss << "RET"; break;
case Op::Code::SetGlobal: ss << "SEG"; break;
case Op::Code::SetLocal: ss << "SEL"; break;
case Op::Code::Subtract: ss << "SUB"; break;
case Op::Code::True: ss << "TRU"; break;
default: ss << "Unknown operation '" << static_cast<unsigned>(op) << "'\n"; break;
}
return ss.str();
}