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())); }
public override Maybe<Result> VisitBool_expr(QueryParser.Bool_exprContext context) { if (context.rel_op() != null) return VisitOp(context); if (context.REGEXP() != null) return VisitRegExp(context); return VisitBasic(context); }
private Maybe<Result> VisitBasic(QueryParser.Bool_exprContext context) => new BasicExprVisitor(_zmi, _env).Visit(context.basic_expr()[0]);
public override Maybe<Result> VisitBool_expr(QueryParser.Bool_exprContext context) { var boolExprInt = new BoolExprVisitor(_zmi, _env); return boolExprInt.Visit(context); }
/// <summary> /// Visit a parse tree produced by <see cref="QueryParser.bool_expr"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitBool_expr([NotNull] QueryParser.Bool_exprContext context) { return(VisitChildren(context)); }