001    // -*- mode: java -*-
002    /* Copyright 2000, 2001, Compaq Computer Corporation */
003    
004    /* IF THIS IS A JAVA FILE, DO NOT EDIT IT!  
005    
006       Most Java files in this directory which are part of the Javafe AST
007       are automatically generated using the astgen comment (see
008       ESCTools/Javafe/astgen) from the input file 'hierarchy.h'.  If you
009       wish to modify AST classes or introduce new ones, modify
010       'hierarchy.j.'
011     */
012    
013    package escjava.ast;
014    
015    import java.util.Hashtable;
016    import java.util.Set;
017    import java.util.ArrayList;
018    
019    import javafe.ast.*;
020    import javafe.util.Assert;
021    import javafe.util.Location;
022    import escjava.ParsedRoutineSpecs;
023    
024    // Convention: unless otherwise noted, integer fields named "loc" refer
025    // to the location of the first character of the syntactic unit
026    
027    //# TagBase javafe.tc.TagConstants.LAST_TAG + 1
028    //# VisitorRoot javafe.ast.Visitor
029    
030    public abstract class VisitorArgResult extends javafe.ast.VisitorArgResult {
031      public abstract /*@non_null*/ Object visitAnOverview(/*@non_null*/ AnOverview x, Object o);
032    
033      public abstract /*@non_null*/ Object visitGCExpr(/*@non_null*/ GCExpr x, Object o);
034    
035      public /*@non_null*/ Object visitNaryExpr(/*@non_null*/ NaryExpr x, Object o) {
036        return visitGCExpr(x, o);
037      }
038    
039      public /*@non_null*/ Object visitQuantifiedExpr(/*@non_null*/ QuantifiedExpr x, Object o) {
040        return visitGCExpr(x, o);
041      }
042    
043      public /*@non_null*/ Object visitGeneralizedQuantifiedExpr(/*@non_null*/ GeneralizedQuantifiedExpr x, Object o) {
044        return visitGCExpr(x, o);
045      }
046    
047      public /*@non_null*/ Object visitNumericalQuantifiedExpr(/*@non_null*/ NumericalQuantifiedExpr x, Object o) {
048        return visitGCExpr(x, o);
049      }
050    
051      public /*@non_null*/ Object visitSubstExpr(/*@non_null*/ SubstExpr x, Object o) {
052        return visitGCExpr(x, o);
053      }
054    
055      public /*@non_null*/ Object visitTypeExpr(/*@non_null*/ TypeExpr x, Object o) {
056        return visitGCExpr(x, o);
057      }
058    
059      public /*@non_null*/ Object visitLabelExpr(/*@non_null*/ LabelExpr x, Object o) {
060        return visitGCExpr(x, o);
061      }
062    
063      public abstract /*@non_null*/ Object visitWildRefExpr(/*@non_null*/ WildRefExpr x, Object o);
064    
065      public abstract /*@non_null*/ Object visitGuardExpr(/*@non_null*/ GuardExpr x, Object o);
066    
067      public abstract /*@non_null*/ Object visitResExpr(/*@non_null*/ ResExpr x, Object o);
068    
069      public abstract /*@non_null*/ Object visitSetCompExpr(/*@non_null*/ SetCompExpr x, Object o);
070    
071      public abstract /*@non_null*/ Object visitLockSetExpr(/*@non_null*/ LockSetExpr x, Object o);
072    
073      public abstract /*@non_null*/ Object visitEverythingExpr(/*@non_null*/ EverythingExpr x, Object o);
074    
075      public abstract /*@non_null*/ Object visitNothingExpr(/*@non_null*/ NothingExpr x, Object o);
076    
077      public abstract /*@non_null*/ Object visitNotSpecifiedExpr(/*@non_null*/ NotSpecifiedExpr x, Object o);
078    
079      public abstract /*@non_null*/ Object visitNotModifiedExpr(/*@non_null*/ NotModifiedExpr x, Object o);
080    
081      public abstract /*@non_null*/ Object visitArrayRangeRefExpr(/*@non_null*/ ArrayRangeRefExpr x, Object o);
082    
083      public abstract /*@non_null*/ Object visitDefPredLetExpr(/*@non_null*/ DefPredLetExpr x, Object o);
084    
085      public abstract /*@non_null*/ Object visitDefPredApplExpr(/*@non_null*/ DefPredApplExpr x, Object o);
086    
087      public abstract /*@non_null*/ Object visitEscPrimitiveType(/*@non_null*/ EscPrimitiveType x, Object o);
088    
089      public abstract /*@non_null*/ Object visitGuardedCmd(/*@non_null*/ GuardedCmd x, Object o);
090    
091      public /*@non_null*/ Object visitSimpleCmd(/*@non_null*/ SimpleCmd x, Object o) {
092        return visitGuardedCmd(x, o);
093      }
094    
095      public /*@non_null*/ Object visitExprCmd(/*@non_null*/ ExprCmd x, Object o) {
096        return visitGuardedCmd(x, o);
097      }
098    
099      public /*@non_null*/ Object visitAssignCmd(/*@non_null*/ AssignCmd x, Object o) {
100        return visitGuardedCmd(x, o);
101      }
102    
103      public /*@non_null*/ Object visitGetsCmd(/*@non_null*/ GetsCmd x, Object o) {
104        return visitAssignCmd(x, o);
105      }
106    
107      public /*@non_null*/ Object visitSubGetsCmd(/*@non_null*/ SubGetsCmd x, Object o) {
108        return visitAssignCmd(x, o);
109      }
110    
111      public /*@non_null*/ Object visitSubSubGetsCmd(/*@non_null*/ SubSubGetsCmd x, Object o) {
112        return visitAssignCmd(x, o);
113      }
114    
115      public /*@non_null*/ Object visitRestoreFromCmd(/*@non_null*/ RestoreFromCmd x, Object o) {
116        return visitAssignCmd(x, o);
117      }
118    
119      public /*@non_null*/ Object visitVarInCmd(/*@non_null*/ VarInCmd x, Object o) {
120        return visitGuardedCmd(x, o);
121      }
122    
123      public /*@non_null*/ Object visitDynInstCmd(/*@non_null*/ DynInstCmd x, Object o) {
124        return visitGuardedCmd(x, o);
125      }
126    
127      public /*@non_null*/ Object visitSeqCmd(/*@non_null*/ SeqCmd x, Object o) {
128        return visitGuardedCmd(x, o);
129      }
130    
131      public abstract /*@non_null*/ Object visitDecreasesInfo(/*@non_null*/ DecreasesInfo x, Object o);
132    
133      public /*@non_null*/ Object visitLoopCmd(/*@non_null*/ LoopCmd x, Object o) {
134        return visitGuardedCmd(x, o);
135      }
136    
137      public /*@non_null*/ Object visitCmdCmdCmd(/*@non_null*/ CmdCmdCmd x, Object o) {
138        return visitGuardedCmd(x, o);
139      }
140    
141      public /*@non_null*/ Object visitCall(/*@non_null*/ Call x, Object o) {
142        return visitGuardedCmd(x, o);
143      }
144    
145      public abstract /*@non_null*/ Object visitExprDeclPragma(/*@non_null*/ ExprDeclPragma x, Object o);
146    
147      public abstract /*@non_null*/ Object visitIdExprDeclPragma(/*@non_null*/ IdExprDeclPragma x, Object o);
148    
149      public abstract /*@non_null*/ Object visitNamedExprDeclPragma(/*@non_null*/ NamedExprDeclPragma x, Object o);
150    
151      public abstract /*@non_null*/ Object visitModelDeclPragma(/*@non_null*/ ModelDeclPragma x, Object o);
152    
153      public abstract /*@non_null*/ Object visitDependsPragma(/*@non_null*/ DependsPragma x, Object o);
154    
155      public abstract /*@non_null*/ Object visitModelConstructorDeclPragma(/*@non_null*/ ModelConstructorDeclPragma x, Object o);
156    
157      public abstract /*@non_null*/ Object visitModelTypePragma(/*@non_null*/ ModelTypePragma x, Object o);
158    
159      public abstract /*@non_null*/ Object visitModelMethodDeclPragma(/*@non_null*/ ModelMethodDeclPragma x, Object o);
160    
161      public abstract /*@non_null*/ Object visitGhostDeclPragma(/*@non_null*/ GhostDeclPragma x, Object o);
162    
163      public abstract /*@non_null*/ Object visitStillDeferredDeclPragma(/*@non_null*/ StillDeferredDeclPragma x, Object o);
164    
165      public abstract /*@non_null*/ Object visitSimpleStmtPragma(/*@non_null*/ SimpleStmtPragma x, Object o);
166    
167      public abstract /*@non_null*/ Object visitIdentifierModifierPragma(/*@non_null*/ IdentifierModifierPragma x, Object o);
168    
169      public abstract /*@non_null*/ Object visitExprStmtPragma(/*@non_null*/ ExprStmtPragma x, Object o);
170    
171      public abstract /*@non_null*/ Object visitSetStmtPragma(/*@non_null*/ SetStmtPragma x, Object o);
172    
173      public abstract /*@non_null*/ Object visitSkolemConstantPragma(/*@non_null*/ SkolemConstantPragma x, Object o);
174    
175      public abstract /*@non_null*/ Object visitModelProgamModifierPragma(/*@non_null*/ ModelProgamModifierPragma x, Object o);
176    
177      public abstract /*@non_null*/ Object visitNestedModifierPragma(/*@non_null*/ NestedModifierPragma x, Object o);
178    
179      public abstract /*@non_null*/ Object visitParsedSpecs(/*@non_null*/ ParsedSpecs x, Object o);
180    
181      public abstract /*@non_null*/ Object visitSimpleModifierPragma(/*@non_null*/ SimpleModifierPragma x, Object o);
182    
183      public abstract /*@non_null*/ Object visitExprModifierPragma(/*@non_null*/ ExprModifierPragma x, Object o);
184    
185      public abstract /*@non_null*/ Object visitModifiesGroupPragma(/*@non_null*/ ModifiesGroupPragma x, Object o);
186    
187      public abstract /*@non_null*/ Object visitCondExprModifierPragma(/*@non_null*/ CondExprModifierPragma x, Object o);
188    
189      public abstract /*@non_null*/ Object visitMapsExprModifierPragma(/*@non_null*/ MapsExprModifierPragma x, Object o);
190    
191      public abstract /*@non_null*/ Object visitReachModifierPragma(/*@non_null*/ ReachModifierPragma x, Object o);
192    
193      public abstract /*@non_null*/ Object visitVarDeclModifierPragma(/*@non_null*/ VarDeclModifierPragma x, Object o);
194    
195      public abstract /*@non_null*/ Object visitVarExprModifierPragma(/*@non_null*/ VarExprModifierPragma x, Object o);
196    
197      public abstract /*@non_null*/ Object visitNowarnPragma(/*@non_null*/ NowarnPragma x, Object o);
198    
199      public abstract /*@non_null*/ Object visitImportPragma(/*@non_null*/ ImportPragma x, Object o);
200    
201      public abstract /*@non_null*/ Object visitRefinePragma(/*@non_null*/ RefinePragma x, Object o);
202    
203      public abstract /*@non_null*/ Object visitSpec(/*@non_null*/ Spec x, Object o);
204    
205      public abstract /*@non_null*/ Object visitCondition(/*@non_null*/ Condition x, Object o);
206    
207      public abstract /*@non_null*/ Object visitDefPred(/*@non_null*/ DefPred x, Object o);
208    
209    }