private AST plusOrMinusExpression()
{
#if WRITE_DEBUG_INFO
Console.WriteLine("plus or minus expression");
#endif
AST lhs = multiplicationExpression();
if ( lookAhead(1).getTokenString() == "+" ||
lookAhead(1).getTokenString() == "-" )
{
Token operatorToken = match(Token.TokenType.OPERATOR);
AST rhs = plusOrMinusExpression();
checkLeftHandSide(lhs, operatorToken);
checkRightHandSide(rhs, operatorToken);
AST plusMinusExpressionTree = new AST(operatorToken);
plusMinusExpressionTree.addChild(lhs);
plusMinusExpressionTree.addChild(rhs);
return plusMinusExpressionTree;
} else {
return lhs;
}
}