001    /* Copyright 2000, 2001, Compaq Computer Corporation */
002    
003    /* IF THIS IS A JAVA FILE, DO NOT EDIT IT!  
004    
005       Most Java files in this directory which are part of the Javafe AST
006       are automatically generated using the astgen comment (see
007       ESCTools/Javafe/astgen) from the input file 'hierarchy.h'.  If you
008       wish to modify AST classes or introduce new ones, modify
009       'hierarchy.j.'
010     */
011    
012    package javafe.ast;
013    
014    import javafe.util.Assert;
015    import javafe.util.Location;
016    import javafe.util.ErrorSet;
017    
018    // Convention: unless otherwise noted, integer fields named "loc" refer
019    // to the location of the first character of the syntactic unit
020    
021    public abstract class VisitorArgResult {
022      //@ requires x != null;
023      //@ ensures \result != null;
024      public abstract Object visitASTNode(ASTNode x, Object o);
025    
026      //@ requires x != null;
027      //@ ensures \result != null;
028      public Object visitCompilationUnit(CompilationUnit x, Object o) {
029        return visitASTNode(x, o);
030      }
031    
032      //@ requires x != null;
033      //@ ensures \result != null;
034      public Object visitImportDecl(ImportDecl x, Object o) {
035        return visitASTNode(x, o);
036      }
037    
038      //@ requires x != null;
039      //@ ensures \result != null;
040      public Object visitSingleTypeImportDecl(SingleTypeImportDecl x, Object o) {
041        return visitImportDecl(x, o);
042      }
043    
044      //@ requires x != null;
045      //@ ensures \result != null;
046      public Object visitOnDemandImportDecl(OnDemandImportDecl x, Object o) {
047        return visitImportDecl(x, o);
048      }
049    
050      //@ requires x != null;
051      //@ ensures \result != null;
052      public Object visitTypeDecl(TypeDecl x, Object o) {
053        return visitASTNode(x, o);
054      }
055    
056      //@ requires x != null;
057      //@ ensures \result != null;
058      public Object visitClassDecl(ClassDecl x, Object o) {
059        return visitTypeDecl(x, o);
060      }
061    
062      //@ requires x != null;
063      //@ ensures \result != null;
064      public Object visitInterfaceDecl(InterfaceDecl x, Object o) {
065        return visitTypeDecl(x, o);
066      }
067    
068      //@ requires x != null;
069      //@ ensures \result != null;
070      public Object visitRoutineDecl(RoutineDecl x, Object o) {
071        return visitASTNode(x, o);
072      }
073    
074      //@ requires x != null;
075      //@ ensures \result != null;
076      public Object visitConstructorDecl(ConstructorDecl x, Object o) {
077        return visitRoutineDecl(x, o);
078      }
079    
080      //@ requires x != null;
081      //@ ensures \result != null;
082      public Object visitMethodDecl(MethodDecl x, Object o) {
083        return visitRoutineDecl(x, o);
084      }
085    
086      //@ requires x != null;
087      //@ ensures \result != null;
088      public Object visitInitBlock(InitBlock x, Object o) {
089        return visitASTNode(x, o);
090      }
091    
092      //@ requires x != null;
093      //@ ensures \result != null;
094      public Object visitTypeDeclElemPragma(TypeDeclElemPragma x, Object o) {
095        return visitASTNode(x, o);
096      }
097    
098      //@ requires x != null;
099      //@ ensures \result != null;
100      public Object visitGenericVarDecl(GenericVarDecl x, Object o) {
101        return visitASTNode(x, o);
102      }
103    
104      //@ requires x != null;
105      //@ ensures \result != null;
106      public Object visitLocalVarDecl(LocalVarDecl x, Object o) {
107        return visitGenericVarDecl(x, o);
108      }
109    
110      //@ requires x != null;
111      //@ ensures \result != null;
112      public Object visitFieldDecl(FieldDecl x, Object o) {
113        return visitGenericVarDecl(x, o);
114      }
115    
116      //@ requires x != null;
117      //@ ensures \result != null;
118      public Object visitFormalParaDecl(FormalParaDecl x, Object o) {
119        return visitGenericVarDecl(x, o);
120      }
121    
122      //@ requires x != null;
123      //@ ensures \result != null;
124      public Object visitStmt(Stmt x, Object o) {
125        return visitASTNode(x, o);
126      }
127    
128      //@ requires x != null;
129      //@ ensures \result != null;
130      public Object visitGenericBlockStmt(GenericBlockStmt x, Object o) {
131        return visitStmt(x, o);
132      }
133    
134      //@ requires x != null;
135      //@ ensures \result != null;
136      public Object visitBlockStmt(BlockStmt x, Object o) {
137        return visitGenericBlockStmt(x, o);
138      }
139    
140      //@ requires x != null;
141      //@ ensures \result != null;
142      public Object visitSwitchStmt(SwitchStmt x, Object o) {
143        return visitGenericBlockStmt(x, o);
144      }
145    
146      //@ requires x != null;
147      //@ ensures \result != null;
148      public Object visitAssertStmt(AssertStmt x, Object o) {
149        return visitStmt(x, o);
150      }
151    
152      //@ requires x != null;
153      //@ ensures \result != null;
154      public Object visitVarDeclStmt(VarDeclStmt x, Object o) {
155        return visitStmt(x, o);
156      }
157    
158      //@ requires x != null;
159      //@ ensures \result != null;
160      public Object visitClassDeclStmt(ClassDeclStmt x, Object o) {
161        return visitStmt(x, o);
162      }
163    
164      //@ requires x != null;
165      //@ ensures \result != null;
166      public Object visitWhileStmt(WhileStmt x, Object o) {
167        return visitStmt(x, o);
168      }
169    
170      //@ requires x != null;
171      //@ ensures \result != null;
172      public Object visitDoStmt(DoStmt x, Object o) {
173        return visitStmt(x, o);
174      }
175    
176      //@ requires x != null;
177      //@ ensures \result != null;
178      public Object visitSynchronizeStmt(SynchronizeStmt x, Object o) {
179        return visitStmt(x, o);
180      }
181    
182      //@ requires x != null;
183      //@ ensures \result != null;
184      public Object visitEvalStmt(EvalStmt x, Object o) {
185        return visitStmt(x, o);
186      }
187    
188      //@ requires x != null;
189      //@ ensures \result != null;
190      public Object visitReturnStmt(ReturnStmt x, Object o) {
191        return visitStmt(x, o);
192      }
193    
194      //@ requires x != null;
195      //@ ensures \result != null;
196      public Object visitThrowStmt(ThrowStmt x, Object o) {
197        return visitStmt(x, o);
198      }
199    
200      //@ requires x != null;
201      //@ ensures \result != null;
202      public Object visitBranchStmt(BranchStmt x, Object o) {
203        return visitStmt(x, o);
204      }
205    
206      //@ requires x != null;
207      //@ ensures \result != null;
208      public Object visitBreakStmt(BreakStmt x, Object o) {
209        return visitBranchStmt(x, o);
210      }
211    
212      //@ requires x != null;
213      //@ ensures \result != null;
214      public Object visitContinueStmt(ContinueStmt x, Object o) {
215        return visitBranchStmt(x, o);
216      }
217    
218      //@ requires x != null;
219      //@ ensures \result != null;
220      public Object visitLabelStmt(LabelStmt x, Object o) {
221        return visitStmt(x, o);
222      }
223    
224      //@ requires x != null;
225      //@ ensures \result != null;
226      public Object visitIfStmt(IfStmt x, Object o) {
227        return visitStmt(x, o);
228      }
229    
230      //@ requires x != null;
231      //@ ensures \result != null;
232      public Object visitForStmt(ForStmt x, Object o) {
233        return visitStmt(x, o);
234      }
235    
236      //@ requires x != null;
237      //@ ensures \result != null;
238      public Object visitSkipStmt(SkipStmt x, Object o) {
239        return visitStmt(x, o);
240      }
241    
242      //@ requires x != null;
243      //@ ensures \result != null;
244      public Object visitSwitchLabel(SwitchLabel x, Object o) {
245        return visitStmt(x, o);
246      }
247    
248      //@ requires x != null;
249      //@ ensures \result != null;
250      public Object visitTryFinallyStmt(TryFinallyStmt x, Object o) {
251        return visitStmt(x, o);
252      }
253    
254      //@ requires x != null;
255      //@ ensures \result != null;
256      public Object visitTryCatchStmt(TryCatchStmt x, Object o) {
257        return visitStmt(x, o);
258      }
259    
260      //@ requires x != null;
261      //@ ensures \result != null;
262      public Object visitStmtPragma(StmtPragma x, Object o) {
263        return visitStmt(x, o);
264      }
265    
266      //@ requires x != null;
267      //@ ensures \result != null;
268      public Object visitConstructorInvocation(ConstructorInvocation x, Object o) {
269        return visitStmt(x, o);
270      }
271    
272      //@ requires x != null;
273      //@ ensures \result != null;
274      public Object visitCatchClause(CatchClause x, Object o) {
275        return visitASTNode(x, o);
276      }
277    
278      //@ requires x != null;
279      //@ ensures \result != null;
280      public Object visitVarInit(VarInit x, Object o) {
281        return visitASTNode(x, o);
282      }
283    
284      //@ requires x != null;
285      //@ ensures \result != null;
286      public Object visitArrayInit(ArrayInit x, Object o) {
287        return visitVarInit(x, o);
288      }
289    
290      //@ requires x != null;
291      //@ ensures \result != null;
292      public Object visitExpr(Expr x, Object o) {
293        return visitVarInit(x, o);
294      }
295    
296      //@ requires x != null;
297      //@ ensures \result != null;
298      public Object visitThisExpr(ThisExpr x, Object o) {
299        return visitExpr(x, o);
300      }
301    
302      //@ requires x != null;
303      //@ ensures \result != null;
304      public Object visitLiteralExpr(LiteralExpr x, Object o) {
305        return visitExpr(x, o);
306      }
307    
308      //@ requires x != null;
309      //@ ensures \result != null;
310      public Object visitArrayRefExpr(ArrayRefExpr x, Object o) {
311        return visitExpr(x, o);
312      }
313    
314      //@ requires x != null;
315      //@ ensures \result != null;
316      public Object visitNewInstanceExpr(NewInstanceExpr x, Object o) {
317        return visitExpr(x, o);
318      }
319    
320      //@ requires x != null;
321      //@ ensures \result != null;
322      public Object visitNewArrayExpr(NewArrayExpr x, Object o) {
323        return visitExpr(x, o);
324      }
325    
326      //@ requires x != null;
327      //@ ensures \result != null;
328      public Object visitCondExpr(CondExpr x, Object o) {
329        return visitExpr(x, o);
330      }
331    
332      //@ requires x != null;
333      //@ ensures \result != null;
334      public Object visitInstanceOfExpr(InstanceOfExpr x, Object o) {
335        return visitExpr(x, o);
336      }
337    
338      //@ requires x != null;
339      //@ ensures \result != null;
340      public Object visitCastExpr(CastExpr x, Object o) {
341        return visitExpr(x, o);
342      }
343    
344      //@ requires x != null;
345      //@ ensures \result != null;
346      public Object visitBinaryExpr(BinaryExpr x, Object o) {
347        return visitExpr(x, o);
348      }
349    
350      //@ requires x != null;
351      //@ ensures \result != null;
352      public Object visitUnaryExpr(UnaryExpr x, Object o) {
353        return visitExpr(x, o);
354      }
355    
356      //@ requires x != null;
357      //@ ensures \result != null;
358      public Object visitParenExpr(ParenExpr x, Object o) {
359        return visitExpr(x, o);
360      }
361    
362      //@ requires x != null;
363      //@ ensures \result != null;
364      public Object visitAmbiguousVariableAccess(AmbiguousVariableAccess x, Object o) {
365        return visitExpr(x, o);
366      }
367    
368      //@ requires x != null;
369      //@ ensures \result != null;
370      public Object visitVariableAccess(VariableAccess x, Object o) {
371        return visitExpr(x, o);
372      }
373    
374      //@ requires x != null;
375      //@ ensures \result != null;
376      public Object visitFieldAccess(FieldAccess x, Object o) {
377        return visitExpr(x, o);
378      }
379    
380      //@ requires x != null;
381      //@ ensures \result != null;
382      public Object visitAmbiguousMethodInvocation(AmbiguousMethodInvocation x, Object o) {
383        return visitExpr(x, o);
384      }
385    
386      //@ requires x != null;
387      //@ ensures \result != null;
388      public Object visitMethodInvocation(MethodInvocation x, Object o) {
389        return visitExpr(x, o);
390      }
391    
392      //@ requires x != null;
393      //@ ensures \result != null;
394      public Object visitClassLiteral(ClassLiteral x, Object o) {
395        return visitExpr(x, o);
396      }
397    
398      //@ requires x != null;
399      //@ ensures \result != null;
400      public Object visitObjectDesignator(ObjectDesignator x, Object o) {
401        return visitASTNode(x, o);
402      }
403    
404      //@ requires x != null;
405      //@ ensures \result != null;
406      public Object visitExprObjectDesignator(ExprObjectDesignator x, Object o) {
407        return visitObjectDesignator(x, o);
408      }
409    
410      //@ requires x != null;
411      //@ ensures \result != null;
412      public Object visitTypeObjectDesignator(TypeObjectDesignator x, Object o) {
413        return visitObjectDesignator(x, o);
414      }
415    
416      //@ requires x != null;
417      //@ ensures \result != null;
418      public Object visitSuperObjectDesignator(SuperObjectDesignator x, Object o) {
419        return visitObjectDesignator(x, o);
420      }
421    
422      //@ requires x != null;
423      //@ ensures \result != null;
424      public Object visitType(Type x, Object o) {
425        return visitASTNode(x, o);
426      }
427    
428      //@ requires x != null;
429      //@ ensures \result != null;
430      public Object visitErrorType(ErrorType x, Object o) {
431        return visitType(x, o);
432      }
433    
434      //@ requires x != null;
435      //@ ensures \result != null;
436      public Object visitPrimitiveType(PrimitiveType x, Object o) {
437        return visitType(x, o);
438      }
439    
440      //@ requires x != null;
441      //@ ensures \result != null;
442      public Object visitTypeName(TypeName x, Object o) {
443        return visitType(x, o);
444      }
445    
446      //@ requires x != null;
447      //@ ensures \result != null;
448      public Object visitArrayType(ArrayType x, Object o) {
449        return visitType(x, o);
450      }
451    
452      //@ requires x != null;
453      //@ ensures \result != null;
454      public Object visitName(Name x, Object o) {
455        return visitASTNode(x, o);
456      }
457    
458      //@ requires x != null;
459      //@ ensures \result != null;
460      public Object visitSimpleName(SimpleName x, Object o) {
461        return visitName(x, o);
462      }
463    
464      //@ requires x != null;
465      //@ ensures \result != null;
466      public Object visitCompoundName(CompoundName x, Object o) {
467        return visitName(x, o);
468      }
469    
470      //@ requires x != null;
471      //@ ensures \result != null;
472      public Object visitModifierPragma(ModifierPragma x, Object o) {
473        return visitASTNode(x, o);
474      }
475    
476      //@ requires x != null;
477      //@ ensures \result != null;
478      public Object visitLexicalPragma(LexicalPragma x, Object o) {
479        return visitASTNode(x, o);
480      }
481    
482      //@ requires x != null;
483      //@ ensures \result != null;
484      public Object visitTypeModifierPragma(TypeModifierPragma x, Object o) {
485        return visitASTNode(x, o);
486      }
487    
488    }