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