comparisonExpr function

Parser comparisonExpr()

Comparison expression: arithmetic (comparisonOp arithmetic)? Note: Single comparison only (no chaining like a == b == c)

Implementation

Parser comparisonExpr() {
  return (ref0(arithmeticExpr) &
          (ref0(comparisonOperator) & ref0(arithmeticExpr)).optional())
      .map((values) {
        final left = values[0];
        final opAndRight = values[1];
        if (opAndRight == null) {
          return left;
        }
        final op = opAndRight[0];
        final right = opAndRight[1];
        return BinaryOperation(left, op, right);
      })
      .labeled('comparisonExpr');
}