using MarketAlly.IronJava.Core.AST.Nodes; namespace MarketAlly.IronJava.Core.AST.Visitors { /// /// Visitor interface for traversing Java AST nodes without returning values. /// public interface IJavaVisitor { // Compilation Unit void VisitCompilationUnit(CompilationUnit node); void VisitPackageDeclaration(PackageDeclaration node); void VisitImportDeclaration(ImportDeclaration node); // Type Declarations void VisitClassDeclaration(ClassDeclaration node); void VisitInterfaceDeclaration(InterfaceDeclaration node); void VisitEnumDeclaration(EnumDeclaration node); void VisitAnnotationDeclaration(AnnotationDeclaration node); // Members void VisitFieldDeclaration(FieldDeclaration node); void VisitMethodDeclaration(MethodDeclaration node); void VisitInitializerBlock(InitializerBlock node); void VisitVariableDeclarator(VariableDeclarator node); void VisitParameter(Parameter node); void VisitEnumConstant(EnumConstant node); void VisitAnnotationMember(AnnotationMember node); // Types void VisitPrimitiveType(PrimitiveType node); void VisitClassOrInterfaceType(ClassOrInterfaceType node); void VisitArrayType(ArrayType node); void VisitTypeParameter(TypeParameter node); void VisitTypeArgumentType(TypeArgumentType node); void VisitWildcardType(WildcardType node); // Expressions void VisitLiteralExpression(LiteralExpression node); void VisitIdentifierExpression(IdentifierExpression node); void VisitThisExpression(ThisExpression node); void VisitSuperExpression(SuperExpression node); void VisitBinaryExpression(BinaryExpression node); void VisitUnaryExpression(UnaryExpression node); void VisitConditionalExpression(ConditionalExpression node); void VisitMethodCallExpression(MethodCallExpression node); void VisitFieldAccessExpression(FieldAccessExpression node); void VisitArrayAccessExpression(ArrayAccessExpression node); void VisitCastExpression(CastExpression node); void VisitInstanceOfExpression(InstanceOfExpression node); void VisitNewExpression(NewExpression node); void VisitNewArrayExpression(NewArrayExpression node); void VisitArrayInitializer(ArrayInitializer node); void VisitAnnotationExpression(AnnotationExpression node); void VisitLambdaExpression(LambdaExpression node); void VisitLambdaParameter(LambdaParameter node); void VisitMethodReferenceExpression(MethodReferenceExpression node); void VisitClassLiteralExpression(ClassLiteralExpression node); // Statements void VisitBlockStatement(BlockStatement node); void VisitLocalVariableStatement(LocalVariableStatement node); void VisitExpressionStatement(ExpressionStatement node); void VisitIfStatement(IfStatement node); void VisitWhileStatement(WhileStatement node); void VisitDoWhileStatement(DoWhileStatement node); void VisitForStatement(ForStatement node); void VisitForEachStatement(ForEachStatement node); void VisitSwitchStatement(SwitchStatement node); void VisitSwitchCase(SwitchCase node); void VisitBreakStatement(BreakStatement node); void VisitContinueStatement(ContinueStatement node); void VisitReturnStatement(ReturnStatement node); void VisitThrowStatement(ThrowStatement node); void VisitTryStatement(TryStatement node); void VisitResourceDeclaration(ResourceDeclaration node); void VisitCatchClause(CatchClause node); void VisitSynchronizedStatement(SynchronizedStatement node); void VisitLabeledStatement(LabeledStatement node); void VisitEmptyStatement(EmptyStatement node); void VisitAssertStatement(AssertStatement node); // Annotations and JavaDoc void VisitAnnotation(Annotation node); void VisitAnnotationValueArgument(AnnotationValueArgument node); void VisitAnnotationArrayArgument(AnnotationArrayArgument node); void VisitJavaDoc(JavaDoc node); } /// /// Visitor interface for traversing Java AST nodes with return values. /// public interface IJavaVisitor { // Compilation Unit T VisitCompilationUnit(CompilationUnit node); T VisitPackageDeclaration(PackageDeclaration node); T VisitImportDeclaration(ImportDeclaration node); // Type Declarations T VisitClassDeclaration(ClassDeclaration node); T VisitInterfaceDeclaration(InterfaceDeclaration node); T VisitEnumDeclaration(EnumDeclaration node); T VisitAnnotationDeclaration(AnnotationDeclaration node); // Members T VisitFieldDeclaration(FieldDeclaration node); T VisitMethodDeclaration(MethodDeclaration node); T VisitInitializerBlock(InitializerBlock node); T VisitVariableDeclarator(VariableDeclarator node); T VisitParameter(Parameter node); T VisitEnumConstant(EnumConstant node); T VisitAnnotationMember(AnnotationMember node); // Types T VisitPrimitiveType(PrimitiveType node); T VisitClassOrInterfaceType(ClassOrInterfaceType node); T VisitArrayType(ArrayType node); T VisitTypeParameter(TypeParameter node); T VisitTypeArgumentType(TypeArgumentType node); T VisitWildcardType(WildcardType node); // Expressions T VisitLiteralExpression(LiteralExpression node); T VisitIdentifierExpression(IdentifierExpression node); T VisitThisExpression(ThisExpression node); T VisitSuperExpression(SuperExpression node); T VisitBinaryExpression(BinaryExpression node); T VisitUnaryExpression(UnaryExpression node); T VisitConditionalExpression(ConditionalExpression node); T VisitMethodCallExpression(MethodCallExpression node); T VisitFieldAccessExpression(FieldAccessExpression node); T VisitArrayAccessExpression(ArrayAccessExpression node); T VisitCastExpression(CastExpression node); T VisitInstanceOfExpression(InstanceOfExpression node); T VisitNewExpression(NewExpression node); T VisitNewArrayExpression(NewArrayExpression node); T VisitArrayInitializer(ArrayInitializer node); T VisitAnnotationExpression(AnnotationExpression node); T VisitLambdaExpression(LambdaExpression node); T VisitLambdaParameter(LambdaParameter node); T VisitMethodReferenceExpression(MethodReferenceExpression node); T VisitClassLiteralExpression(ClassLiteralExpression node); // Statements T VisitBlockStatement(BlockStatement node); T VisitLocalVariableStatement(LocalVariableStatement node); T VisitExpressionStatement(ExpressionStatement node); T VisitIfStatement(IfStatement node); T VisitWhileStatement(WhileStatement node); T VisitDoWhileStatement(DoWhileStatement node); T VisitForStatement(ForStatement node); T VisitForEachStatement(ForEachStatement node); T VisitSwitchStatement(SwitchStatement node); T VisitSwitchCase(SwitchCase node); T VisitBreakStatement(BreakStatement node); T VisitContinueStatement(ContinueStatement node); T VisitReturnStatement(ReturnStatement node); T VisitThrowStatement(ThrowStatement node); T VisitTryStatement(TryStatement node); T VisitResourceDeclaration(ResourceDeclaration node); T VisitCatchClause(CatchClause node); T VisitSynchronizedStatement(SynchronizedStatement node); T VisitLabeledStatement(LabeledStatement node); T VisitEmptyStatement(EmptyStatement node); T VisitAssertStatement(AssertStatement node); // Annotations and JavaDoc T VisitAnnotation(Annotation node); T VisitAnnotationValueArgument(AnnotationValueArgument node); T VisitAnnotationArrayArgument(AnnotationArrayArgument node); T VisitJavaDoc(JavaDoc node); } }