001 // $Id: DefaultVisitor.java,v 1.3 2006/09/25 15:48:32 chalin Exp $
002 /* Copyright 2000, 2001, Compaq Computer Corporation */
003
004 package javafe.ast;
005
006 import javafe.util.Assert;
007 import javafe.util.Location;
008
009
010 public class DefaultVisitor extends Visitor {
011
012 public void visitASTNode(/*@non_null*/ ASTNode x) {
013 // Assert.fail("DefaultVisitor.visitASTNode"+x);
014 }
015
016 public void visitModifierPragma(/*@non_null*/ ModifierPragma x) {
017 }
018
019 public void visitTypeDeclElemPragma(/*@non_null*/ TypeDeclElemPragma x) {
020 }
021
022 public void visitStmtPragma(/*@non_null*/ StmtPragma x) {
023 }
024
025 public void visitTypeModifierPragma(/*@non_null*/ TypeModifierPragma x) {
026 }
027
028 public void visitLexicalPragma(/*@non_null*/ LexicalPragma x) {
029 }
030
031
032 public void visitCompilationUnit(/*@non_null*/ CompilationUnit x) {
033 for(int i=0; i<x.imports.size(); i++)
034 x.imports.elementAt(i).accept( this );
035 for(int i=0; i<x.elems.size(); i++)
036 x.elems.elementAt(i).accept( this );
037 if( x.lexicalPragmas != null )
038 for(int i=0; i<x.lexicalPragmas.size(); i++)
039 x.lexicalPragmas.elementAt(i).accept( this );
040 }
041
042 public void visitTypeDecl(/*@non_null*/ TypeDecl x) {
043 for(int i=0; i<x.superInterfaces.size(); i++)
044 x.superInterfaces.elementAt(i).accept( this );
045 for(int i=0; i<x.elems.size(); i++)
046 x.elems.elementAt(i).accept( this );
047 if( x.pmodifiers != null )
048 for(int i=0; i<x.pmodifiers.size(); i++)
049 x.pmodifiers.elementAt(i).accept( this );
050 if( x.tmodifiers != null )
051 for(int i=0; i<x.tmodifiers.size(); i++)
052 x.tmodifiers.elementAt(i).accept( this );
053 }
054
055 public void visitClassDecl(/*@non_null*/ ClassDecl x) {
056 if( x.superClass != null ) x.superClass.accept( this );
057 visitTypeDecl(x);
058 }
059
060 public void visitInterfaceDecl(/*@non_null*/ InterfaceDecl x) {
061 visitTypeDecl(x);
062 }
063
064 public void visitRoutineDecl(/*@non_null*/ RoutineDecl x) {
065 for(int i=0; i<x.args.size(); i++)
066 x.args.elementAt(i).accept( this );
067 for(int i=0; i<x.raises.size(); i++)
068 x.raises.elementAt(i).accept( this );
069 if( x.pmodifiers != null )
070 for(int i=0; i<x.pmodifiers.size(); i++)
071 x.pmodifiers.elementAt(i).accept( this );
072 if( x.body != null ) x.body.accept( this );
073
074 }
075
076 public void visitConstructorDecl(/*@non_null*/ ConstructorDecl x) {
077 visitRoutineDecl(x);
078 if( x.tmodifiers != null )
079 for(int i=0; i<x.tmodifiers.size(); i++)
080 x.tmodifiers.elementAt(i).accept( this );
081 }
082
083 public void visitMethodDecl(/*@non_null*/ MethodDecl x) {
084 visitRoutineDecl(x);
085 x.returnType.accept( this );
086 }
087
088 public void visitInitBlock(/*@non_null*/ InitBlock x) {
089 x.block.accept( this );
090 if( x.pmodifiers != null )
091 for(int i=0; i<x.pmodifiers.size(); i++)
092 x.pmodifiers.elementAt(i).accept( this );
093 }
094
095 public void visitGenericVarDecl(/*@non_null*/ GenericVarDecl x) {
096 if( x.pmodifiers != null )
097 for(int i=0; i<x.pmodifiers.size(); i++)
098 x.pmodifiers.elementAt(i).accept( this );
099 x.type.accept( this );
100 }
101
102 public void visitLocalVarDecl(/*@non_null*/ LocalVarDecl x) {
103 visitGenericVarDecl(x);
104 if( x.init != null ) x.init.accept( this );
105 }
106
107 public void visitFieldDecl(/*@non_null*/ FieldDecl x) {
108 visitGenericVarDecl(x);
109 if( x.init != null ) x.init.accept( this );
110 }
111
112 public void visitFormalParaDecl(/*@non_null*/ FormalParaDecl x) {
113 visitGenericVarDecl(x);
114 }
115
116 // ------------------------------
117
118 public void visitGenericBlockStmt(/*@non_null*/ GenericBlockStmt x) {
119 for(int i=0; i<x.stmts.size(); i++)
120 x.stmts.elementAt(i).accept( this );
121 }
122
123 public void visitBlockStmt(/*@non_null*/ BlockStmt x) {
124 visitGenericBlockStmt(x);
125 }
126
127 public void visitSwitchStmt(/*@non_null*/ SwitchStmt x) {
128 visitGenericBlockStmt(x);
129 x.expr.accept( this );
130 }
131
132 public void visitClassDeclStmt(/*@non_null*/ ClassDeclStmt x) {
133 x.decl.accept( this );
134 }
135
136 public void visitVarDeclStmt(/*@non_null*/ VarDeclStmt x) {
137 x.decl.accept( this );
138 }
139
140 public void visitWhileStmt(/*@non_null*/ WhileStmt x) {
141 x.expr.accept( this );
142 x.stmt.accept( this );
143 }
144
145 public void visitDoStmt(/*@non_null*/ DoStmt x) {
146 x.expr.accept( this );
147 x.stmt.accept( this );
148 }
149
150 public void visitSynchronizeStmt(/*@non_null*/ SynchronizeStmt x) {
151 x.expr.accept( this );
152 x.stmt.accept( this );
153 }
154
155 public void visitEvalStmt(/*@non_null*/ EvalStmt x) {
156 x.expr.accept( this );
157 }
158
159 public void visitReturnStmt(/*@non_null*/ ReturnStmt x) {
160 if( x.expr != null ) x.expr.accept( this );
161 }
162
163 public void visitThrowStmt(/*@non_null*/ ThrowStmt x) {
164 x.expr.accept( this );
165 }
166
167 public void visitBranchStmt(/*@non_null*/ BranchStmt x) {
168 }
169
170 public void visitBreakStmt(/*@non_null*/ BreakStmt x) {
171 }
172
173 public void visitContinueStmt(/*@non_null*/ ContinueStmt x) {
174 }
175
176 public void visitLabelStmt(/*@non_null*/ LabelStmt x) {
177 x.stmt.accept( this );
178 }
179
180 public void visitIfStmt(/*@non_null*/ IfStmt x) {
181 x.expr.accept( this );
182 x.thn.accept( this );
183 x.els.accept( this );
184 }
185
186 public void visitForStmt(/*@non_null*/ ForStmt x) {
187 for(int i=0; i<x.forInit.size(); i++)
188 x.forInit.elementAt(i).accept( this );
189 x.test.accept( this );
190 for(int i=0; i<x.forUpdate.size(); i++)
191 x.forUpdate.elementAt(i).accept( this );
192 x.body.accept( this );
193 }
194
195 public void visitSkipStmt(/*@non_null*/ SkipStmt x) {
196 }
197
198 public void visitSwitchLabel(/*@non_null*/ SwitchLabel x) {
199 if( x.expr != null ) x.expr.accept( this );
200 }
201
202 public void visitTryFinallyStmt(/*@non_null*/ TryFinallyStmt x) {
203 x.tryClause.accept( this );
204 x.finallyClause.accept( this );
205 }
206
207 public void visitTryCatchStmt(/*@non_null*/ TryCatchStmt x) {
208 x.tryClause.accept( this );
209 for(int i=0; i<x.catchClauses.size(); i++)
210 x.catchClauses.elementAt(i).accept( this );
211 }
212
213 public void visitConstructorInvocation(/*@non_null*/ ConstructorInvocation x) {
214 for(int i=0; i<x.args.size(); i++)
215 x.args.elementAt(i).accept( this );
216 }
217
218 public void visitCatchClause(/*@non_null*/ CatchClause x) {
219 x.arg.accept( this );
220 x.body.accept( this );
221 }
222
223 public void visitArrayInit(/*@non_null*/ ArrayInit x) {
224 for(int i=0; i<x.elems.size(); i++)
225 x.elems.elementAt(i).accept( this );
226 }
227
228 public void visitExpr(/*@non_null*/ Expr x) {
229 }
230
231 public void visitThisExpr(/*@non_null*/ ThisExpr x) {
232 if (x.classPrefix != null)
233 x.classPrefix.accept( this );
234 visitExpr(x);
235 }
236
237 public void visitLiteralExpr(/*@non_null*/ LiteralExpr x) {
238 visitExpr(x);
239 }
240
241 public void visitArrayRefExpr(/*@non_null*/ ArrayRefExpr x) {
242 x.array.accept( this );
243 x.index.accept( this );
244 visitExpr(x);
245 }
246
247 public void visitNewInstanceExpr(/*@non_null*/ NewInstanceExpr x) {
248 x.type.accept( this );
249 for(int i=0; i<x.args.size(); i++)
250 x.args.elementAt(i).accept( this );
251 if (x.anonDecl != null) x.anonDecl.accept( this );
252 visitExpr(x);
253 }
254
255 public void visitNewArrayExpr(/*@non_null*/ NewArrayExpr x) {
256 x.type.accept( this );
257 for(int i=0; i<x.dims.size(); i++)
258 x.dims.elementAt(i).accept( this );
259 if (x.init != null) x.init.accept( this );
260 visitExpr(x);
261 }
262
263 public void visitCondExpr(/*@non_null*/ CondExpr x) {
264 x.test.accept( this );
265 x.thn.accept( this );
266 x.els.accept( this );
267 visitExpr(x);
268 }
269
270 public void visitInstanceOfExpr(/*@non_null*/ InstanceOfExpr x) {
271 x.expr.accept( this );
272 x.type.accept( this );
273 visitExpr(x);
274 }
275
276 public void visitCastExpr(/*@non_null*/ CastExpr x) {
277 x.expr.accept( this );
278 x.type.accept( this );
279 visitExpr(x);
280 }
281
282 public void visitBinaryExpr(/*@non_null*/ BinaryExpr x) {
283 x.left.accept( this );
284 x.right.accept( this );
285 visitExpr(x);
286 }
287
288 public void visitUnaryExpr(/*@non_null*/ UnaryExpr x) {
289 x.expr.accept( this );
290 visitExpr(x);
291 }
292
293 public void visitParenExpr(/*@non_null*/ ParenExpr x) {
294 x.expr.accept( this );
295 visitExpr(x);
296 }
297
298 public void visitAmbiguousVariableAccess(/*@non_null*/ AmbiguousVariableAccess x) {
299 visitExpr(x);
300 }
301
302 public void visitVariableAccess(/*@non_null*/ VariableAccess x) {
303 visitExpr(x);
304 }
305
306 public void visitFieldAccess(/*@non_null*/ FieldAccess x) {
307 x.od.accept( this );
308 visitExpr(x);
309 }
310
311 public void visitAmbiguousMethodInvocation(/*@non_null*/ AmbiguousMethodInvocation x) {
312 for(int i=0; i<x.args.size(); i++)
313 x.args.elementAt(i).accept( this );
314 visitExpr(x);
315 }
316
317 public void visitMethodInvocation(/*@non_null*/ MethodInvocation x) {
318 x.od.accept( this );
319 for(int i=0; i<x.args.size(); i++)
320 x.args.elementAt(i).accept( this );
321 visitExpr(x);
322 }
323
324 public void visitClassLiteral(/*@non_null*/ ClassLiteral x) {
325 x.type.accept( this );
326 visitExpr(x);
327 }
328
329
330 // ------------------------------
331
332 public void visitExprObjectDesignator(/*@non_null*/ ExprObjectDesignator x) {
333 x.expr.accept( this );
334 visitObjectDesignator(x);
335 }
336
337 public void visitTypeObjectDesignator(/*@non_null*/ TypeObjectDesignator x) {
338 x.type.accept( this );
339 visitObjectDesignator(x);
340 }
341
342 public void visitSuperObjectDesignator(/*@non_null*/ SuperObjectDesignator x) {
343 visitObjectDesignator(x);
344 }
345
346 // ------------------------------
347
348 public void visitPrimitiveType(/*@non_null*/ PrimitiveType x) {
349 visitType(x);
350 }
351
352 public void visitTypeName(/*@non_null*/ TypeName x) {
353 visitType(x);
354 }
355
356 public void visitArrayType(/*@non_null*/ ArrayType x) {
357 x.elemType.accept( this );
358 visitType(x);
359 }
360
361 public void visitType(/*@non_null*/ Type x) {
362 }
363
364 // ------------------------------
365
366 public void visitName(/*@non_null*/ Name x) {
367 }
368 }