parseExpr method

  1. @override
ASTNode parseExpr()
override

Recursive descent parsing

Assignment operator =, precedence 1, associativity right

Implementation

@override
ASTNode parseExpr() {
  ASTNode? expr;
  final left = _parserTernaryExpr();
  if (lexicon.assignments.contains(curTok.type)) {
    final op = advance();
    final right = parseExpr();
    expr = AssignExpr(left, op.lexeme, right,
        source: currentSource,
        line: left.line,
        column: left.column,
        offset: left.offset,
        length: curTok.offset - left.offset);
  } else {
    expr = left;
  }
  return expr;
}