#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