コード例 #1
0
ファイル: Generator.cs プロジェクト: fjsnogueiraCx/TypeCobol
 /// <summary>
 /// Perform Tree to Code generation
 /// </summary>
 protected virtual void TreeToCode()
 {
     if (RootNode != null)
     {
         RootNode.Accept(this);
     }
 }
コード例 #2
0
ファイル: Runner.cs プロジェクト: johnmbaughman/traficante
        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;
            }
        }
コード例 #3
0
 public void Visit(RootNode node)
 {
     node.Expression.Accept(this);
     node.Accept(_visitor);
 }
コード例 #4
0
 public void Resolve(RootNode root)
 {
     root.Accept(this);
 }
コード例 #5
0
 public bool Accept(Func <ElementNode, object, bool> visitor, object param)
 {
     return(RootNode.Accept(visitor, param));
 }
コード例 #6
0
 public bool Accept(IHtmlTreeVisitor visitor, object param)
 {
     return(RootNode.Accept(visitor, param));
 }