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.declaration.*;
015: import de.uka.ilkd.key.java.expression.ArrayInitializer;
016: import de.uka.ilkd.key.java.expression.ParenthesizedExpression;
017: import de.uka.ilkd.key.java.expression.PassiveExpression;
018: import de.uka.ilkd.key.java.expression.literal.*;
019: import de.uka.ilkd.key.java.expression.operator.*;
020: import de.uka.ilkd.key.java.reference.*;
021: import de.uka.ilkd.key.java.statement.*;
022: import de.uka.ilkd.key.logic.ProgramElementName;
023: import de.uka.ilkd.key.logic.op.*;
024: import de.uka.ilkd.key.rule.AbstractProgramElement;
025: import de.uka.ilkd.key.rule.metaconstruct.ProgramMetaConstruct;
026: import de.uka.ilkd.key.rule.soundness.ProgramSVProxy;
027: import de.uka.ilkd.key.rule.soundness.ProgramSVSkolem;
028:
029: /**
030: * This class is implemented by visitors/walkers.
031: * Each AST node implements a visit(Visitor) method that
032: * calls the doActionAt<NodeType> method. Similar to the pretty print
033: * mechanism.
034: */
035: public interface Visitor {
036:
037: void performActionOnAbstractProgramElement(AbstractProgramElement x);
038:
039: void performActionOnProgramElementName(ProgramElementName x);
040:
041: void performActionOnProgramVariable(ProgramVariable x);
042:
043: void performActionOnSchemaVariable(SchemaVariable x);
044:
045: void performActionOnProgramMethod(ProgramMethod x);
046:
047: void performActionOnProgramMetaConstruct(ProgramMetaConstruct x);
048:
049: void performActionOnContextStatementBlock(ContextStatementBlock x);
050:
051: void performActionOnIntLiteral(IntLiteral x);
052:
053: void performActionOnBooleanLiteral(BooleanLiteral x);
054:
055: void performActionOnStringLiteral(StringLiteral x);
056:
057: void performActionOnNullLiteral(NullLiteral x);
058:
059: void performActionOnCharLiteral(CharLiteral x);
060:
061: void performActionOnDoubleLiteral(DoubleLiteral x);
062:
063: void performActionOnLongLiteral(LongLiteral x);
064:
065: void performActionOnFloatLiteral(FloatLiteral x);
066:
067: void performActionOnPackageSpecification(PackageSpecification x);
068:
069: void performActionOnTypeReference(TypeReference x);
070:
071: void performActionOnPackageReference(PackageReference x);
072:
073: void performActionOnThrows(Throws x);
074:
075: void performActionOnArrayInitializer(ArrayInitializer x);
076:
077: void performActionOnCompilationUnit(CompilationUnit x);
078:
079: void performActionOnArrayDeclaration(ArrayDeclaration x);
080:
081: void performActionOnSuperArrayDeclaration(SuperArrayDeclaration x);
082:
083: void performActionOnClassDeclaration(ClassDeclaration x);
084:
085: void performActionOnInterfaceDeclaration(InterfaceDeclaration x);
086:
087: void performActionOnFieldDeclaration(FieldDeclaration x);
088:
089: void performActionOnLocalVariableDeclaration(
090: LocalVariableDeclaration x);
091:
092: void performActionOnVariableDeclaration(VariableDeclaration x);
093:
094: void performActionOnParameterDeclaration(ParameterDeclaration x);
095:
096: void performActionOnMethodDeclaration(MethodDeclaration x);
097:
098: void performActionOnClassInitializer(ClassInitializer x);
099:
100: void performActionOnStatementBlock(StatementBlock x);
101:
102: void performActionOnBreak(Break x);
103:
104: void performActionOnContinue(Continue x);
105:
106: void performActionOnReturn(Return x);
107:
108: void performActionOnThrow(Throw x);
109:
110: void performActionOnDo(Do x);
111:
112: void performActionOnFor(For x);
113:
114: void performActionOnWhile(While x);
115:
116: void performActionOnIf(If x);
117:
118: void performActionOnSwitch(Switch x);
119:
120: void performActionOnTry(Try x);
121:
122: void performActionOnLabeledStatement(LabeledStatement x);
123:
124: void performActionOnMethodFrame(MethodFrame x);
125:
126: void performActionOnMethodBodyStatement(MethodBodyStatement x);
127:
128: void performActionOnCatchAllStatement(CatchAllStatement x);
129:
130: void performActionOnSynchronizedBlock(SynchronizedBlock x);
131:
132: void performActionOnImport(Import x);
133:
134: void performActionOnExtends(Extends x);
135:
136: void performActionOnImplements(Implements x);
137:
138: void performActionOnVariableSpecification(VariableSpecification x);
139:
140: void performActionOnFieldSpecification(FieldSpecification x);
141:
142: void performActionOnImplicitFieldSpecification(
143: ImplicitFieldSpecification x);
144:
145: void performActionOnBinaryAnd(BinaryAnd x);
146:
147: void performActionOnBinaryAndAssignment(BinaryAndAssignment x);
148:
149: void performActionOnBinaryOrAssignment(BinaryOrAssignment x);
150:
151: void performActionOnBinaryXOrAssignment(BinaryXOrAssignment x);
152:
153: void performActionOnCopyAssignment(CopyAssignment x);
154:
155: void performActionOnDivideAssignment(DivideAssignment x);
156:
157: void performActionOnMinusAssignment(MinusAssignment x);
158:
159: void performActionOnModuloAssignment(ModuloAssignment x);
160:
161: void performActionOnPlusAssignment(PlusAssignment x);
162:
163: void performActionOnPostDecrement(PostDecrement x);
164:
165: void performActionOnPostIncrement(PostIncrement x);
166:
167: void performActionOnPreDecrement(PreDecrement x);
168:
169: void performActionOnPreIncrement(PreIncrement x);
170:
171: void performActionOnShiftLeftAssignment(ShiftLeftAssignment x);
172:
173: void performActionOnShiftRightAssignment(ShiftRightAssignment x);
174:
175: void performActionOnTimesAssignment(TimesAssignment x);
176:
177: void performActionOnUnsignedShiftRightAssignment(
178: UnsignedShiftRightAssignment x);
179:
180: void performActionOnBinaryNot(BinaryNot x);
181:
182: void performActionOnBinaryOr(BinaryOr x);
183:
184: void performActionOnBinaryXOr(BinaryXOr x);
185:
186: void performActionOnConditional(Conditional x);
187:
188: void performActionOnDivide(Divide x);
189:
190: void performActionOnEquals(Equals x);
191:
192: void performActionOnGreaterOrEquals(GreaterOrEquals x);
193:
194: void performActionOnGreaterThan(GreaterThan x);
195:
196: void performActionOnLessOrEquals(LessOrEquals x);
197:
198: void performActionOnLessThan(LessThan x);
199:
200: void performActionOnNotEquals(NotEquals x);
201:
202: void performActionOnNewArray(NewArray x);
203:
204: void performActionOnInstanceof(Instanceof x);
205:
206: void performActionOnExactInstanceof(ExactInstanceof x);
207:
208: void performActionOnNew(New x);
209:
210: void performActionOnTypeCast(TypeCast x);
211:
212: void performActionOnLogicalAnd(LogicalAnd x);
213:
214: void performActionOnLogicalNot(LogicalNot x);
215:
216: void performActionOnLogicalOr(LogicalOr x);
217:
218: void performActionOnMinus(Minus x);
219:
220: void performActionOnModulo(Modulo x);
221:
222: void performActionOnNegative(Negative x);
223:
224: void performActionOnPlus(Plus x);
225:
226: void performActionOnPositive(Positive x);
227:
228: void performActionOnShiftLeft(ShiftLeft x);
229:
230: void performActionOnShiftRight(ShiftRight x);
231:
232: void performActionOnTimes(Times x);
233:
234: void performActionOnUnsignedShiftRight(UnsignedShiftRight x);
235:
236: void performActionOnArrayReference(ArrayReference x);
237:
238: void performActionOnMetaClassReference(MetaClassReference x);
239:
240: void performActionOnMethodReference(MethodReference x);
241:
242: void performActionOnFieldReference(FieldReference x);
243:
244: void performActionOnSchematicFieldReference(
245: SchematicFieldReference x);
246:
247: void performActionOnVariableReference(VariableReference x);
248:
249: void performActionOnMethod(ProgramMethod x);
250:
251: void performActionOnSuperConstructorReference(
252: SuperConstructorReference x);
253:
254: void performActionOnExecutionContext(ExecutionContext x);
255:
256: void performActionOnConstructorDeclaration(ConstructorDeclaration x);
257:
258: void performActionOnThisConstructorReference(
259: ThisConstructorReference x);
260:
261: void performActionOnSuperReference(SuperReference x);
262:
263: void performActionOnThisReference(ThisReference x);
264:
265: void performActionOnArrayLengthReference(ArrayLengthReference x);
266:
267: void performActionOnThen(Then x);
268:
269: void performActionOnElse(Else x);
270:
271: void performActionOnCase(Case x);
272:
273: void performActionOnCatch(Catch x);
274:
275: void performActionOnDefault(Default x);
276:
277: void performActionOnFinally(Finally x);
278:
279: void performActionOnModifier(Modifier x);
280:
281: void performActionOnEmptyStatement(EmptyStatement x);
282:
283: void performActionOnComment(Comment x);
284:
285: void performActionOnParenthesizedExpression(
286: ParenthesizedExpression x);
287:
288: void performActionOnPassiveExpression(PassiveExpression x);
289:
290: void performActionOnForUpdates(ForUpdates x);
291:
292: void performActionOnGuard(Guard x);
293:
294: void performActionOnLoopInit(LoopInit x);
295:
296: void performActionOnProgramSVSkolem(ProgramSVSkolem x);
297:
298: void performActionOnProgramSVProxy(ProgramSVProxy x);
299:
300: void performActionOnAssert(Assert assert1);
301:
302: void performActionOnProgramConstant(ProgramConstant constant);
303:
304: void performActionOnLocationVariable(LocationVariable variable);
305:
306: }
|