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); }
public void Process(ITopLevelStatementNode topLevelStatement, IReplacementListener listener) { ProcessReplacementsVisitorChain replacementsVisitorChain = new ProcessReplacementsVisitorChain(this, listener); replacementsVisitorChain.ProcessReplacements(topLevelStatement); }
public void Process(FunctionDefinitionNode function, IReplacementListener listener) { ProcessReplacementsVisitorChain replacementsVisitorChain = new ProcessReplacementsVisitorChain(this, listener); replacementsVisitorChain.ProcessReplacements(function); }
public ReplacementProcessor(IReplacementSource replacementSource, IReplacementListener listener) { _replacementSource = replacementSource; _listener = listener; }
public ProcessExpressionReplacementsVisitor(IReplacementSource replacementSource, IReplacementListener listener) { _processor = new ReplacementProcessor(replacementSource, listener); }
public ProcessParseTreeReplacementsVisitor(IReplacementSource replacementSource, IReplacementListener listener) { _processor = new ReplacementProcessor(replacementSource, listener); }