1 /*******************************************************************************
2 * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v0.5
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v05.html
9 * IBM Corporation - initial API and implementation
10 ******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler;
13 import net.sourceforge.phpdt.core.compiler.*;
14 import net.sourceforge.phpdt.internal.compiler.ast.*;
15 import net.sourceforge.phpdt.internal.compiler.lookup.*;
18 * A visitor interface for interating through the parse tree.
20 public interface IAbstractSyntaxTreeVisitor {
21 void acceptProblem(IProblem problem);
22 void endVisit(AllocationExpression allocationExpression, BlockScope scope);
23 void endVisit(AND_AND_Expression and_and_Expression, BlockScope scope);
24 void endVisit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration, BlockScope scope);
25 void endVisit(Argument argument, BlockScope scope);
26 void endVisit(ArrayAllocationExpression arrayAllocationExpression, BlockScope scope);
27 void endVisit(ArrayInitializer arrayInitializer, BlockScope scope);
28 void endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, BlockScope scope);
29 void endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, ClassScope scope);
30 void endVisit(ArrayReference arrayReference, BlockScope scope);
31 void endVisit(ArrayTypeReference arrayTypeReference, BlockScope scope);
32 void endVisit(ArrayTypeReference arrayTypeReference, ClassScope scope);
33 void endVisit(AssertStatement assertStatement, BlockScope scope);
34 void endVisit(Assignment assignment, BlockScope scope);
35 void endVisit(BinaryExpression binaryExpression, BlockScope scope);
36 void endVisit(Block block, BlockScope scope);
37 void endVisit(Break breakStatement, BlockScope scope);
38 void endVisit(Case caseStatement, BlockScope scope);
39 void endVisit(CastExpression castExpression, BlockScope scope);
40 void endVisit(CharLiteral charLiteral, BlockScope scope);
41 void endVisit(ClassLiteralAccess classLiteral, BlockScope scope);
42 void endVisit(Clinit clinit, ClassScope scope);
43 void endVisit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope);
44 void endVisit(CompoundAssignment compoundAssignment, BlockScope scope);
45 void endVisit(ConditionalExpression conditionalExpression, BlockScope scope);
46 void endVisit(ConstructorDeclaration constructorDeclaration, ClassScope scope);
47 void endVisit(Continue continueStatement, BlockScope scope);
48 void endVisit(DefaultCase defaultCaseStatement, BlockScope scope);
49 void endVisit(DoStatement doStatement, BlockScope scope);
50 void endVisit(DoubleLiteral doubleLiteral, BlockScope scope);
51 void endVisit(EqualExpression equalExpression, BlockScope scope);
52 void endVisit(EmptyStatement statement, BlockScope scope);
53 void endVisit(ExplicitConstructorCall explicitConstructor, BlockScope scope);
54 void endVisit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope);
55 void endVisit(FalseLiteral falseLiteral, BlockScope scope);
56 void endVisit(FieldDeclaration fieldDeclaration, MethodScope scope);
57 void endVisit(FieldReference fieldReference, BlockScope scope);
58 void endVisit(FloatLiteral floatLiteral, BlockScope scope);
59 void endVisit(ForStatement forStatement, BlockScope scope);
60 void endVisit(IfStatement ifStatement, BlockScope scope);
61 void endVisit(ImportReference importRef, CompilationUnitScope scope);
62 void endVisit(Initializer initializer, MethodScope scope);
63 void endVisit(InstanceOfExpression instanceOfExpression, BlockScope scope);
64 void endVisit(IntLiteral intLiteral, BlockScope scope);
65 void endVisit(LabeledStatement labeledStatement, BlockScope scope);
66 void endVisit(LocalDeclaration localDeclaration, BlockScope scope);
67 void endVisit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope);
68 void endVisit(LongLiteral longLiteral, BlockScope scope);
69 void endVisit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope);
70 void endVisit(MessageSend messageSend, BlockScope scope);
71 void endVisit(MethodDeclaration methodDeclaration, ClassScope scope);
72 void endVisit(NullLiteral nullLiteral, BlockScope scope);
73 void endVisit(OR_OR_Expression or_or_Expression, BlockScope scope);
74 void endVisit(PostfixExpression postfixExpression, BlockScope scope);
75 void endVisit(PrefixExpression prefixExpression, BlockScope scope);
76 void endVisit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope);
77 void endVisit(QualifiedNameReference qualifiedNameReference, BlockScope scope);
78 void endVisit(QualifiedSuperReference qualifiedSuperReference, BlockScope scope);
79 void endVisit(QualifiedThisReference qualifiedThisReference, BlockScope scope);
80 void endVisit(QualifiedTypeReference qualifiedTypeReference, BlockScope scope);
81 void endVisit(QualifiedTypeReference qualifiedTypeReference, ClassScope scope);
82 void endVisit(ReturnStatement returnStatement, BlockScope scope);
83 void endVisit(SingleNameReference singleNameReference, BlockScope scope);
84 void endVisit(SingleTypeReference singleTypeReference, BlockScope scope);
85 void endVisit(SingleTypeReference singleTypeReference, ClassScope scope);
86 void endVisit(StringLiteral stringLiteral, BlockScope scope);
87 void endVisit(SuperReference superReference, BlockScope scope);
88 void endVisit(SwitchStatement switchStatement, BlockScope scope);
89 void endVisit(SynchronizedStatement synchronizedStatement, BlockScope scope);
90 void endVisit(ThisReference thisReference, BlockScope scope);
91 void endVisit(ThrowStatement throwStatement, BlockScope scope);
92 void endVisit(TrueLiteral trueLiteral, BlockScope scope);
93 void endVisit(TryStatement tryStatement, BlockScope scope);
94 void endVisit(TypeDeclaration typeDeclaration, CompilationUnitScope scope);
95 void endVisit(UnaryExpression unaryExpression, BlockScope scope);
96 void endVisit(WhileStatement whileStatement, BlockScope scope);
97 boolean visit(AllocationExpression allocationExpression, BlockScope scope);
98 boolean visit(AND_AND_Expression and_and_Expression, BlockScope scope);
99 boolean visit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration, BlockScope scope);
100 boolean visit(Argument argument, BlockScope scope);
101 boolean visit(ArrayAllocationExpression arrayAllocationExpression, BlockScope scope);
102 boolean visit(ArrayInitializer arrayInitializer, BlockScope scope);
103 boolean visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, BlockScope scope);
104 boolean visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, ClassScope scope);
105 boolean visit(ArrayReference arrayReference, BlockScope scope);
106 boolean visit(ArrayTypeReference arrayTypeReference, BlockScope scope);
107 boolean visit(ArrayTypeReference arrayTypeReference, ClassScope scope);
108 boolean visit(AssertStatement assertStatement, BlockScope scope);
109 boolean visit(Assignment assignment, BlockScope scope);
110 boolean visit(BinaryExpression binaryExpression, BlockScope scope);
111 boolean visit(Block block, BlockScope scope);
112 boolean visit(Break breakStatement, BlockScope scope);
113 boolean visit(Case caseStatement, BlockScope scope);
114 boolean visit(CastExpression castExpression, BlockScope scope);
115 boolean visit(CharLiteral charLiteral, BlockScope scope);
116 boolean visit(ClassLiteralAccess classLiteral, BlockScope scope);
117 boolean visit(Clinit clinit, ClassScope scope);
118 boolean visit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope);
119 boolean visit(CompoundAssignment compoundAssignment, BlockScope scope);
120 boolean visit(ConditionalExpression conditionalExpression, BlockScope scope);
121 boolean visit(ConstructorDeclaration constructorDeclaration, ClassScope scope);
122 boolean visit(Continue continueStatement, BlockScope scope);
123 boolean visit(DefaultCase defaultCaseStatement, BlockScope scope);
124 boolean visit(DoStatement doStatement, BlockScope scope);
125 boolean visit(DoubleLiteral doubleLiteral, BlockScope scope);
126 boolean visit(EqualExpression equalExpression, BlockScope scope);
127 boolean visit(EmptyStatement statement, BlockScope scope);
128 boolean visit(ExplicitConstructorCall explicitConstructor, BlockScope scope);
129 boolean visit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope);
130 boolean visit(FalseLiteral falseLiteral, BlockScope scope);
131 boolean visit(FieldDeclaration fieldDeclaration, MethodScope scope);
132 boolean visit(FieldReference fieldReference, BlockScope scope);
133 boolean visit(FloatLiteral floatLiteral, BlockScope scope);
134 boolean visit(ForStatement forStatement, BlockScope scope);
135 boolean visit(IfStatement ifStatement, BlockScope scope);
136 boolean visit(ImportReference importRef, CompilationUnitScope scope);
137 boolean visit(Initializer initializer, MethodScope scope);
138 boolean visit(InstanceOfExpression instanceOfExpression, BlockScope scope);
139 boolean visit(IntLiteral intLiteral, BlockScope scope);
140 boolean visit(LabeledStatement labeledStatement, BlockScope scope);
141 boolean visit(LocalDeclaration localDeclaration, BlockScope scope);
142 boolean visit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope);
143 boolean visit(LongLiteral longLiteral, BlockScope scope);
144 boolean visit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope);
145 boolean visit(MessageSend messageSend, BlockScope scope);
146 boolean visit(MethodDeclaration methodDeclaration, ClassScope scope);
147 boolean visit(NullLiteral nullLiteral, BlockScope scope);
148 boolean visit(OR_OR_Expression or_or_Expression, BlockScope scope);
149 boolean visit(PostfixExpression postfixExpression, BlockScope scope);
150 boolean visit(PrefixExpression prefixExpression, BlockScope scope);
151 boolean visit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope);
152 boolean visit(QualifiedNameReference qualifiedNameReference, BlockScope scope);
153 boolean visit(QualifiedSuperReference qualifiedSuperReference, BlockScope scope);
154 boolean visit(QualifiedThisReference qualifiedThisReference, BlockScope scope);
155 boolean visit(QualifiedTypeReference qualifiedTypeReference, BlockScope scope);
156 boolean visit(QualifiedTypeReference qualifiedTypeReference, ClassScope scope);
157 boolean visit(ReturnStatement returnStatement, BlockScope scope);
158 boolean visit(SingleNameReference singleNameReference, BlockScope scope);
159 boolean visit(SingleTypeReference singleTypeReference, BlockScope scope);
160 boolean visit(SingleTypeReference singleTypeReference, ClassScope scope);
161 boolean visit(StringLiteral stringLiteral, BlockScope scope);
162 boolean visit(SuperReference superReference, BlockScope scope);
163 boolean visit(SwitchStatement switchStatement, BlockScope scope);
164 boolean visit(SynchronizedStatement synchronizedStatement, BlockScope scope);
165 boolean visit(ThisReference thisReference, BlockScope scope);
166 boolean visit(ThrowStatement throwStatement, BlockScope scope);
167 boolean visit(TrueLiteral trueLiteral, BlockScope scope);
168 boolean visit(TryStatement tryStatement, BlockScope scope);
169 boolean visit(TypeDeclaration typeDeclaration, CompilationUnitScope scope);
170 boolean visit(UnaryExpression unaryExpression, BlockScope scope);
171 boolean visit(WhileStatement whileStatement, BlockScope scope);