MalachScript/src/Parser/Statements/ParsedStatementKind.hpp

74 lines
2.7 KiB
C++

#ifndef MALACHSCRIPT_PARSEDSTATEMENTKIND_HPP
#define MALACHSCRIPT_PARSEDSTATEMENTKIND_HPP
namespace MalachScript::Parser {
enum class ParsedStatementKind : uint8_t {
Unknown,
Script,
Class,
TypeDef,
Namespace,
Type,
ParamList,
Func,
VirtProp,
StatBlock,
Var,
If,
Assign,
BinaryExpression,
Void,
Literal,
Return,
VarAccess,
Increment,
Decrement,
Continue,
Break,
For,
While,
DoWhile,
Try,
Switch,
Case,
};
class ParsedStatementKindHelper {
public:
static std::string_view ToString(ParsedStatementKind kind) {
switch (kind) {
case ParsedStatementKind::Unknown: return "Unknown";
case ParsedStatementKind::Script: return "Script";
case ParsedStatementKind::Class: return "Class";
case ParsedStatementKind::TypeDef: return "TypeDef";
case ParsedStatementKind::Namespace: return "Namespace";
case ParsedStatementKind::Type: return "Type";
case ParsedStatementKind::ParamList: return "ParamList";
case ParsedStatementKind::Func: return "Func";
case ParsedStatementKind::VirtProp: return "VirtProp";
case ParsedStatementKind::StatBlock: return "StatBlock";
case ParsedStatementKind::Var: return "Var";
case ParsedStatementKind::If: return "If";
case ParsedStatementKind::Assign: return "Assign";
case ParsedStatementKind::BinaryExpression: return "BinaryExpression";
case ParsedStatementKind::Void: return "Void";
case ParsedStatementKind::Literal: return "Literal";
case ParsedStatementKind::Return: return "Return";
case ParsedStatementKind::VarAccess: return "VarAccess";
case ParsedStatementKind::Increment: return "Increment";
case ParsedStatementKind::Decrement: return "Decrement";
case ParsedStatementKind::Continue: return "Continue";
case ParsedStatementKind::Break: return "Break";
case ParsedStatementKind::For: return "For";
case ParsedStatementKind::While: return "While";
case ParsedStatementKind::DoWhile: return "DoWhile";
case ParsedStatementKind::Try: return "Try";
case ParsedStatementKind::Switch: return "Switch";
case ParsedStatementKind::Case: return "Case";
}
}
};
}
#endif // MALACHSCRIPT_PARSEDSTATEMENTKIND_HPP