Implements very simple REPL, fixes several issues found with it.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2021-01-02 17:41:53 +01:00
parent de15173b0b
commit 9109b7513a
8 changed files with 317 additions and 11 deletions

View File

@@ -31,6 +31,41 @@ namespace MalachScript::Parser {
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::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