示例#1
0
 public override void ExitPredicate([NotNull] TSqlParser.PredicateContext context)
 {
     base.ExitPredicate(context);
     Debug.WriteLine("ExitPredicate");
     Debug.WriteLine(context.GetText());
     PredicateLevel--;
     Debug.WriteLine($"Predicate Level: {PredicateLevel.ToString()}");
 }
示例#2
0
        public override void EnterPredicate([NotNull] TSqlParser.PredicateContext context)
        {
            base.EnterPredicate(context);

            string debug          = context.GetText();
            var    sourceInterval = context.SourceInterval;

            Console.WriteLine("EnterPredicate:");
            Console.WriteLine(debug);
            Console.WriteLine("---");


            var select = GetStatementAsSelect();
            var part   = new StatementPart();

            part.StatementTableName = select.Tables.FirstOrDefault();
            part.Text            = context.GetText();
            part.StatementOrigin = "EnterPredicate";

            int      a        = context.Start.StartIndex;
            int      b        = context.Stop.StopIndex;
            Interval interval = new Interval(a, b);

            _charStream = context.Start.InputStream;

            part.TextWithWhiteSpace = _charStream.GetText(interval);

            var parent = context.Parent.Parent;

            if (parent != null)
            {
                part.StatementParent = parent.GetText();
                var tokenInterval = parent.SourceInterval;
                part.StatementParentWithWhiteSpace = GetWhitespaceStringFromTokenInterval(tokenInterval);
            }

            var grandparent = context.Parent.Parent.Parent;

            if (grandparent != null)
            {
                part.StatementGrandParent = grandparent.GetText();
                var tokenInterval = grandparent.SourceInterval;
                part.StatementGrandParentWithWhiteSpace = GetWhitespaceStringFromTokenInterval(tokenInterval);
            }

            part.ParseStatementPart();
            select.Statements.Add(part);
        }
示例#3
0
    public override void EnterPredicate([NotNull] TSqlParser.PredicateContext context)
    {
        base.EnterPredicate(context);
        Console.WriteLine(context.GetText());

        var part = new StatementPart();

        part.StatementTableName = _dmlStatement.Tables.FirstOrDefault();
        part.Text            = context.GetText();
        part.StatementOrigin = "EnterPredicate";

        part.TextWithWhiteSpace = GetWhiteSpaceFormat(context);

        var parent = context.Parent.Parent;

        if (parent != null)
        {
            part.StatementParent = parent.GetText();
            var tokenInterval = parent.SourceInterval;
            part.StatementParentWithWhiteSpace = GetWhitespaceStringFromTokenInterval(tokenInterval);
        }

        var grandparent = context.Parent.Parent.Parent;

        if (grandparent != null)
        {
            part.StatementGrandParent = grandparent.GetText();
            var tokenInterval = grandparent.SourceInterval;
            part.StatementGrandParentWithWhiteSpace = GetWhitespaceStringFromTokenInterval(tokenInterval);
        }

        if (!part.ParseStatementPart())
        {
            _dmlStatement.IsValid = false;
        }

        _dmlStatement.WhereClause.Conditions.Add(part);
    }
示例#4
0
        public override void EnterPredicate([NotNull] TSqlParser.PredicateContext context)
        {
            base.EnterPredicate(context);
            Debug.WriteLine("EnterPredicate");
            Debug.WriteLine(context.GetText());

            var searchCondition = context.search_condition();
            var andNode         = context.AND();
            var likeNode        = context.LIKE();

            Debug.WriteLine($"Predicate Level: {PredicateLevel.ToString()}");
            Statement.Terms.Add(new SearchTerm(context.GetText(), PredicateLevel));
            PredicateLevel++;

            Debug.WriteLine("Enumerating EnterPredicate.Parent.Parent Children");
            var parent         = context.Parent.Parent;
            var parentChildren = parent.ChildCount;

            for (int j = 0; j < parentChildren; j++)
            {
                var c = parent.GetChild(j);
                Debug.WriteLine(c.GetText());
            }
            Debug.WriteLine("Enumerating EnterPredicate.Parent.Parent Children");


            //var expressionCount = context.expression().Count();
            //for (int i = 0; i < expressionCount; i++)
            //{
            //    var x = context.expression(i);
            //    var andTokens = x.GetTokens(9); // and
            //    var orTokens = x.GetTokens(235); // or
            //    Debug.WriteLine(x.GetText());
            //    foreach (var a in andTokens)
            //    {
            //        Debug.WriteLine(a.GetText());
            //    }
            //    foreach (var a in orTokens)
            //    {
            //        Debug.WriteLine(a.GetText());
            //    }
            //}

            Debug.WriteLine("----EnterPredicate Parent.Parent----");

            Debug.WriteLine($"{parent.GetText()}");
            Debug.WriteLine("----EnterPredicate Parent.Parent----");

            Debug.WriteLine("----EnterPredicate Parent.Parent.Parent----");
            var parent2 = context.Parent.Parent.Parent;

            Debug.WriteLine($"{parent2.GetText()}");
            Debug.WriteLine("----EnterPredicate Parent.Parent.Parent----");

            Debug.WriteLine("Enumerating EnterPredicate.Parent.Parent.Parent Children");
            var parentChildren2 = parent2.ChildCount;

            for (int j = 0; j < parentChildren; j++)
            {
                var c = parent2.GetChild(j);
                if (c != null)
                {
                    Debug.WriteLine(c.GetText());
                }
            }
            Debug.WriteLine("Enumerating EnterPredicate.Parent.Parent.Parent Children");


            var item = context.expression().ToList();

            Debug.WriteLine("----EnterPredicate Expression Text---");
            item.ForEach(i => Debug.WriteLine(i.GetText()));
            Debug.WriteLine("----EnterPredicate Expression Text---");
            var items = context.expression_list();

            if (items != null)
            {
                Debug.WriteLine(items.GetText());
            }

            var and  = context.AND();
            var like = context.LIKE();

            if (and != null)
            {
                Debug.WriteLine("----EnterPredicate Expression AND Text---");
                Debug.WriteLine(and.GetText());
                Debug.WriteLine("----EnterPredicate Expression AND Text---");
            }
            if (like != null)
            {
                Debug.WriteLine("----EnterPredicate Expression LIKE Text---");
                Debug.WriteLine(like.GetText());
                Debug.WriteLine("----EnterPredicate Expression LIKE Text---");
            }

            Debug.WriteLine("");
        }