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()); }
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())); }
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); }