Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: pkg/analyzer/lib/dart/ast/visitor.dart

Issue 1747093002: Move DelegatingAstVisitor into the public API (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/visitors.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/dart/ast/visitor.dart
diff --git a/pkg/analyzer/lib/dart/ast/visitor.dart b/pkg/analyzer/lib/dart/ast/visitor.dart
index 0cdb170b99d4278b137edb5ed5c9339b3ae3153b..f76fb1dc0b2ed36800711bec541633aa97858ad1 100644
--- a/pkg/analyzer/lib/dart/ast/visitor.dart
+++ b/pkg/analyzer/lib/dart/ast/visitor.dart
@@ -93,6 +93,809 @@ class BreadthFirstVisitor<R> extends GeneralizingAstVisitor<R> {
/**
* An AST visitor that will recursively visit all of the nodes in an AST
+ * structure. For each node that is visited, the corresponding visit method on
+ * one or more other visitors (the 'delegates') will be invoked.
+ *
+ * For example, if an instance of this class is created with two delegates V1
+ * and V2, and that instance is used to visit the expression 'x + 1', then the
+ * following visit methods will be invoked:
+ * 1. V1.visitBinaryExpression
+ * 2. V2.visitBinaryExpression
+ * 3. V1.visitSimpleIdentifier
+ * 4. V2.visitSimpleIdentifier
+ * 5. V1.visitIntegerLiteral
+ * 6. V2.visitIntegerLiteral
+ *
+ * Clients may not extend, implement or mix-in this class.
+ */
+class DelegatingAstVisitor<T> implements AstVisitor<T> {
+ /**
+ * The delegates whose visit methods will be invoked.
+ */
+ final Iterable<AstVisitor<T>> _delegates;
+
+ /**
+ * Initialize a newly created visitor to use each of the given delegate
+ * visitors to visit the nodes of an AST structure.
+ */
+ DelegatingAstVisitor(this._delegates);
+
+ @override
+ T visitAdjacentStrings(AdjacentStrings node) {
+ _delegates.forEach((delegate) => delegate.visitAdjacentStrings(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitAnnotation(Annotation node) {
+ _delegates.forEach((delegate) => delegate.visitAnnotation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitArgumentList(ArgumentList node) {
+ _delegates.forEach((delegate) => delegate.visitArgumentList(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitAsExpression(AsExpression node) {
+ _delegates.forEach((delegate) => delegate.visitAsExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitAssertStatement(AssertStatement node) {
+ _delegates.forEach((delegate) => delegate.visitAssertStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitAssignmentExpression(AssignmentExpression node) {
+ _delegates.forEach((delegate) => delegate.visitAssignmentExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitAwaitExpression(AwaitExpression node) {
+ _delegates.forEach((delegate) => delegate.visitAwaitExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitBinaryExpression(BinaryExpression node) {
+ _delegates.forEach((delegate) => delegate.visitBinaryExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitBlock(Block node) {
+ _delegates.forEach((delegate) => delegate.visitBlock(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitBlockFunctionBody(BlockFunctionBody node) {
+ _delegates.forEach((delegate) => delegate.visitBlockFunctionBody(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitBooleanLiteral(BooleanLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitBooleanLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitBreakStatement(BreakStatement node) {
+ _delegates.forEach((delegate) => delegate.visitBreakStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitCascadeExpression(CascadeExpression node) {
+ _delegates.forEach((delegate) => delegate.visitCascadeExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitCatchClause(CatchClause node) {
+ _delegates.forEach((delegate) => delegate.visitCatchClause(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitClassDeclaration(ClassDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitClassDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitClassTypeAlias(ClassTypeAlias node) {
+ _delegates.forEach((delegate) => delegate.visitClassTypeAlias(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitComment(Comment node) {
+ _delegates.forEach((delegate) => delegate.visitComment(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitCommentReference(CommentReference node) {
+ _delegates.forEach((delegate) => delegate.visitCommentReference(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitCompilationUnit(CompilationUnit node) {
+ _delegates.forEach((delegate) => delegate.visitCompilationUnit(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitConditionalExpression(ConditionalExpression node) {
+ _delegates.forEach((delegate) => delegate.visitConditionalExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitConfiguration(Configuration node) {
+ _delegates.forEach((delegate) => delegate.visitConfiguration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitConstructorDeclaration(ConstructorDeclaration node) {
+ _delegates
+ .forEach((delegate) => delegate.visitConstructorDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
+ _delegates
+ .forEach((delegate) => delegate.visitConstructorFieldInitializer(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitConstructorName(ConstructorName node) {
+ _delegates.forEach((delegate) => delegate.visitConstructorName(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitContinueStatement(ContinueStatement node) {
+ _delegates.forEach((delegate) => delegate.visitContinueStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitDeclaredIdentifier(DeclaredIdentifier node) {
+ _delegates.forEach((delegate) => delegate.visitDeclaredIdentifier(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitDefaultFormalParameter(DefaultFormalParameter node) {
+ _delegates
+ .forEach((delegate) => delegate.visitDefaultFormalParameter(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitDoStatement(DoStatement node) {
+ _delegates.forEach((delegate) => delegate.visitDoStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitDottedName(DottedName node) {
+ _delegates.forEach((delegate) => delegate.visitDottedName(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitDoubleLiteral(DoubleLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitDoubleLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitEmptyFunctionBody(EmptyFunctionBody node) {
+ _delegates.forEach((delegate) => delegate.visitEmptyFunctionBody(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitEmptyStatement(EmptyStatement node) {
+ _delegates.forEach((delegate) => delegate.visitEmptyStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitEnumConstantDeclaration(EnumConstantDeclaration node) {
+ _delegates
+ .forEach((delegate) => delegate.visitEnumConstantDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitEnumDeclaration(EnumDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitEnumDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitExportDirective(ExportDirective node) {
+ _delegates.forEach((delegate) => delegate.visitExportDirective(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitExpressionFunctionBody(ExpressionFunctionBody node) {
+ _delegates
+ .forEach((delegate) => delegate.visitExpressionFunctionBody(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitExpressionStatement(ExpressionStatement node) {
+ _delegates.forEach((delegate) => delegate.visitExpressionStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitExtendsClause(ExtendsClause node) {
+ _delegates.forEach((delegate) => delegate.visitExtendsClause(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFieldDeclaration(FieldDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitFieldDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFieldFormalParameter(FieldFormalParameter node) {
+ _delegates.forEach((delegate) => delegate.visitFieldFormalParameter(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitForEachStatement(ForEachStatement node) {
+ _delegates.forEach((delegate) => delegate.visitForEachStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFormalParameterList(FormalParameterList node) {
+ _delegates.forEach((delegate) => delegate.visitFormalParameterList(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitForStatement(ForStatement node) {
+ _delegates.forEach((delegate) => delegate.visitForStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionDeclaration(FunctionDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitFunctionDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionDeclarationStatement(FunctionDeclarationStatement node) {
+ _delegates.forEach(
+ (delegate) => delegate.visitFunctionDeclarationStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionExpression(FunctionExpression node) {
+ _delegates.forEach((delegate) => delegate.visitFunctionExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
+ _delegates.forEach(
+ (delegate) => delegate.visitFunctionExpressionInvocation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionTypeAlias(FunctionTypeAlias node) {
+ _delegates.forEach((delegate) => delegate.visitFunctionTypeAlias(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
+ _delegates.forEach(
+ (delegate) => delegate.visitFunctionTypedFormalParameter(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitHideCombinator(HideCombinator node) {
+ _delegates.forEach((delegate) => delegate.visitHideCombinator(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitIfStatement(IfStatement node) {
+ _delegates.forEach((delegate) => delegate.visitIfStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitImplementsClause(ImplementsClause node) {
+ _delegates.forEach((delegate) => delegate.visitImplementsClause(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitImportDirective(ImportDirective node) {
+ _delegates.forEach((delegate) => delegate.visitImportDirective(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitIndexExpression(IndexExpression node) {
+ _delegates.forEach((delegate) => delegate.visitIndexExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitInstanceCreationExpression(InstanceCreationExpression node) {
+ _delegates
+ .forEach((delegate) => delegate.visitInstanceCreationExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitIntegerLiteral(IntegerLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitIntegerLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitInterpolationExpression(InterpolationExpression node) {
+ _delegates
+ .forEach((delegate) => delegate.visitInterpolationExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitInterpolationString(InterpolationString node) {
+ _delegates.forEach((delegate) => delegate.visitInterpolationString(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitIsExpression(IsExpression node) {
+ _delegates.forEach((delegate) => delegate.visitIsExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitLabel(Label node) {
+ _delegates.forEach((delegate) => delegate.visitLabel(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitLabeledStatement(LabeledStatement node) {
+ _delegates.forEach((delegate) => delegate.visitLabeledStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitLibraryDirective(LibraryDirective node) {
+ _delegates.forEach((delegate) => delegate.visitLibraryDirective(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitLibraryIdentifier(LibraryIdentifier node) {
+ _delegates.forEach((delegate) => delegate.visitLibraryIdentifier(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitListLiteral(ListLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitListLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitMapLiteral(MapLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitMapLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitMapLiteralEntry(MapLiteralEntry node) {
+ _delegates.forEach((delegate) => delegate.visitMapLiteralEntry(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitMethodDeclaration(MethodDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitMethodDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitMethodInvocation(MethodInvocation node) {
+ _delegates.forEach((delegate) => delegate.visitMethodInvocation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitNamedExpression(NamedExpression node) {
+ _delegates.forEach((delegate) => delegate.visitNamedExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitNativeClause(NativeClause node) {
+ _delegates.forEach((delegate) => delegate.visitNativeClause(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitNativeFunctionBody(NativeFunctionBody node) {
+ _delegates.forEach((delegate) => delegate.visitNativeFunctionBody(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitNullLiteral(NullLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitNullLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitParenthesizedExpression(ParenthesizedExpression node) {
+ _delegates
+ .forEach((delegate) => delegate.visitParenthesizedExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPartDirective(PartDirective node) {
+ _delegates.forEach((delegate) => delegate.visitPartDirective(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPartOfDirective(PartOfDirective node) {
+ _delegates.forEach((delegate) => delegate.visitPartOfDirective(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPostfixExpression(PostfixExpression node) {
+ _delegates.forEach((delegate) => delegate.visitPostfixExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPrefixedIdentifier(PrefixedIdentifier node) {
+ _delegates.forEach((delegate) => delegate.visitPrefixedIdentifier(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPrefixExpression(PrefixExpression node) {
+ _delegates.forEach((delegate) => delegate.visitPrefixExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitPropertyAccess(PropertyAccess node) {
+ _delegates.forEach((delegate) => delegate.visitPropertyAccess(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitRedirectingConstructorInvocation(
+ RedirectingConstructorInvocation node) {
+ _delegates.forEach(
+ (delegate) => delegate.visitRedirectingConstructorInvocation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitRethrowExpression(RethrowExpression node) {
+ _delegates.forEach((delegate) => delegate.visitRethrowExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitReturnStatement(ReturnStatement node) {
+ _delegates.forEach((delegate) => delegate.visitReturnStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitScriptTag(ScriptTag node) {
+ _delegates.forEach((delegate) => delegate.visitScriptTag(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitShowCombinator(ShowCombinator node) {
+ _delegates.forEach((delegate) => delegate.visitShowCombinator(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSimpleFormalParameter(SimpleFormalParameter node) {
+ _delegates.forEach((delegate) => delegate.visitSimpleFormalParameter(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSimpleIdentifier(SimpleIdentifier node) {
+ _delegates.forEach((delegate) => delegate.visitSimpleIdentifier(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSimpleStringLiteral(SimpleStringLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitSimpleStringLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitStringInterpolation(StringInterpolation node) {
+ _delegates.forEach((delegate) => delegate.visitStringInterpolation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSuperConstructorInvocation(SuperConstructorInvocation node) {
+ _delegates
+ .forEach((delegate) => delegate.visitSuperConstructorInvocation(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSuperExpression(SuperExpression node) {
+ _delegates.forEach((delegate) => delegate.visitSuperExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSwitchCase(SwitchCase node) {
+ _delegates.forEach((delegate) => delegate.visitSwitchCase(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSwitchDefault(SwitchDefault node) {
+ _delegates.forEach((delegate) => delegate.visitSwitchDefault(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSwitchStatement(SwitchStatement node) {
+ _delegates.forEach((delegate) => delegate.visitSwitchStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitSymbolLiteral(SymbolLiteral node) {
+ _delegates.forEach((delegate) => delegate.visitSymbolLiteral(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitThisExpression(ThisExpression node) {
+ _delegates.forEach((delegate) => delegate.visitThisExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitThrowExpression(ThrowExpression node) {
+ _delegates.forEach((delegate) => delegate.visitThrowExpression(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
+ _delegates
+ .forEach((delegate) => delegate.visitTopLevelVariableDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTryStatement(TryStatement node) {
+ _delegates.forEach((delegate) => delegate.visitTryStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTypeArgumentList(TypeArgumentList node) {
+ _delegates.forEach((delegate) => delegate.visitTypeArgumentList(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTypeName(TypeName node) {
+ _delegates.forEach((delegate) => delegate.visitTypeName(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTypeParameter(TypeParameter node) {
+ _delegates.forEach((delegate) => delegate.visitTypeParameter(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitTypeParameterList(TypeParameterList node) {
+ _delegates.forEach((delegate) => delegate.visitTypeParameterList(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitVariableDeclaration(VariableDeclaration node) {
+ _delegates.forEach((delegate) => delegate.visitVariableDeclaration(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitVariableDeclarationList(VariableDeclarationList node) {
+ _delegates
+ .forEach((delegate) => delegate.visitVariableDeclarationList(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitVariableDeclarationStatement(VariableDeclarationStatement node) {
+ _delegates.forEach(
+ (delegate) => delegate.visitVariableDeclarationStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitWhileStatement(WhileStatement node) {
+ _delegates.forEach((delegate) => delegate.visitWhileStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitWithClause(WithClause node) {
+ _delegates.forEach((delegate) => delegate.visitWithClause(node));
+ node.visitChildren(this);
+ return null;
+ }
+
+ @override
+ T visitYieldStatement(YieldStatement node) {
+ _delegates.forEach((delegate) => delegate.visitYieldStatement(node));
+ node.visitChildren(this);
+ return null;
+ }
+}
+
+/**
+ * An AST visitor that will recursively visit all of the nodes in an AST
* structure (like instances of the class [RecursiveAstVisitor]). In addition,
* when a node of a specific type is visited not only will the visit method for
* that specific type of node be invoked, but additional methods for the
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/visitors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698