/*
* Copyright 2012, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.engine.ast;
/**
* The interface {@code AstVisitor} defines the behavior of objects that can be used to visit an AST
* structure.
*
* @coverage dart.engine.ast
*/
public interface AstVisitor<R> {
public R visitAdjacentStrings(AdjacentStrings node);
public R visitAnnotation(Annotation node);
public R visitArgumentList(ArgumentList node);
public R visitAsExpression(AsExpression node);
public R visitAssertStatement(AssertStatement assertStatement);
public R visitAssignmentExpression(AssignmentExpression node);
public R visitAwaitExpression(AwaitExpression node);
public R visitBinaryExpression(BinaryExpression node);
public R visitBlock(Block node);
public R visitBlockFunctionBody(BlockFunctionBody node);
public R visitBooleanLiteral(BooleanLiteral node);
public R visitBreakStatement(BreakStatement node);
public R visitCascadeExpression(CascadeExpression node);
public R visitCatchClause(CatchClause node);
public R visitClassDeclaration(ClassDeclaration node);
public R visitClassTypeAlias(ClassTypeAlias node);
public R visitComment(Comment node);
public R visitCommentReference(CommentReference node);
public R visitCompilationUnit(CompilationUnit node);
public R visitConditionalExpression(ConditionalExpression node);
public R visitConstructorDeclaration(ConstructorDeclaration node);
public R visitConstructorFieldInitializer(ConstructorFieldInitializer node);
public R visitConstructorName(ConstructorName node);
public R visitContinueStatement(ContinueStatement node);
public R visitDeclaredIdentifier(DeclaredIdentifier node);
public R visitDefaultFormalParameter(DefaultFormalParameter node);
public R visitDoStatement(DoStatement node);
public R visitDoubleLiteral(DoubleLiteral node);
public R visitEmptyFunctionBody(EmptyFunctionBody node);
public R visitEmptyStatement(EmptyStatement node);
public R visitEnumConstantDeclaration(EnumConstantDeclaration node);
public R visitEnumDeclaration(EnumDeclaration node);
public R visitExportDirective(ExportDirective node);
public R visitExpressionFunctionBody(ExpressionFunctionBody node);
public R visitExpressionStatement(ExpressionStatement node);
public R visitExtendsClause(ExtendsClause node);
public R visitFieldDeclaration(FieldDeclaration node);
public R visitFieldFormalParameter(FieldFormalParameter node);
public R visitForEachStatement(ForEachStatement node);
public R visitFormalParameterList(FormalParameterList node);
public R visitForStatement(ForStatement node);
public R visitFunctionDeclaration(FunctionDeclaration node);
public R visitFunctionDeclarationStatement(FunctionDeclarationStatement node);
public R visitFunctionExpression(FunctionExpression node);
public R visitFunctionExpressionInvocation(FunctionExpressionInvocation node);
public R visitFunctionTypeAlias(FunctionTypeAlias functionTypeAlias);
public R visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node);
public R visitHideCombinator(HideCombinator node);
public R visitIfStatement(IfStatement node);
public R visitImplementsClause(ImplementsClause node);
public R visitImportDirective(ImportDirective node);
public R visitIndexExpression(IndexExpression node);
public R visitInstanceCreationExpression(InstanceCreationExpression node);
public R visitIntegerLiteral(IntegerLiteral node);
public R visitInterpolationExpression(InterpolationExpression node);
public R visitInterpolationString(InterpolationString node);
public R visitIsExpression(IsExpression node);
public R visitLabel(Label node);
public R visitLabeledStatement(LabeledStatement node);
public R visitLibraryDirective(LibraryDirective node);
public R visitLibraryIdentifier(LibraryIdentifier node);
public R visitListLiteral(ListLiteral node);
public R visitMapLiteral(MapLiteral node);
public R visitMapLiteralEntry(MapLiteralEntry node);
public R visitMethodDeclaration(MethodDeclaration node);
public R visitMethodInvocation(MethodInvocation node);
public R visitNamedExpression(NamedExpression node);
public R visitNativeClause(NativeClause node);
public R visitNativeFunctionBody(NativeFunctionBody node);
public R visitNullLiteral(NullLiteral node);
public R visitParenthesizedExpression(ParenthesizedExpression node);
public R visitPartDirective(PartDirective node);
public R visitPartOfDirective(PartOfDirective node);
public R visitPostfixExpression(PostfixExpression node);
public R visitPrefixedIdentifier(PrefixedIdentifier node);
public R visitPrefixExpression(PrefixExpression node);
public R visitPropertyAccess(PropertyAccess node);
public R visitRedirectingConstructorInvocation(RedirectingConstructorInvocation node);
public R visitRethrowExpression(RethrowExpression node);
public R visitReturnStatement(ReturnStatement node);
public R visitScriptTag(ScriptTag node);
public R visitShowCombinator(ShowCombinator node);
public R visitSimpleFormalParameter(SimpleFormalParameter node);
public R visitSimpleIdentifier(SimpleIdentifier node);
public R visitSimpleStringLiteral(SimpleStringLiteral node);
public R visitStringInterpolation(StringInterpolation node);
public R visitSuperConstructorInvocation(SuperConstructorInvocation node);
public R visitSuperExpression(SuperExpression node);
public R visitSwitchCase(SwitchCase node);
public R visitSwitchDefault(SwitchDefault node);
public R visitSwitchStatement(SwitchStatement node);
public R visitSymbolLiteral(SymbolLiteral node);
public R visitThisExpression(ThisExpression node);
public R visitThrowExpression(ThrowExpression node);
public R visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node);
public R visitTryStatement(TryStatement node);
public R visitTypeArgumentList(TypeArgumentList node);
public R visitTypeName(TypeName node);
public R visitTypeParameter(TypeParameter node);
public R visitTypeParameterList(TypeParameterList node);
public R visitVariableDeclaration(VariableDeclaration node);
public R visitVariableDeclarationList(VariableDeclarationList node);
public R visitVariableDeclarationStatement(VariableDeclarationStatement node);
public R visitWhileStatement(WhileStatement node);
public R visitWithClause(WithClause node);
public R visitYieldStatement(YieldStatement node);
}