make_predicate (test/src/sql_parser.rb)

    # File test/src/sql_parser.rb, line 75
      def make_predicate expr, rel
        expr_list = list expr
        comparison = make_comparison_predicate expr, rel
        group_comparison = sequence(expr_list, Comparators, expr_list, &ctor(GroupComparisonPredicate))
        bool = nil
        lazy_bool = lazy{bool}
        bool_term = keyword[:true] >> true | keyword[:false] >> false |
          comparison | group_comparison | paren(lazy_bool) |
          make_exists(rel) | make_not_exists(rel)
        bool_table = OperatorTable.new.
          infixl(keyword[:or] >> logical_operator(:or), 20).
          infixl(keyword[:and] >> logical_operator(:and), 30).
          prefix(keyword[:not] >> ctor(NotPredicate), 40)
        bool = Expressions.build(bool_term, bool_table)
      end