private IExpression ParseInfixExpression(IExpression left) { var expression = new InfixExpression(_current) { Operator = _current.Literal, Left = left, }; var precedence = CurrentPrecedence(); NextToken(); expression.Right = ParseExpression(precedence); return(expression); }
public IExpression ParseInfixExpression(IExpression left) { var expression = new InfixExpression() { Token = this.CurrentToken, Operator = this.CurrentToken.Literal, Left = left, }; var precedence = this.CurrentPrecedence; this.ReadToken(); expression.Right = this.ParseExpression(precedence); return(expression); }
private InfixExpression AssignmentOperatorInfixExpression(Identifier left) { NextToken(); var op = _current.Literal[0].ToString(); var infix = new InfixExpression(_current) { Left = left, Operator = op }; NextToken(); infix.Right = ParseExpression(Lowest); return(infix); }