private IExpression ParseBinaryExpressionFirstLevel()
{
IExpression expression = this.ParseBinaryExpressionSecondLevel();
if (expression == null)
return null;
while (this.TryParse(TokenType.Operator, "+", "-"))
{
Token oper = this.lexer.NextToken();
IExpression right = this.ParseBinaryExpressionSecondLevel();
ArithmeticOperator op = oper.Value == "+" ? ArithmeticOperator.Add : ArithmeticOperator.Subtract;
expression = new ArithmeticBinaryExpression(op, expression, right);
}
return expression;
}