logicalExpr function

Parser logicalExpr()

Logical expression: comparison (and|or comparison)* Lowest precedence binary operator.

Implementation

Parser logicalExpr() {
  return (ref0(comparisonExpr) &
          (ref0(logicalOperator) & ref0(comparisonExpr)).star())
      .map((values) {
        var left = values[0];
        final pairs = values[1] as List;
        for (final pair in pairs) {
          final op = pair[0];
          final right = pair[1];
          left = BinaryOperation(left, op, right);
        }
        return left;
      })
      .labeled('logicalExpr');
}