001: // This file is part of KeY - Integrated Deductive Software Design
002: // Copyright (C) 2001-2007 Universitaet Karlsruhe, Germany
003: // Universitaet Koblenz-Landau, Germany
004: // Chalmers University of Technology, Sweden
005: //
006: // The KeY system is protected by the GNU General Public License.
007: // See LICENSE.TXT for details.
008: //
009: //
010:
011: package de.uka.ilkd.key.java.visitor;
012:
013: import de.uka.ilkd.key.java.*;
014: import de.uka.ilkd.key.java.annotation.Annotation;
015: import de.uka.ilkd.key.java.declaration.*;
016: import de.uka.ilkd.key.java.expression.ArrayInitializer;
017: import de.uka.ilkd.key.java.expression.ParenthesizedExpression;
018: import de.uka.ilkd.key.java.expression.PassiveExpression;
019: import de.uka.ilkd.key.java.expression.literal.*;
020: import de.uka.ilkd.key.java.expression.operator.*;
021: import de.uka.ilkd.key.java.reference.*;
022: import de.uka.ilkd.key.java.statement.*;
023: import de.uka.ilkd.key.logic.ProgramElementName;
024: import de.uka.ilkd.key.logic.op.*;
025: import de.uka.ilkd.key.rule.AbstractProgramElement;
026: import de.uka.ilkd.key.rule.metaconstruct.ProgramMetaConstruct;
027: import de.uka.ilkd.key.rule.soundness.ProgramSVProxy;
028: import de.uka.ilkd.key.rule.soundness.ProgramSVSkolem;
029:
030: /**
031: * Extends the JavaASTWalker to use the visitor mechanism. The
032: * methods inherited by the Visitor interface are all implemented that
033: * they call the method <code> doDefaultAction(ProgramElement) </code>.
034: */
035: public abstract class JavaASTVisitor extends JavaASTWalker implements
036: Visitor {
037:
038: /** create the JavaASTVisitor
039: * @param root the ProgramElement where to begin
040: */
041: public JavaASTVisitor(ProgramElement root) {
042: super (root);
043: }
044:
045: /** the action that is performed just before leaving the node the
046: * last time
047: */
048: protected abstract void doDefaultAction(SourceElement node);
049:
050: public void performActionOnAbstractProgramElement(
051: AbstractProgramElement x) {
052: doDefaultAction(x);
053: }
054:
055: protected void performActionOnAnnotationArray(Annotation[] a) {
056: for (int i = 0; i < a.length; i++) {
057: doDefaultAction(a[i]);
058: }
059: }
060:
061: public void performActionOnArrayDeclaration(ArrayDeclaration x) {
062: doDefaultAction(x);
063: }
064:
065: public void performActionOnArrayInitializer(ArrayInitializer x) {
066: doDefaultAction(x);
067: }
068:
069: public void performActionOnArrayLengthReference(
070: ArrayLengthReference x) {
071: doDefaultAction(x);
072: }
073:
074: public void performActionOnArrayReference(ArrayReference x) {
075: doDefaultAction(x);
076: }
077:
078: public void performActionOnAssert(Assert x) {
079: doDefaultAction(x);
080: }
081:
082: public void performActionOnBinaryAnd(BinaryAnd x) {
083: doDefaultAction(x);
084: }
085:
086: public void performActionOnBinaryAndAssignment(BinaryAndAssignment x) {
087: doDefaultAction(x);
088: }
089:
090: public void performActionOnBinaryNot(BinaryNot x) {
091: doDefaultAction(x);
092: }
093:
094: public void performActionOnBinaryOr(BinaryOr x) {
095: doDefaultAction(x);
096: }
097:
098: public void performActionOnBinaryOrAssignment(BinaryOrAssignment x) {
099: doDefaultAction(x);
100: }
101:
102: public void performActionOnBinaryXOr(BinaryXOr x) {
103: doDefaultAction(x);
104: }
105:
106: public void performActionOnBinaryXOrAssignment(BinaryXOrAssignment x) {
107: doDefaultAction(x);
108: }
109:
110: public void performActionOnBooleanLiteral(BooleanLiteral x) {
111: doDefaultAction(x);
112: }
113:
114: public void performActionOnBreak(Break x) {
115: doDefaultAction(x);
116: }
117:
118: public void performActionOnCase(Case x) {
119: doDefaultAction(x);
120: }
121:
122: public void performActionOnCatch(Catch x) {
123: doDefaultAction(x);
124: }
125:
126: public void performActionOnCatchAllStatement(CatchAllStatement x) {
127: doDefaultAction(x);
128: }
129:
130: public void performActionOnCharLiteral(CharLiteral x) {
131: doDefaultAction(x);
132: }
133:
134: public void performActionOnClassDeclaration(ClassDeclaration x) {
135: doDefaultAction(x);
136: }
137:
138: public void performActionOnClassInitializer(ClassInitializer x) {
139: doDefaultAction(x);
140: }
141:
142: public void performActionOnComment(Comment x) {
143: doDefaultAction(x);
144: }
145:
146: public void performActionOnCompilationUnit(CompilationUnit x) {
147: doDefaultAction(x);
148: }
149:
150: public void performActionOnConditional(Conditional x) {
151: doDefaultAction(x);
152: }
153:
154: public void performActionOnConstructorDeclaration(
155: ConstructorDeclaration x) {
156: doDefaultAction(x);
157: }
158:
159: public void performActionOnContextStatementBlock(
160: ContextStatementBlock x) {
161: doDefaultAction(x);
162: }
163:
164: public void performActionOnContinue(Continue x) {
165: doDefaultAction(x);
166: }
167:
168: public void performActionOnCopyAssignment(CopyAssignment x) {
169: doDefaultAction(x);
170: }
171:
172: public void performActionOnDefault(Default x) {
173: doDefaultAction(x);
174: }
175:
176: public void performActionOnDivide(Divide x) {
177: doDefaultAction(x);
178: }
179:
180: public void performActionOnDivideAssignment(DivideAssignment x) {
181: doDefaultAction(x);
182: }
183:
184: public void performActionOnDo(Do x) {
185: doDefaultAction(x);
186: }
187:
188: public void performActionOnDoubleLiteral(DoubleLiteral x) {
189: doDefaultAction(x);
190: }
191:
192: public void performActionOnElse(Else x) {
193: doDefaultAction(x);
194: }
195:
196: public void performActionOnEmptyStatement(EmptyStatement x) {
197: doDefaultAction(x);
198: }
199:
200: public void performActionOnEquals(Equals x) {
201: doDefaultAction(x);
202: }
203:
204: public void performActionOnExactInstanceof(ExactInstanceof x) {
205: doDefaultAction(x);
206: }
207:
208: public void performActionOnExecutionContext(ExecutionContext x) {
209: doDefaultAction(x);
210: }
211:
212: public void performActionOnExtends(Extends x) {
213: doDefaultAction(x);
214: }
215:
216: public void performActionOnFieldDeclaration(FieldDeclaration x) {
217: doDefaultAction(x);
218: }
219:
220: public void performActionOnFieldReference(FieldReference x) {
221: doDefaultAction(x);
222: }
223:
224: public void performActionOnFieldSpecification(FieldSpecification x) {
225: doDefaultAction(x);
226: }
227:
228: public void performActionOnFinally(Finally x) {
229: doDefaultAction(x);
230: }
231:
232: public void performActionOnFloatLiteral(FloatLiteral x) {
233: doDefaultAction(x);
234: }
235:
236: public void performActionOnFor(For x) {
237: doDefaultAction(x);
238: }
239:
240: public void performActionOnForUpdates(ForUpdates x) {
241: doDefaultAction(x);
242: }
243:
244: public void performActionOnGreaterOrEquals(GreaterOrEquals x) {
245: doDefaultAction(x);
246: }
247:
248: public void performActionOnGreaterThan(GreaterThan x) {
249: doDefaultAction(x);
250: }
251:
252: public void performActionOnGuard(Guard x) {
253: doDefaultAction(x);
254: }
255:
256: public void performActionOnIf(If x) {
257: doDefaultAction(x);
258: }
259:
260: public void performActionOnImplements(Implements x) {
261: doDefaultAction(x);
262: }
263:
264: public void performActionOnImplicitFieldSpecification(
265: ImplicitFieldSpecification x) {
266: doDefaultAction(x);
267: }
268:
269: public void performActionOnImport(Import x) {
270: doDefaultAction(x);
271: }
272:
273: public void performActionOnInstanceof(Instanceof x) {
274: doDefaultAction(x);
275: }
276:
277: public void performActionOnInterfaceDeclaration(
278: InterfaceDeclaration x) {
279: doDefaultAction(x);
280: }
281:
282: public void performActionOnIntLiteral(IntLiteral x) {
283: doDefaultAction(x);
284: }
285:
286: public void performActionOnLabeledStatement(LabeledStatement x) {
287: doDefaultAction(x);
288: }
289:
290: public void performActionOnLessOrEquals(LessOrEquals x) {
291: doDefaultAction(x);
292: }
293:
294: public void performActionOnLessThan(LessThan x) {
295: doDefaultAction(x);
296: }
297:
298: public void performActionOnLocalVariableDeclaration(
299: LocalVariableDeclaration x) {
300: doDefaultAction(x);
301: }
302:
303: public void performActionOnLocationVariable(LocationVariable x) {
304: // TODO: uncomment line below after KeY 1.0 and remove the call
305: // to performActionOnProgramVariable
306: //doDefaultAction(x);
307: performActionOnProgramVariable(x);
308: }
309:
310: public void performActionOnLogicalAnd(LogicalAnd x) {
311: doDefaultAction(x);
312: }
313:
314: public void performActionOnLogicalNot(LogicalNot x) {
315: doDefaultAction(x);
316: }
317:
318: public void performActionOnLogicalOr(LogicalOr x) {
319: doDefaultAction(x);
320: }
321:
322: public void performActionOnLongLiteral(LongLiteral x) {
323: doDefaultAction(x);
324: }
325:
326: public void performActionOnLoopInit(LoopInit x) {
327: doDefaultAction(x);
328: }
329:
330: public void performActionOnMetaClassReference(MetaClassReference x) {
331: doDefaultAction(x);
332: }
333:
334: public void performActionOnMethod(ProgramMethod x) {
335: doDefaultAction(x);
336: }
337:
338: public void performActionOnMethodBodyStatement(MethodBodyStatement x) {
339: doDefaultAction(x);
340: }
341:
342: public void performActionOnMethodDeclaration(MethodDeclaration x) {
343: doDefaultAction(x);
344: }
345:
346: public void performActionOnMethodFrame(MethodFrame x) {
347: doDefaultAction(x);
348: }
349:
350: public void performActionOnMethodReference(MethodReference x) {
351: doDefaultAction(x);
352: }
353:
354: public void performActionOnMinus(Minus x) {
355: doDefaultAction(x);
356: }
357:
358: public void performActionOnMinusAssignment(MinusAssignment x) {
359: doDefaultAction(x);
360: }
361:
362: public void performActionOnModifier(Modifier x) {
363: doDefaultAction(x);
364: }
365:
366: public void performActionOnModulo(Modulo x) {
367: doDefaultAction(x);
368: }
369:
370: public void performActionOnModuloAssignment(ModuloAssignment x) {
371: doDefaultAction(x);
372: }
373:
374: public void performActionOnNegative(Negative x) {
375: doDefaultAction(x);
376: }
377:
378: public void performActionOnNew(New x) {
379: doDefaultAction(x);
380: }
381:
382: public void performActionOnNewArray(NewArray x) {
383: doDefaultAction(x);
384: }
385:
386: public void performActionOnNotEquals(NotEquals x) {
387: doDefaultAction(x);
388: }
389:
390: public void performActionOnNullLiteral(NullLiteral x) {
391: doDefaultAction(x);
392: }
393:
394: public void performActionOnPackageReference(PackageReference x) {
395: doDefaultAction(x);
396: }
397:
398: public void performActionOnPackageSpecification(
399: PackageSpecification x) {
400: doDefaultAction(x);
401: }
402:
403: public void performActionOnParameterDeclaration(
404: ParameterDeclaration x) {
405: doDefaultAction(x);
406: }
407:
408: public void performActionOnParenthesizedExpression(
409: ParenthesizedExpression x) {
410: doDefaultAction(x);
411: }
412:
413: public void performActionOnPassiveExpression(PassiveExpression x) {
414: doDefaultAction(x);
415: }
416:
417: public void performActionOnPlus(Plus x) {
418: doDefaultAction(x);
419: }
420:
421: public void performActionOnPlusAssignment(PlusAssignment x) {
422: doDefaultAction(x);
423: }
424:
425: public void performActionOnPositive(Positive x) {
426: doDefaultAction(x);
427: }
428:
429: public void performActionOnPostDecrement(PostDecrement x) {
430: doDefaultAction(x);
431: }
432:
433: public void performActionOnPostIncrement(PostIncrement x) {
434: doDefaultAction(x);
435: }
436:
437: public void performActionOnPreDecrement(PreDecrement x) {
438: doDefaultAction(x);
439: }
440:
441: public void performActionOnPreIncrement(PreIncrement x) {
442: doDefaultAction(x);
443: }
444:
445: public void performActionOnProgramConstant(ProgramConstant x) {
446: // TODO: uncomment line below after KeY 1.0 and remove the call
447: // to performActionOnProgramVariable
448: //doDefaultAction(x);
449: performActionOnProgramVariable(x);
450: }
451:
452: public void performActionOnProgramElementName(ProgramElementName x) {
453: doDefaultAction(x);
454: }
455:
456: public void performActionOnProgramMetaConstruct(
457: ProgramMetaConstruct x) {
458: doDefaultAction(x);
459: }
460:
461: public void performActionOnProgramMethod(ProgramMethod x) {
462: doDefaultAction(x);
463: }
464:
465: public void performActionOnProgramSVProxy(ProgramSVProxy x) {
466: doDefaultAction(x);
467: }
468:
469: public void performActionOnProgramSVSkolem(ProgramSVSkolem x) {
470: doDefaultAction(x);
471: }
472:
473: public void performActionOnProgramVariable(ProgramVariable x) {
474: doDefaultAction(x);
475: }
476:
477: public void performActionOnReturn(Return x) {
478: doDefaultAction(x);
479: }
480:
481: public void performActionOnSchematicFieldReference(
482: SchematicFieldReference x) {
483: doDefaultAction(x);
484: }
485:
486: public void performActionOnSchemaVariable(SchemaVariable x) {
487: doDefaultAction((ProgramSV) x);
488: }
489:
490: public void performActionOnShiftLeft(ShiftLeft x) {
491: doDefaultAction(x);
492: }
493:
494: public void performActionOnShiftLeftAssignment(ShiftLeftAssignment x) {
495: doDefaultAction(x);
496: }
497:
498: public void performActionOnShiftRight(ShiftRight x) {
499: doDefaultAction(x);
500: }
501:
502: public void performActionOnShiftRightAssignment(
503: ShiftRightAssignment x) {
504: doDefaultAction(x);
505: }
506:
507: public void performActionOnStatementBlock(StatementBlock x) {
508: doDefaultAction(x);
509: }
510:
511: public void performActionOnStringLiteral(StringLiteral x) {
512: doDefaultAction(x);
513: }
514:
515: public void performActionOnSuperArrayDeclaration(
516: SuperArrayDeclaration x) {
517: doDefaultAction(x);
518: }
519:
520: public void performActionOnSuperConstructorReference(
521: SuperConstructorReference x) {
522: doDefaultAction(x);
523: }
524:
525: public void performActionOnSuperReference(SuperReference x) {
526: doDefaultAction(x);
527: }
528:
529: public void performActionOnSwitch(Switch x) {
530: doDefaultAction(x);
531: }
532:
533: public void performActionOnSynchronizedBlock(SynchronizedBlock x) {
534: doDefaultAction(x);
535: }
536:
537: public void performActionOnThen(Then x) {
538: doDefaultAction(x);
539: }
540:
541: public void performActionOnThisConstructorReference(
542: ThisConstructorReference x) {
543: doDefaultAction(x);
544: }
545:
546: public void performActionOnThisReference(ThisReference x) {
547: doDefaultAction(x);
548: }
549:
550: public void performActionOnThrow(Throw x) {
551: doDefaultAction(x);
552: }
553:
554: public void performActionOnThrows(Throws x) {
555: doDefaultAction(x);
556: }
557:
558: public void performActionOnTimes(Times x) {
559: doDefaultAction(x);
560: }
561:
562: public void performActionOnTimesAssignment(TimesAssignment x) {
563: doDefaultAction(x);
564: }
565:
566: public void performActionOnTry(Try x) {
567: doDefaultAction(x);
568: }
569:
570: public void performActionOnTypeCast(TypeCast x) {
571: doDefaultAction(x);
572: }
573:
574: public void performActionOnTypeReference(TypeReference x) {
575: doDefaultAction(x);
576: }
577:
578: public void performActionOnUnsignedShiftRight(UnsignedShiftRight x) {
579: doDefaultAction(x);
580: }
581:
582: public void performActionOnUnsignedShiftRightAssignment(
583: UnsignedShiftRightAssignment x) {
584: doDefaultAction(x);
585: }
586:
587: public void performActionOnVariableDeclaration(VariableDeclaration x) {
588: doDefaultAction(x);
589: }
590:
591: public void performActionOnVariableReference(VariableReference x) {
592: doDefaultAction(x);
593: }
594:
595: public void performActionOnVariableSpecification(
596: VariableSpecification x) {
597: doDefaultAction(x);
598: }
599:
600: public void performActionOnWhile(While x) {
601: doDefaultAction(x);
602: }
603:
604: }
|