comparison method

Parser<ExpressionNode> comparison()
inherited

Comparison expressions with chaining: a < b <= c.

Implementation

Parser<ExpressionNode> comparison() =>
    seq2(ref0(bitwiseOr), seq2(ref0(compOp), ref0(bitwiseOr)).star()).map2((
      left,
      rest,
    ) {
      if (rest.isEmpty) return left;
      final ops = <String>[];
      final comparators = <ExpressionNode>[];
      for (final pair in rest) {
        ops.add(pair.$1);
        comparators.add(pair.$2);
      }
      return CompareNode(
        left: left,
        operators: ops,
        comparators: comparators,
      );
    });