Example #1
0
        public object Run(string script, TSQLEngine engine, CancellationToken cancellationToken)
        {
            try
            {
                this.lexer     = new Lexer(script, true);
                this.parser    = new Parser.Parser(lexer);
                this.queryTree = parser.ComposeAll();

                var prepareQuery = new PrepareQueryVisitor(engine, cancellationToken);
                this.prepareQueryTraverser = new PrepareQueryTraverseVisitor(prepareQuery, cancellationToken);
                queryTree.Accept(prepareQueryTraverser);
                queryTree = prepareQuery.Root;

                this.requestData          = new RequestDataVisitor(engine, cancellationToken);
                this.requestDataTraverser = new RequestDataTraverseVisitor(requestData, cancellationToken);
                queryTree.Accept(requestDataTraverser);
                queryTree = requestData.Root;

                this.runQuery = new RunQueryVisitor(engine, cancellationToken);
                this.csharpRewriteTraverser = new RunQueryTraverseVisitor(runQuery, cancellationToken);
                queryTree.Accept(csharpRewriteTraverser);
                return(runQuery.Result);
            } catch (AggregateException ex)
            {
                throw ex.InnerException;
            }
        }
Example #2
0
        public override void Build(BuildItems items)
        {
            var lexer  = new Lexer(items.RawQuery, true);
            var parser = new Parser.Parser(lexer);

            items.RawQueryTree = parser.ComposeAll();

            Successor?.Build(items);
        }