1 /*******************************************************************************
2  * Copyright (c) 2000, 2003 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  *
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler;
12 
13 import net.sourceforge.phpdt.core.compiler.IProblem;
14 import net.sourceforge.phpdt.internal.compiler.ast.AND_AND_Expression;
15 import net.sourceforge.phpdt.internal.compiler.ast.AllocationExpression;
16 import net.sourceforge.phpdt.internal.compiler.ast.AnonymousLocalTypeDeclaration;
17 import net.sourceforge.phpdt.internal.compiler.ast.Argument;
18 import net.sourceforge.phpdt.internal.compiler.ast.ArrayAllocationExpression;
19 import net.sourceforge.phpdt.internal.compiler.ast.ArrayInitializer;
20 import net.sourceforge.phpdt.internal.compiler.ast.ArrayQualifiedTypeReference;
21 import net.sourceforge.phpdt.internal.compiler.ast.ArrayReference;
22 import net.sourceforge.phpdt.internal.compiler.ast.ArrayTypeReference;
23 import net.sourceforge.phpdt.internal.compiler.ast.AssertStatement;
24 import net.sourceforge.phpdt.internal.compiler.ast.Assignment;
25 import net.sourceforge.phpdt.internal.compiler.ast.BinaryExpression;
26 import net.sourceforge.phpdt.internal.compiler.ast.Block;
27 import net.sourceforge.phpdt.internal.compiler.ast.BreakStatement;
28 import net.sourceforge.phpdt.internal.compiler.ast.CaseStatement;
29 import net.sourceforge.phpdt.internal.compiler.ast.CastExpression;
30 import net.sourceforge.phpdt.internal.compiler.ast.Clinit;
31 import net.sourceforge.phpdt.internal.compiler.ast.CompilationUnitDeclaration;
32 import net.sourceforge.phpdt.internal.compiler.ast.CompoundAssignment;
33 import net.sourceforge.phpdt.internal.compiler.ast.ConditionalExpression;
34 import net.sourceforge.phpdt.internal.compiler.ast.ConstructorDeclaration;
35 import net.sourceforge.phpdt.internal.compiler.ast.ContinueStatement;
36 import net.sourceforge.phpdt.internal.compiler.ast.DefaultCase;
37 import net.sourceforge.phpdt.internal.compiler.ast.DoStatement;
38 import net.sourceforge.phpdt.internal.compiler.ast.DoubleLiteral;
39 import net.sourceforge.phpdt.internal.compiler.ast.EmptyStatement;
40 import net.sourceforge.phpdt.internal.compiler.ast.EqualExpression;
41 import net.sourceforge.phpdt.internal.compiler.ast.ExplicitConstructorCall;
42 import net.sourceforge.phpdt.internal.compiler.ast.ExtendedStringLiteral;
43 import net.sourceforge.phpdt.internal.compiler.ast.FalseLiteral;
44 import net.sourceforge.phpdt.internal.compiler.ast.FieldDeclaration;
45 import net.sourceforge.phpdt.internal.compiler.ast.FieldReference;
46 import net.sourceforge.phpdt.internal.compiler.ast.FloatLiteral;
47 import net.sourceforge.phpdt.internal.compiler.ast.ForStatement;
48 import net.sourceforge.phpdt.internal.compiler.ast.IfStatement;
49 import net.sourceforge.phpdt.internal.compiler.ast.ImportReference;
50 import net.sourceforge.phpdt.internal.compiler.ast.Initializer;
51 import net.sourceforge.phpdt.internal.compiler.ast.InstanceOfExpression;
52 import net.sourceforge.phpdt.internal.compiler.ast.IntLiteral;
53 import net.sourceforge.phpdt.internal.compiler.ast.LabeledStatement;
54 import net.sourceforge.phpdt.internal.compiler.ast.LocalDeclaration;
55 import net.sourceforge.phpdt.internal.compiler.ast.LocalTypeDeclaration;
56 import net.sourceforge.phpdt.internal.compiler.ast.LongLiteral;
57 import net.sourceforge.phpdt.internal.compiler.ast.MemberTypeDeclaration;
58 import net.sourceforge.phpdt.internal.compiler.ast.MessageSend;
59 import net.sourceforge.phpdt.internal.compiler.ast.MethodDeclaration;
60 import net.sourceforge.phpdt.internal.compiler.ast.NullLiteral;
61 import net.sourceforge.phpdt.internal.compiler.ast.OR_OR_Expression;
62 import net.sourceforge.phpdt.internal.compiler.ast.PostfixExpression;
63 import net.sourceforge.phpdt.internal.compiler.ast.PrefixExpression;
64 import net.sourceforge.phpdt.internal.compiler.ast.QualifiedAllocationExpression;
65 import net.sourceforge.phpdt.internal.compiler.ast.QualifiedNameReference;
66 import net.sourceforge.phpdt.internal.compiler.ast.QualifiedSuperReference;
67 import net.sourceforge.phpdt.internal.compiler.ast.QualifiedThisReference;
68 import net.sourceforge.phpdt.internal.compiler.ast.QualifiedTypeReference;
69 import net.sourceforge.phpdt.internal.compiler.ast.ReturnStatement;
70 import net.sourceforge.phpdt.internal.compiler.ast.SingleNameReference;
71 import net.sourceforge.phpdt.internal.compiler.ast.SingleTypeReference;
72 import net.sourceforge.phpdt.internal.compiler.ast.StringLiteral;
73 import net.sourceforge.phpdt.internal.compiler.ast.SuperReference;
74 import net.sourceforge.phpdt.internal.compiler.ast.SwitchStatement;
75 import net.sourceforge.phpdt.internal.compiler.ast.ThisReference;
76 import net.sourceforge.phpdt.internal.compiler.ast.ThrowStatement;
77 import net.sourceforge.phpdt.internal.compiler.ast.TrueLiteral;
78 import net.sourceforge.phpdt.internal.compiler.ast.TryStatement;
79 import net.sourceforge.phpdt.internal.compiler.ast.TypeDeclaration;
80 import net.sourceforge.phpdt.internal.compiler.ast.UnaryExpression;
81 import net.sourceforge.phpdt.internal.compiler.ast.WhileStatement;
82 import net.sourceforge.phpdt.internal.compiler.lookup.BlockScope;
83 import net.sourceforge.phpdt.internal.compiler.lookup.ClassScope;
84 import net.sourceforge.phpdt.internal.compiler.lookup.CompilationUnitScope;
85 import net.sourceforge.phpdt.internal.compiler.lookup.MethodScope;
86 
87 /**
88  * A visitor interface for interating through the parse tree.
89  */
90 public interface IAbstractSyntaxTreeVisitor {
acceptProblem(IProblem problem)91 	void acceptProblem(IProblem problem);
92 
endVisit(AllocationExpression allocationExpression, BlockScope scope)93 	void endVisit(AllocationExpression allocationExpression, BlockScope scope);
94 
endVisit(AND_AND_Expression and_and_Expression, BlockScope scope)95 	void endVisit(AND_AND_Expression and_and_Expression, BlockScope scope);
96 
endVisit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration, BlockScope scope)97 	void endVisit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration,
98 			BlockScope scope);
99 
endVisit(Argument argument, BlockScope scope)100 	void endVisit(Argument argument, BlockScope scope);
101 
endVisit(ArrayAllocationExpression arrayAllocationExpression, BlockScope scope)102 	void endVisit(ArrayAllocationExpression arrayAllocationExpression,
103 			BlockScope scope);
104 
endVisit(ArrayInitializer arrayInitializer, BlockScope scope)105 	void endVisit(ArrayInitializer arrayInitializer, BlockScope scope);
106 
endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, BlockScope scope)107 	void endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference,
108 			BlockScope scope);
109 
endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, ClassScope scope)110 	void endVisit(ArrayQualifiedTypeReference arrayQualifiedTypeReference,
111 			ClassScope scope);
112 
endVisit(ArrayReference arrayReference, BlockScope scope)113 	void endVisit(ArrayReference arrayReference, BlockScope scope);
114 
endVisit(ArrayTypeReference arrayTypeReference, BlockScope scope)115 	void endVisit(ArrayTypeReference arrayTypeReference, BlockScope scope);
116 
endVisit(ArrayTypeReference arrayTypeReference, ClassScope scope)117 	void endVisit(ArrayTypeReference arrayTypeReference, ClassScope scope);
118 
endVisit(AssertStatement assertStatement, BlockScope scope)119 	void endVisit(AssertStatement assertStatement, BlockScope scope);
120 
endVisit(Assignment assignment, BlockScope scope)121 	void endVisit(Assignment assignment, BlockScope scope);
122 
endVisit(BinaryExpression binaryExpression, BlockScope scope)123 	void endVisit(BinaryExpression binaryExpression, BlockScope scope);
124 
endVisit(Block block, BlockScope scope)125 	void endVisit(Block block, BlockScope scope);
126 
endVisit(BreakStatement breakStatement, BlockScope scope)127 	void endVisit(BreakStatement breakStatement, BlockScope scope);
128 
endVisit(CaseStatement caseStatement, BlockScope scope)129 	void endVisit(CaseStatement caseStatement, BlockScope scope);
130 
endVisit(CastExpression castExpression, BlockScope scope)131 	void endVisit(CastExpression castExpression, BlockScope scope);
132 
133 	// void endVisit(CharLiteral charLiteral, BlockScope scope);
134 	// void endVisit(ClassLiteralAccess classLiteral, BlockScope scope);
endVisit(Clinit clinit, ClassScope scope)135 	void endVisit(Clinit clinit, ClassScope scope);
136 
endVisit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope)137 	void endVisit(CompilationUnitDeclaration compilationUnitDeclaration,
138 			CompilationUnitScope scope);
139 
endVisit(CompoundAssignment compoundAssignment, BlockScope scope)140 	void endVisit(CompoundAssignment compoundAssignment, BlockScope scope);
141 
endVisit(ConditionalExpression conditionalExpression, BlockScope scope)142 	void endVisit(ConditionalExpression conditionalExpression, BlockScope scope);
143 
endVisit(ConstructorDeclaration constructorDeclaration, ClassScope scope)144 	void endVisit(ConstructorDeclaration constructorDeclaration,
145 			ClassScope scope);
146 
endVisit(ContinueStatement continueStatement, BlockScope scope)147 	void endVisit(ContinueStatement continueStatement, BlockScope scope);
148 
endVisit(DefaultCase defaultCaseStatement, BlockScope scope)149 	void endVisit(DefaultCase defaultCaseStatement, BlockScope scope);
150 
endVisit(DoStatement doStatement, BlockScope scope)151 	void endVisit(DoStatement doStatement, BlockScope scope);
152 
endVisit(DoubleLiteral doubleLiteral, BlockScope scope)153 	void endVisit(DoubleLiteral doubleLiteral, BlockScope scope);
154 
endVisit(EqualExpression equalExpression, BlockScope scope)155 	void endVisit(EqualExpression equalExpression, BlockScope scope);
156 
endVisit(EmptyStatement statement, BlockScope scope)157 	void endVisit(EmptyStatement statement, BlockScope scope);
158 
endVisit(ExplicitConstructorCall explicitConstructor, BlockScope scope)159 	void endVisit(ExplicitConstructorCall explicitConstructor, BlockScope scope);
160 
endVisit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope)161 	void endVisit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope);
162 
endVisit(FalseLiteral falseLiteral, BlockScope scope)163 	void endVisit(FalseLiteral falseLiteral, BlockScope scope);
164 
endVisit(FieldDeclaration fieldDeclaration, MethodScope scope)165 	void endVisit(FieldDeclaration fieldDeclaration, MethodScope scope);
166 
endVisit(FieldReference fieldReference, BlockScope scope)167 	void endVisit(FieldReference fieldReference, BlockScope scope);
168 
endVisit(FloatLiteral floatLiteral, BlockScope scope)169 	void endVisit(FloatLiteral floatLiteral, BlockScope scope);
170 
endVisit(ForStatement forStatement, BlockScope scope)171 	void endVisit(ForStatement forStatement, BlockScope scope);
172 
endVisit(IfStatement ifStatement, BlockScope scope)173 	void endVisit(IfStatement ifStatement, BlockScope scope);
174 
endVisit(ImportReference importRef, CompilationUnitScope scope)175 	void endVisit(ImportReference importRef, CompilationUnitScope scope);
176 
endVisit(Initializer initializer, MethodScope scope)177 	void endVisit(Initializer initializer, MethodScope scope);
178 
endVisit(InstanceOfExpression instanceOfExpression, BlockScope scope)179 	void endVisit(InstanceOfExpression instanceOfExpression, BlockScope scope);
180 
endVisit(IntLiteral intLiteral, BlockScope scope)181 	void endVisit(IntLiteral intLiteral, BlockScope scope);
182 
endVisit(LabeledStatement labeledStatement, BlockScope scope)183 	void endVisit(LabeledStatement labeledStatement, BlockScope scope);
184 
endVisit(LocalDeclaration localDeclaration, BlockScope scope)185 	void endVisit(LocalDeclaration localDeclaration, BlockScope scope);
186 
endVisit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope)187 	void endVisit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope);
188 
endVisit(LongLiteral longLiteral, BlockScope scope)189 	void endVisit(LongLiteral longLiteral, BlockScope scope);
190 
endVisit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope)191 	void endVisit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope);
192 
endVisit(MessageSend messageSend, BlockScope scope)193 	void endVisit(MessageSend messageSend, BlockScope scope);
194 
endVisit(MethodDeclaration methodDeclaration, ClassScope scope)195 	void endVisit(MethodDeclaration methodDeclaration, ClassScope scope);
196 
endVisit(NullLiteral nullLiteral, BlockScope scope)197 	void endVisit(NullLiteral nullLiteral, BlockScope scope);
198 
endVisit(OR_OR_Expression or_or_Expression, BlockScope scope)199 	void endVisit(OR_OR_Expression or_or_Expression, BlockScope scope);
200 
endVisit(PostfixExpression postfixExpression, BlockScope scope)201 	void endVisit(PostfixExpression postfixExpression, BlockScope scope);
202 
endVisit(PrefixExpression prefixExpression, BlockScope scope)203 	void endVisit(PrefixExpression prefixExpression, BlockScope scope);
204 
endVisit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope)205 	void endVisit(QualifiedAllocationExpression qualifiedAllocationExpression,
206 			BlockScope scope);
207 
endVisit(QualifiedNameReference qualifiedNameReference, BlockScope scope)208 	void endVisit(QualifiedNameReference qualifiedNameReference,
209 			BlockScope scope);
210 
endVisit(QualifiedSuperReference qualifiedSuperReference, BlockScope scope)211 	void endVisit(QualifiedSuperReference qualifiedSuperReference,
212 			BlockScope scope);
213 
endVisit(QualifiedThisReference qualifiedThisReference, BlockScope scope)214 	void endVisit(QualifiedThisReference qualifiedThisReference,
215 			BlockScope scope);
216 
endVisit(QualifiedTypeReference qualifiedTypeReference, BlockScope scope)217 	void endVisit(QualifiedTypeReference qualifiedTypeReference,
218 			BlockScope scope);
219 
endVisit(QualifiedTypeReference qualifiedTypeReference, ClassScope scope)220 	void endVisit(QualifiedTypeReference qualifiedTypeReference,
221 			ClassScope scope);
222 
endVisit(ReturnStatement returnStatement, BlockScope scope)223 	void endVisit(ReturnStatement returnStatement, BlockScope scope);
224 
endVisit(SingleNameReference singleNameReference, BlockScope scope)225 	void endVisit(SingleNameReference singleNameReference, BlockScope scope);
226 
endVisit(SingleTypeReference singleTypeReference, BlockScope scope)227 	void endVisit(SingleTypeReference singleTypeReference, BlockScope scope);
228 
endVisit(SingleTypeReference singleTypeReference, ClassScope scope)229 	void endVisit(SingleTypeReference singleTypeReference, ClassScope scope);
230 
endVisit(StringLiteral stringLiteral, BlockScope scope)231 	void endVisit(StringLiteral stringLiteral, BlockScope scope);
232 
endVisit(SuperReference superReference, BlockScope scope)233 	void endVisit(SuperReference superReference, BlockScope scope);
234 
endVisit(SwitchStatement switchStatement, BlockScope scope)235 	void endVisit(SwitchStatement switchStatement, BlockScope scope);
236 
237 	// void endVisit(SynchronizedStatement synchronizedStatement, BlockScope
238 	// scope);
endVisit(ThisReference thisReference, BlockScope scope)239 	void endVisit(ThisReference thisReference, BlockScope scope);
240 
endVisit(ThrowStatement throwStatement, BlockScope scope)241 	void endVisit(ThrowStatement throwStatement, BlockScope scope);
242 
endVisit(TrueLiteral trueLiteral, BlockScope scope)243 	void endVisit(TrueLiteral trueLiteral, BlockScope scope);
244 
endVisit(TryStatement tryStatement, BlockScope scope)245 	void endVisit(TryStatement tryStatement, BlockScope scope);
246 
endVisit(TypeDeclaration typeDeclaration, CompilationUnitScope scope)247 	void endVisit(TypeDeclaration typeDeclaration, CompilationUnitScope scope);
248 
endVisit(UnaryExpression unaryExpression, BlockScope scope)249 	void endVisit(UnaryExpression unaryExpression, BlockScope scope);
250 
endVisit(WhileStatement whileStatement, BlockScope scope)251 	void endVisit(WhileStatement whileStatement, BlockScope scope);
252 
visit(AllocationExpression allocationExpression, BlockScope scope)253 	boolean visit(AllocationExpression allocationExpression, BlockScope scope);
254 
visit(AND_AND_Expression and_and_Expression, BlockScope scope)255 	boolean visit(AND_AND_Expression and_and_Expression, BlockScope scope);
256 
visit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration, BlockScope scope)257 	boolean visit(AnonymousLocalTypeDeclaration anonymousTypeDeclaration,
258 			BlockScope scope);
259 
visit(Argument argument, BlockScope scope)260 	boolean visit(Argument argument, BlockScope scope);
261 
visit(ArrayAllocationExpression arrayAllocationExpression, BlockScope scope)262 	boolean visit(ArrayAllocationExpression arrayAllocationExpression,
263 			BlockScope scope);
264 
visit(ArrayInitializer arrayInitializer, BlockScope scope)265 	boolean visit(ArrayInitializer arrayInitializer, BlockScope scope);
266 
visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, BlockScope scope)267 	boolean visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference,
268 			BlockScope scope);
269 
visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference, ClassScope scope)270 	boolean visit(ArrayQualifiedTypeReference arrayQualifiedTypeReference,
271 			ClassScope scope);
272 
visit(ArrayReference arrayReference, BlockScope scope)273 	boolean visit(ArrayReference arrayReference, BlockScope scope);
274 
visit(ArrayTypeReference arrayTypeReference, BlockScope scope)275 	boolean visit(ArrayTypeReference arrayTypeReference, BlockScope scope);
276 
visit(ArrayTypeReference arrayTypeReference, ClassScope scope)277 	boolean visit(ArrayTypeReference arrayTypeReference, ClassScope scope);
278 
visit(AssertStatement assertStatement, BlockScope scope)279 	boolean visit(AssertStatement assertStatement, BlockScope scope);
280 
visit(Assignment assignment, BlockScope scope)281 	boolean visit(Assignment assignment, BlockScope scope);
282 
visit(BinaryExpression binaryExpression, BlockScope scope)283 	boolean visit(BinaryExpression binaryExpression, BlockScope scope);
284 
visit(Block block, BlockScope scope)285 	boolean visit(Block block, BlockScope scope);
286 
visit(BreakStatement breakStatement, BlockScope scope)287 	boolean visit(BreakStatement breakStatement, BlockScope scope);
288 
visit(CaseStatement caseStatement, BlockScope scope)289 	boolean visit(CaseStatement caseStatement, BlockScope scope);
290 
visit(CastExpression castExpression, BlockScope scope)291 	boolean visit(CastExpression castExpression, BlockScope scope);
292 
293 	// boolean visit(CharLiteral charLiteral, BlockScope scope);
294 	// boolean visit(ClassLiteralAccess classLiteral, BlockScope scope);
visit(Clinit clinit, ClassScope scope)295 	boolean visit(Clinit clinit, ClassScope scope);
296 
visit(CompilationUnitDeclaration compilationUnitDeclaration, CompilationUnitScope scope)297 	boolean visit(CompilationUnitDeclaration compilationUnitDeclaration,
298 			CompilationUnitScope scope);
299 
visit(CompoundAssignment compoundAssignment, BlockScope scope)300 	boolean visit(CompoundAssignment compoundAssignment, BlockScope scope);
301 
visit(ConditionalExpression conditionalExpression, BlockScope scope)302 	boolean visit(ConditionalExpression conditionalExpression, BlockScope scope);
303 
visit(ConstructorDeclaration constructorDeclaration, ClassScope scope)304 	boolean visit(ConstructorDeclaration constructorDeclaration,
305 			ClassScope scope);
306 
visit(ContinueStatement continueStatement, BlockScope scope)307 	boolean visit(ContinueStatement continueStatement, BlockScope scope);
308 
visit(DefaultCase defaultCaseStatement, BlockScope scope)309 	boolean visit(DefaultCase defaultCaseStatement, BlockScope scope);
310 
visit(DoStatement doStatement, BlockScope scope)311 	boolean visit(DoStatement doStatement, BlockScope scope);
312 
visit(DoubleLiteral doubleLiteral, BlockScope scope)313 	boolean visit(DoubleLiteral doubleLiteral, BlockScope scope);
314 
visit(EqualExpression equalExpression, BlockScope scope)315 	boolean visit(EqualExpression equalExpression, BlockScope scope);
316 
visit(EmptyStatement statement, BlockScope scope)317 	boolean visit(EmptyStatement statement, BlockScope scope);
318 
visit(ExplicitConstructorCall explicitConstructor, BlockScope scope)319 	boolean visit(ExplicitConstructorCall explicitConstructor, BlockScope scope);
320 
visit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope)321 	boolean visit(ExtendedStringLiteral extendedStringLiteral, BlockScope scope);
322 
visit(FalseLiteral falseLiteral, BlockScope scope)323 	boolean visit(FalseLiteral falseLiteral, BlockScope scope);
324 
visit(FieldDeclaration fieldDeclaration, MethodScope scope)325 	boolean visit(FieldDeclaration fieldDeclaration, MethodScope scope);
326 
visit(FieldReference fieldReference, BlockScope scope)327 	boolean visit(FieldReference fieldReference, BlockScope scope);
328 
visit(FloatLiteral floatLiteral, BlockScope scope)329 	boolean visit(FloatLiteral floatLiteral, BlockScope scope);
330 
visit(ForStatement forStatement, BlockScope scope)331 	boolean visit(ForStatement forStatement, BlockScope scope);
332 
visit(IfStatement ifStatement, BlockScope scope)333 	boolean visit(IfStatement ifStatement, BlockScope scope);
334 
visit(ImportReference importRef, CompilationUnitScope scope)335 	boolean visit(ImportReference importRef, CompilationUnitScope scope);
336 
visit(Initializer initializer, MethodScope scope)337 	boolean visit(Initializer initializer, MethodScope scope);
338 
visit(InstanceOfExpression instanceOfExpression, BlockScope scope)339 	boolean visit(InstanceOfExpression instanceOfExpression, BlockScope scope);
340 
visit(IntLiteral intLiteral, BlockScope scope)341 	boolean visit(IntLiteral intLiteral, BlockScope scope);
342 
visit(LabeledStatement labeledStatement, BlockScope scope)343 	boolean visit(LabeledStatement labeledStatement, BlockScope scope);
344 
visit(LocalDeclaration localDeclaration, BlockScope scope)345 	boolean visit(LocalDeclaration localDeclaration, BlockScope scope);
346 
visit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope)347 	boolean visit(LocalTypeDeclaration localTypeDeclaration, BlockScope scope);
348 
visit(LongLiteral longLiteral, BlockScope scope)349 	boolean visit(LongLiteral longLiteral, BlockScope scope);
350 
visit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope)351 	boolean visit(MemberTypeDeclaration memberTypeDeclaration, ClassScope scope);
352 
visit(MessageSend messageSend, BlockScope scope)353 	boolean visit(MessageSend messageSend, BlockScope scope);
354 
visit(MethodDeclaration methodDeclaration, ClassScope scope)355 	boolean visit(MethodDeclaration methodDeclaration, ClassScope scope);
356 
visit(NullLiteral nullLiteral, BlockScope scope)357 	boolean visit(NullLiteral nullLiteral, BlockScope scope);
358 
visit(OR_OR_Expression or_or_Expression, BlockScope scope)359 	boolean visit(OR_OR_Expression or_or_Expression, BlockScope scope);
360 
visit(PostfixExpression postfixExpression, BlockScope scope)361 	boolean visit(PostfixExpression postfixExpression, BlockScope scope);
362 
visit(PrefixExpression prefixExpression, BlockScope scope)363 	boolean visit(PrefixExpression prefixExpression, BlockScope scope);
364 
visit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope)365 	boolean visit(QualifiedAllocationExpression qualifiedAllocationExpression,
366 			BlockScope scope);
367 
visit(QualifiedNameReference qualifiedNameReference, BlockScope scope)368 	boolean visit(QualifiedNameReference qualifiedNameReference,
369 			BlockScope scope);
370 
visit(QualifiedSuperReference qualifiedSuperReference, BlockScope scope)371 	boolean visit(QualifiedSuperReference qualifiedSuperReference,
372 			BlockScope scope);
373 
visit(QualifiedThisReference qualifiedThisReference, BlockScope scope)374 	boolean visit(QualifiedThisReference qualifiedThisReference,
375 			BlockScope scope);
376 
visit(QualifiedTypeReference qualifiedTypeReference, BlockScope scope)377 	boolean visit(QualifiedTypeReference qualifiedTypeReference,
378 			BlockScope scope);
379 
visit(QualifiedTypeReference qualifiedTypeReference, ClassScope scope)380 	boolean visit(QualifiedTypeReference qualifiedTypeReference,
381 			ClassScope scope);
382 
visit(ReturnStatement returnStatement, BlockScope scope)383 	boolean visit(ReturnStatement returnStatement, BlockScope scope);
384 
visit(SingleNameReference singleNameReference, BlockScope scope)385 	boolean visit(SingleNameReference singleNameReference, BlockScope scope);
386 
visit(SingleTypeReference singleTypeReference, BlockScope scope)387 	boolean visit(SingleTypeReference singleTypeReference, BlockScope scope);
388 
visit(SingleTypeReference singleTypeReference, ClassScope scope)389 	boolean visit(SingleTypeReference singleTypeReference, ClassScope scope);
390 
visit(StringLiteral stringLiteral, BlockScope scope)391 	boolean visit(StringLiteral stringLiteral, BlockScope scope);
392 
visit(SuperReference superReference, BlockScope scope)393 	boolean visit(SuperReference superReference, BlockScope scope);
394 
visit(SwitchStatement switchStatement, BlockScope scope)395 	boolean visit(SwitchStatement switchStatement, BlockScope scope);
396 
397 	// boolean visit(SynchronizedStatement synchronizedStatement, BlockScope
398 	// scope);
visit(ThisReference thisReference, BlockScope scope)399 	boolean visit(ThisReference thisReference, BlockScope scope);
400 
visit(ThrowStatement throwStatement, BlockScope scope)401 	boolean visit(ThrowStatement throwStatement, BlockScope scope);
402 
visit(TrueLiteral trueLiteral, BlockScope scope)403 	boolean visit(TrueLiteral trueLiteral, BlockScope scope);
404 
visit(TryStatement tryStatement, BlockScope scope)405 	boolean visit(TryStatement tryStatement, BlockScope scope);
406 
visit(TypeDeclaration typeDeclaration, CompilationUnitScope scope)407 	boolean visit(TypeDeclaration typeDeclaration, CompilationUnitScope scope);
408 
visit(UnaryExpression unaryExpression, BlockScope scope)409 	boolean visit(UnaryExpression unaryExpression, BlockScope scope);
410 
visit(WhileStatement whileStatement, BlockScope scope)411 	boolean visit(WhileStatement whileStatement, BlockScope scope);
412 }
413