term method

Parser<ExpressionNode> term()

Implementation

Parser<ExpressionNode> term() => ref0(factor)
    .plusSeparated(
      [
        ref1(token, '*'),
        ref1(token, '/'),
        ref1(token, 'div'),
        ref1(token, 'mod'),
        ref1(token, 'and'),
      ].toChoiceParser(),
    )
    .map((sep) {
      final factors = sep.elements;
      final operators = sep.separators;
      var result = factors.first;
      for (var i = 0; i < operators.length; i++) {
        result = BinaryExpressionNode(
          operator: operators[i],
          left: result,
          right: factors[i + 1],
        );
      }
      return result;
    });