Пример #1
0
 private Maybe<Result> VisitRegExp(QueryParser.Bool_exprContext context)
 {
     var left = new BasicExprVisitor(_zmi, _env).Visit(context.basic_expr()[0]);
     return left.Bind(l =>
         l.RegExpr(new ResultSingle(new ValueString(context.string_const().GetText().Trim('\"'))))
             .Just());
 }
Пример #2
0
 private Maybe<Result> VisitOp(QueryParser.Bool_exprContext context)
 {
     var left = new BasicExprVisitor(_zmi, _env).Visit(context.basic_expr()[0]);
     var right = new BasicExprVisitor(_zmi, _env).Visit(context.basic_expr()[1]);
     return left.Zip(right)
         .Bind(tuple => new RelOpVisitor((tuple.Item1, tuple.Item2)).Visit(context.rel_op()));
 }
Пример #3
0
 private (Maybe<Result>, Maybe<Result>) VisitTwo(QueryParser.Fact_exprContext context)
 {
     var left = new BasicExprVisitor(_zmi, _env).Visit(context.fact_expr());
     var right = new BasicExprVisitor(_zmi, _env).Visit(context.neg_expr());
     return (left, right);
 }