public Expression Parse(PrattParser parser, Expression left, Token token) { var right = parser.ParseExpression( _precedence - (_isRight ? 1 : 0)); return(new BinaryOpExpression(left, token, right)); }
public Expression Parse(PrattParser parser, Token token) { var expression = parser.ParseExpression(); parser.ConsumeNext(TokenType.RPAREN); return(expression); }
public Expression Parse(PrattParser parser, Token token) { parser.ConsumeNext(TokenType.LPAREN); var operand = parser.ParseExpression(PrecedenceTable.FUNCTION); parser.ConsumeNext(TokenType.RPAREN); return(new AbsExpression(token.Location, operand)); }
public Expression Parse(PrattParser parser, Token token) { var operand = parser.ParseExpression(_precedence); return(new PrefixExpression(token.TokenType, token.Location, operand)); }