Esempio n. 1
0
        public void Process(FunctionDefinitionNode function, IReplacementListener listener)
        {
            ProcessReplacementsVisitorChain visitorChain = new ProcessReplacementsVisitorChain(this, listener, isPostOrder: true);
            ParseTreeChildrenVisitor        parseTreeChildrenVisitor
                = new ParseTreeChildrenVisitor(null, visitorChain.ReplacementVisitor, visitorChain.ChildrenVisitor);
            ProcessParseTreeReplacementsVisitor parseTreeReplacementsVisitor
                = new ProcessParseTreeReplacementsVisitor(this, listener);

            visitorChain.ExpressionChildrenVisitor.ExtensionChildrenVisitor = new ParseTreeVisitorExtension(parseTreeChildrenVisitor);
            visitorChain.ExpressionReplacementsVisitor.ExtensionVisitor     = new ParseTreeVisitorExtension(parseTreeReplacementsVisitor);
            visitorChain.ProcessReplacements(function);
        }
        public void Process(FunctionDefinitionNode function, IReplacementListener listener)
        {
            // TODO: Helper class to reduce repeating of this setup code.
            ProcessReplacementsVisitorChain visitorChain = new ProcessReplacementsVisitorChain(this, listener);
            ParseTreeChildrenVisitor        parseTreeChildrenVisitor
                = new ParseTreeChildrenVisitor(visitorChain.ReplacementVisitor, null, visitorChain.ChildrenVisitor);
            ProcessParseTreeReplacementsVisitor parseTreeReplacementsVisitor
                = new ProcessParseTreeReplacementsVisitor(this, listener);

            visitorChain.ExpressionChildrenVisitor.ExtensionChildrenVisitor = new ParseTreeVisitorExtension(parseTreeChildrenVisitor);
            visitorChain.ExpressionReplacementsVisitor.ExtensionVisitor     = new ParseTreeVisitorExtension(parseTreeReplacementsVisitor);

            visitorChain.ProcessReplacements(function);
        }
        public ProcessReplacementsVisitorChain(IReplacementSource source, IReplacementListener listener, bool isPostOrder = false)
        {
            ExpressionReplacementsVisitor        = new ProcessExpressionReplacementsVisitor(source, listener);
            StatementReplacementsVisitor         = new ProcessStatementReplacementsVisitor(source, listener);
            TopLevelStatementReplacementsVisitor = new ProcessTopLevelStatementReplacementsVisitor(source, listener);

            ReplacementVisitor = new SyntaxTreeDelegator();
            ReplacementVisitor.ExpressionVisitor = ExpressionReplacementsVisitor;
            ReplacementVisitor.StatementVisitor  = StatementReplacementsVisitor;
            ReplacementVisitor.TopLevelVisitor   = TopLevelStatementReplacementsVisitor;

            ChildrenVisitor           = new SyntaxTreeDelegator();
            ExpressionChildrenVisitor = new ExpressionChildrenVisitor(
                preOrderVisitor: isPostOrder ? null : ReplacementVisitor,
                postOrderVisitor: isPostOrder ? ReplacementVisitor : null,
                childrenVisitor: ChildrenVisitor);
            StatementChildrenVisitor         = new StatementChildrenVisitor(ReplacementVisitor, ChildrenVisitor);
            TopLevelStatementChildrenVisitor = new TopLevelStatementChildrenVisitor(ReplacementVisitor, ChildrenVisitor);

            ChildrenVisitor.ExpressionVisitor = ExpressionChildrenVisitor;
            ChildrenVisitor.StatementVisitor  = StatementChildrenVisitor;
            ChildrenVisitor.TopLevelVisitor   = TopLevelStatementChildrenVisitor;
        }
 public ProcessTopLevelStatementReplacementsVisitor(IReplacementSource replacementSource, IReplacementListener listener)
 {
     _processor = new ReplacementProcessor(replacementSource, listener);
 }
Esempio n. 5
0
        public void Process(ITopLevelStatementNode topLevelStatement, IReplacementListener listener)
        {
            ProcessReplacementsVisitorChain replacementsVisitorChain = new ProcessReplacementsVisitorChain(this, listener);

            replacementsVisitorChain.ProcessReplacements(topLevelStatement);
        }
Esempio n. 6
0
        public void Process(FunctionDefinitionNode function, IReplacementListener listener)
        {
            ProcessReplacementsVisitorChain replacementsVisitorChain = new ProcessReplacementsVisitorChain(this, listener);

            replacementsVisitorChain.ProcessReplacements(function);
        }
Esempio n. 7
0
 public ReplacementProcessor(IReplacementSource replacementSource, IReplacementListener listener)
 {
     _replacementSource = replacementSource;
     _listener          = listener;
 }
 public ProcessExpressionReplacementsVisitor(IReplacementSource replacementSource, IReplacementListener listener)
 {
     _processor = new ReplacementProcessor(replacementSource, listener);
 }
Esempio n. 9
0
 public ProcessParseTreeReplacementsVisitor(IReplacementSource replacementSource, IReplacementListener listener)
 {
     _processor = new ReplacementProcessor(replacementSource, listener);
 }