Exemplo n.º 1
0
        public override List <GeneralError> VisitBooleanExpr([NotNull] WordLangParser.BooleanExprContext context)
        {
            var errs = new List <GeneralError>();

            context.expression().Select(ctx => Visit(ctx))
            .ToList()
            .ForEach(set => errs.AddRange(set));

            return(errs);
        }
Exemplo n.º 2
0
        public override string VisitBooleanExpr([NotNull] WordLangParser.BooleanExprContext context)
        {
            var left  = Visit(context.expression(0));
            var right = Visit(context.expression(1));
            //var left = Visit(context.text(0));
            //var right = Visit(context.text(1));
            var op = Visit(context.booleanOp());

            return($"(cond op=[{op}] left=[{left}] right=[{right}])");
        }
Exemplo n.º 3
0
        public override string VisitBooleanExpr([NotNull] WordLangParser.BooleanExprContext context)
        {
            var op = Visit(context.booleanOp());

            var left  = Quotize(TreeVisitor.Visit(context.expression(0)));
            var right = Quotize(TreeVisitor.Visit(context.expression(1)));

            //var left = Quotize(Visit(context.text(0)));
            //var right = Quotize(Visit(context.text(1)));
            return($"{{\"op\":{op},\"left\":{left},\"right\":{right}}}");
        }
Exemplo n.º 4
0
        public override AST.RuleTree VisitBooleanExpr([NotNull] WordLangParser.BooleanExprContext context)
        {
            var condition = new AST.Condition();

            //var leftCtx = context.text(0);
            //var rightCtx = context.text(1);

            //var rightName = rightCtx.NAME().CombineTokens();

            //condition.LeftKey = new AST.FieldString()
            //{
            //    Value = leftCtx.NAME().CombineTokens(),
            //    StartIndex = leftCtx.NAME().First().Symbol.StartIndex,
            //    StopIndex = leftCtx.NAME().Last().Symbol.StopIndex
            //};
            //condition.RightKey = new AST.FieldString()
            //{
            //    Value = rightCtx.NAME().CombineTokens(),
            //    StartIndex = rightCtx.NAME().First().Symbol.StartIndex,
            //    StopIndex = rightCtx.NAME().Last().Symbol.StopIndex
            //};

            var opMainCtx = context.booleanOp().booleanOpMain();

            condition.Negated = context.booleanOp().NEGATION() != null;

            condition.Operator = new AST.FieldComparisonOperator()
            {
                Value = (opMainCtx.EQUALTO() != null ? AST.ComparisonOperator.EQUALS :
                         (opMainCtx.LESSTHAN() != null ? AST.ComparisonOperator.LESS : AST.ComparisonOperator.GREATER)),
                StartIndex = context.booleanOp().Start.StartIndex,
                StopIndex  = context.booleanOp().Stop.StopIndex
            };


            return(condition);
        }