private AST plusplusOrMinusminus()
{
#if WRITE_DEBUG_INFO
Console.WriteLine("plusplusOrMinusminus");
#endif
Token nameToken = match(Token.TokenType.NAME);
Token operatorToken = match(Token.TokenType.OPERATOR);
AST operationTree = null;
if(operatorToken.getTokenString() == "++") {
operationTree = new AST(new Token(Token.TokenType.OPERATOR, "+"));
}
else if(operatorToken.getTokenString() == "--") {
operationTree = new AST(new Token(Token.TokenType.OPERATOR, "-"));
}
else {
throw new Error("Invalid operator token");
}
operationTree.addChild(new AST(nameToken));
operationTree.addChild(new AST(new TokenWithValue(Token.TokenType.NUMBER, "1", 1.0f)));
AST assignmentTree = new AST_Assignment(new Token(Token.TokenType.ASSIGNMENT, "="), nameToken.getTokenString());
assignmentTree.addChild(operationTree);
return assignmentTree;
}