Start work on functions
This commit is contained in:
@@ -46,6 +46,17 @@ void Interpreter::initInterpreter(vector<string> args) {
|
||||
variables["args"] = buf;
|
||||
}
|
||||
|
||||
valtype Interpreter::keywordToValtype(keywords in) {
|
||||
switch (in) {
|
||||
case keywords::INT: return valtype::INT;
|
||||
case keywords::DEC: return valtype::DEC;
|
||||
case keywords::BOOL: return valtype::BOOL;
|
||||
case keywords::STR: return valtype::STR;
|
||||
default: return valtype::KEYWORD;
|
||||
}
|
||||
return valtype::KEYWORD;
|
||||
}
|
||||
|
||||
void Interpreter::interpret(vector<Token> tokenList) {
|
||||
if (debugMode) log.toggleDebugPrint();
|
||||
tokens = tokenList;
|
||||
@@ -532,6 +543,17 @@ void Interpreter::executeCode(vector<Token> tokens) {
|
||||
} else {
|
||||
syntaxError.generalError("Achievement get: How did we get here?");
|
||||
}
|
||||
} else if (tokens[i].keyword == keywords::FUNCTION) {
|
||||
i++;
|
||||
Function buf;
|
||||
if (tokens[i].type != valtype::KEYWORD) syntaxError.generalError("fun needs a keyword, not a value");
|
||||
buf.type = keywordToValtype(tokens[i].keyword);
|
||||
i++;
|
||||
string valName;
|
||||
if (tokens[i].value.type == valtype::STR) valName = get<string>(tokens[i].value.value);
|
||||
buf.startToken = tokenIndex;
|
||||
i++;
|
||||
if (tokens[i].keyword != )
|
||||
} else {
|
||||
if (tokens[i].keyword == keywords::VALUE && tokens[i].value.type == valtype::STR && variables.find(get<string>(tokens[i].value.value)) != variables.end()) {
|
||||
log.debug("Manipulating variable...");
|
||||
|
Reference in New Issue
Block a user