parser_infix.go 419 B

1234567891011121314151617181920
  1. package parser
  2. import (
  3. "code.osinet.fr/fgm/waiig15/ast"
  4. )
  5. func (p *Parser) parseInfixExpression(left ast.Expression) ast.Expression {
  6. defer untrace(trace("parseInfixExpression"))
  7. expression := &ast.InfixExpression{
  8. Token: p.curToken,
  9. Operator: p.curToken.Literal,
  10. Left: left,
  11. }
  12. precedence := p.curPrecedence()
  13. p.nextToken()
  14. expression.Right = p.parseExpression(precedence)
  15. return expression
  16. }