expression method

Parser<ExpressionNode> expression()

Implementation

Parser<ExpressionNode> expression() =>
    seq2(
      ref0(simpleExpression),
      seq2(
        [
          ref1(token, '<='),
          ref1(token, '<>'),
          ref1(token, '<'),
          ref1(token, '>='),
          ref1(token, '>'),
          ref1(token, '='),
          ref1(token, 'in'),
        ].toChoiceParser(),
        ref0(simpleExpression),
      ).optional(),
    ).map2((left, rightPart) {
      if (rightPart == null) return left;
      return BinaryExpressionNode(
        operator: rightPart.$1,
        left: left,
        right: rightPart.$2,
      );
    });