diff --git a/src/interpreter.cpp b/src/interpreter.cpp index d41ff18..7b246a5 100644 --- a/src/interpreter.cpp +++ b/src/interpreter.cpp @@ -82,6 +82,20 @@ EvalResult eval(Node &ast) { return expr; } break; + case NodeType::LIncr: + case NodeType::RIncr: { + Token identifierTok = get(node.children[0]); + string identifier = get(identifierTok.data); + + return node.type == NodeType::LIncr ? ++memory[identifier] : memory[identifier]++; + } + case NodeType::LDecr: + case NodeType::RDecr: { + Token identifierTok = get(node.children[0]); + string identifier = get(identifierTok.data); + + return node.type == NodeType::LDecr ? --memory[identifier] : memory[identifier]--; + } } } else {