001    /**
002     *
003     * Copyright 2005 Jeremy Rayner
004     *
005     * Licensed under the Apache License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     * http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     *
017     **/
018    package org.codehaus.groovy.antlr.treewalker;
019    
020    import org.codehaus.groovy.antlr.GroovySourceAST;
021    
022    /**
023     * An interface for visiting a GroovySourceAST node.
024     *
025     * @author <a href="mailto:groovy@ross-rayner.com">Jeremy Rayner</a>
026     * @version $Revision: 3915 $
027     */
028    
029    public interface Visitor {
030        final int OPENING_VISIT = 1;
031        final int SECOND_VISIT = 2; // only used on rare occasions, e.g. the '(' in this snippet...   @Foo  (  a=1, b=2, c=3)
032        final int SUBSEQUENT_VISIT = 3;
033        final int CLOSING_VISIT = 4;
034    
035        void setUp();
036        void visitAbstract(GroovySourceAST t, int visit);
037        void visitAnnotation(GroovySourceAST t, int visit);
038        void visitAnnotations(GroovySourceAST t, int visit);
039        void visitAnnotationArrayInit(GroovySourceAST t, int visit);
040        void visitAnnotationDef(GroovySourceAST t, int visit);
041        void visitAnnotationFieldDef(GroovySourceAST t, int visit);
042        void visitAnnotationMemberValuePair(GroovySourceAST t, int visit);
043        void visitArrayDeclarator(GroovySourceAST t, int visit);
044        void visitAssign(GroovySourceAST t, int visit);
045        void visitAt(GroovySourceAST t, int visit);
046        void visitBand(GroovySourceAST t, int visit);
047        void visitBandAssign(GroovySourceAST t, int visit);
048        void visitBigSuffix(GroovySourceAST t, int visit);
049        void visitBlock(GroovySourceAST t, int visit);
050        void visitBnot(GroovySourceAST t, int visit);
051        void visitBor(GroovySourceAST t, int visit);
052        void visitBorAssign(GroovySourceAST t, int visit);
053        void visitBsr(GroovySourceAST t, int visit);
054        void visitBsrAssign(GroovySourceAST t, int visit);
055        void visitBxor(GroovySourceAST t, int visit);
056        void visitBxorAssign(GroovySourceAST t, int visit);
057        void visitCaseGroup(GroovySourceAST t, int visit);
058        void visitClassDef(GroovySourceAST t, int visit);
059        void visitClosedBlock(GroovySourceAST t, int visit);
060        void visitClosureOp(GroovySourceAST t, int visit);
061        void visitColon(GroovySourceAST t, int visit);
062        void visitComma(GroovySourceAST t, int visit);
063        void visitCompareTo(GroovySourceAST t, int visit);
064        void visitCtorCall(GroovySourceAST t, int visit);
065        void visitCtorIdent(GroovySourceAST t, int visit);
066        void visitDec(GroovySourceAST t, int visit);
067        void visitDigit(GroovySourceAST t, int visit);
068        void visitDiv(GroovySourceAST t, int visit);
069        void visitDivAssign(GroovySourceAST t, int visit);
070        void visitDollar(GroovySourceAST t, int visit);
071        void visitDot(GroovySourceAST t, int visit);
072        void visitDynamicMember(GroovySourceAST t, int visit);
073        void visitElist(GroovySourceAST t, int visit);
074        void visitEmptyStat(GroovySourceAST t, int visit);
075        void visitEnumConstantDef(GroovySourceAST t, int visit);
076        void visitEnumDef(GroovySourceAST t, int visit);
077        void visitEof(GroovySourceAST t, int visit);
078        void visitEqual(GroovySourceAST t, int visit);
079        void visitEsc(GroovySourceAST t, int visit);
080        void visitExponent(GroovySourceAST t, int visit);
081        void visitExpr(GroovySourceAST t, int visit);
082        void visitExtendsClause(GroovySourceAST t, int visit);
083        void visitFinal(GroovySourceAST t, int visit);
084        void visitFloatSuffix(GroovySourceAST t, int visit);
085        void visitForCondition(GroovySourceAST t, int visit);
086        void visitForEachClause(GroovySourceAST t, int visit);
087        void visitForInit(GroovySourceAST t, int visit);
088        void visitForInIterable(GroovySourceAST t, int visit);
089        void visitForIterator(GroovySourceAST t, int visit);
090        void visitGe(GroovySourceAST t, int visit);
091        void visitGt(GroovySourceAST t, int visit);
092        void visitHexDigit(GroovySourceAST t, int visit);
093        void visitIdent(GroovySourceAST t, int visit);
094        void visitImplementsClause(GroovySourceAST t, int visit);
095        void visitImplicitParameters(GroovySourceAST t, int visit);
096        void visitImport(GroovySourceAST t, int visit);
097        void visitInc(GroovySourceAST t, int visit);
098        void visitIndexOp(GroovySourceAST t, int visit);
099        void visitInstanceInit(GroovySourceAST t, int visit);
100        void visitInterfaceDef(GroovySourceAST t, int visit);
101        void visitLabeledArg(GroovySourceAST t, int visit);
102        void visitLabeledStat(GroovySourceAST t, int visit);
103        void visitLand(GroovySourceAST t, int visit);
104        void visitLbrack(GroovySourceAST t, int visit);
105        void visitLcurly(GroovySourceAST t, int visit);
106        void visitLe(GroovySourceAST t, int visit);
107        void visitLetter(GroovySourceAST t, int visit);
108        void visitListConstructor(GroovySourceAST t, int visit);
109        void visitLiteralAny(GroovySourceAST t, int visit);
110        void visitLiteralAs(GroovySourceAST t, int visit);
111        void visitLiteralAssert(GroovySourceAST t, int visit);
112        void visitLiteralBoolean(GroovySourceAST t, int visit);
113        void visitLiteralBreak(GroovySourceAST t, int visit);
114        void visitLiteralByte(GroovySourceAST t, int visit);
115        void visitLiteralCase(GroovySourceAST t, int visit);
116        void visitLiteralCatch(GroovySourceAST t, int visit);
117        void visitLiteralChar(GroovySourceAST t, int visit);
118        void visitLiteralClass(GroovySourceAST t, int visit);
119        void visitLiteralContinue(GroovySourceAST t, int visit);
120        void visitLiteralDef(GroovySourceAST t, int visit);
121        void visitLiteralDefault(GroovySourceAST t, int visit);
122        void visitLiteralDouble(GroovySourceAST t, int visit);
123        void visitLiteralElse(GroovySourceAST t, int visit);
124        void visitLiteralEnum(GroovySourceAST t, int visit);
125        void visitLiteralExtends(GroovySourceAST t, int visit);
126        void visitLiteralFalse(GroovySourceAST t, int visit);
127        void visitLiteralFinally(GroovySourceAST t, int visit);
128        void visitLiteralFloat(GroovySourceAST t, int visit);
129        void visitLiteralFor(GroovySourceAST t, int visit);
130        void visitLiteralIf(GroovySourceAST t, int visit);
131        void visitLiteralImplements(GroovySourceAST t, int visit);
132        void visitLiteralImport(GroovySourceAST t, int visit);
133        void visitLiteralIn(GroovySourceAST t, int visit);
134        void visitLiteralInstanceof(GroovySourceAST t, int visit);
135        void visitLiteralInt(GroovySourceAST t, int visit);
136        void visitLiteralInterface(GroovySourceAST t, int visit);
137        void visitLiteralLong(GroovySourceAST t, int visit);
138        void visitLiteralNative(GroovySourceAST t, int visit);
139        void visitLiteralNew(GroovySourceAST t, int visit);
140        void visitLiteralNull(GroovySourceAST t, int visit);
141        void visitLiteralPackage(GroovySourceAST t, int visit);
142        void visitLiteralPrivate(GroovySourceAST t, int visit);
143        void visitLiteralProtected(GroovySourceAST t, int visit);
144        void visitLiteralPublic(GroovySourceAST t, int visit);
145        void visitLiteralReturn(GroovySourceAST t, int visit);
146        void visitLiteralShort(GroovySourceAST t, int visit);
147        void visitLiteralStatic(GroovySourceAST t, int visit);
148        void visitLiteralSuper(GroovySourceAST t, int visit);
149        void visitLiteralSwitch(GroovySourceAST t, int visit);
150        void visitLiteralSynchronized(GroovySourceAST t, int visit);
151        void visitLiteralThis(GroovySourceAST t, int visit);
152        void visitLiteralThreadsafe(GroovySourceAST t, int visit);
153        void visitLiteralThrow(GroovySourceAST t, int visit);
154        void visitLiteralThrows(GroovySourceAST t, int visit);
155        void visitLiteralTransient(GroovySourceAST t, int visit);
156        void visitLiteralTrue(GroovySourceAST t, int visit);
157        void visitLiteralTry(GroovySourceAST t, int visit);
158        void visitLiteralVoid(GroovySourceAST t, int visit);
159        void visitLiteralVolatile(GroovySourceAST t, int visit);
160        void visitLiteralWhile(GroovySourceAST t, int visit);
161        void visitLiteralWith(GroovySourceAST t, int visit);
162        void visitLnot(GroovySourceAST t, int visit);
163        void visitLor(GroovySourceAST t, int visit);
164        void visitLparen(GroovySourceAST t, int visit);
165        void visitLt(GroovySourceAST t, int visit);
166        void visitMapConstructor(GroovySourceAST t, int visit);
167        void visitMemberPointer(GroovySourceAST t, int visit);
168        void visitMethodCall(GroovySourceAST t, int visit);
169        void visitMethodDef(GroovySourceAST t, int visit);
170        void visitMinus(GroovySourceAST t, int visit);
171        void visitMinusAssign(GroovySourceAST t, int visit);
172        void visitMlComment(GroovySourceAST t, int visit);
173        void visitMod(GroovySourceAST t, int visit);
174        void visitModifiers(GroovySourceAST t, int visit);
175        void visitModAssign(GroovySourceAST t, int visit);
176        void visitNls(GroovySourceAST t, int visit);
177        void visitNotEqual(GroovySourceAST t, int visit);
178        void visitNullTreeLookahead(GroovySourceAST t, int visit);
179        void visitNumBigDecimal(GroovySourceAST t, int visit);
180        void visitNumBigInt(GroovySourceAST t, int visit);
181        void visitNumDouble(GroovySourceAST t, int visit);
182        void visitNumFloat(GroovySourceAST t, int visit);
183        void visitNumInt(GroovySourceAST t, int visit);
184        void visitNumLong(GroovySourceAST t, int visit);
185        void visitObjblock(GroovySourceAST t, int visit);
186        void visitOneNl(GroovySourceAST t, int visit);
187        void visitOptionalDot(GroovySourceAST t, int visit);
188        void visitPackageDef(GroovySourceAST t, int visit);
189        void visitParameters(GroovySourceAST t, int visit);
190        void visitParameterDef(GroovySourceAST t, int visit);
191        void visitPlus(GroovySourceAST t, int visit);
192        void visitPlusAssign(GroovySourceAST t, int visit);
193        void visitPostDec(GroovySourceAST t, int visit);
194        void visitPostInc(GroovySourceAST t, int visit);
195        void visitQuestion(GroovySourceAST t, int visit);
196        void visitRangeExclusive(GroovySourceAST t, int visit);
197        void visitRangeInclusive(GroovySourceAST t, int visit);
198        void visitRbrack(GroovySourceAST t, int visit);
199        void visitRcurly(GroovySourceAST t, int visit);
200        void visitRegexpCtorEnd(GroovySourceAST t, int visit);
201        void visitRegexpLiteral(GroovySourceAST t, int visit);
202        void visitRegexpSymbol(GroovySourceAST t, int visit);
203        void visitRegexFind(GroovySourceAST t, int visit);
204        void visitRegexMatch(GroovySourceAST t, int visit);
205        void visitRparen(GroovySourceAST t, int visit);
206        void visitScopeEscape(GroovySourceAST t, int visit);
207        void visitSelectSlot(GroovySourceAST t, int visit);
208        void visitSemi(GroovySourceAST t, int visit);
209        void visitShComment(GroovySourceAST t, int visit);
210        void visitSl(GroovySourceAST t, int visit);
211        void visitSlist(GroovySourceAST t, int visit);
212        void visitSlAssign(GroovySourceAST t, int visit);
213        void visitSlComment(GroovySourceAST t, int visit);
214        void visitSpreadArg(GroovySourceAST t, int visit);
215        void visitSpreadDot(GroovySourceAST t, int visit);
216        void visitSpreadMapArg(GroovySourceAST t, int visit);
217        void visitSr(GroovySourceAST t, int visit);
218        void visitSrAssign(GroovySourceAST t, int visit);
219        void visitStar(GroovySourceAST t, int visit);
220        void visitStarAssign(GroovySourceAST t, int visit);
221        void visitStarStar(GroovySourceAST t, int visit);
222        void visitStarStarAssign(GroovySourceAST t, int visit);
223        void visitStaticImport(GroovySourceAST t, int visit);
224        void visitStaticInit(GroovySourceAST t, int visit);
225        void visitStrictfp(GroovySourceAST t, int visit);
226        void visitStringCh(GroovySourceAST t, int visit);
227        void visitStringConstructor(GroovySourceAST t, int visit);
228        void visitStringCtorEnd(GroovySourceAST t, int visit);
229        void visitStringCtorMiddle(GroovySourceAST t, int visit);
230        void visitStringCtorStart(GroovySourceAST t, int visit);
231        void visitStringLiteral(GroovySourceAST t, int visit);
232        void visitStringNl(GroovySourceAST t, int visit);
233        void visitSuperCtorCall(GroovySourceAST t, int visit);
234        void visitTripleDot(GroovySourceAST t, int visit);
235        void visitType(GroovySourceAST t, int visit);
236        void visitTypecast(GroovySourceAST t, int visit);
237        void visitTypeArgument(GroovySourceAST t, int visit);
238        void visitTypeArguments(GroovySourceAST t, int visit);
239        void visitTypeLowerBounds(GroovySourceAST t, int visit);
240        void visitTypeParameter(GroovySourceAST t, int visit);
241        void visitTypeParameters(GroovySourceAST t, int visit);
242        void visitTypeUpperBounds(GroovySourceAST t, int visit);
243        void visitUnaryMinus(GroovySourceAST t, int visit);
244        void visitUnaryPlus(GroovySourceAST t, int visit);
245        void visitUnusedConst(GroovySourceAST t, int visit);
246        void visitUnusedDo(GroovySourceAST t, int visit);
247        void visitUnusedGoto(GroovySourceAST t, int visit);
248        void visitVariableDef(GroovySourceAST t, int visit);
249        void visitVariableParameterDef(GroovySourceAST t, int visit);
250        void visitVocab(GroovySourceAST t, int visit);
251        void visitWildcardType(GroovySourceAST t, int visit);
252        void visitWs(GroovySourceAST t, int visit);
253    
254        void visitDefault(GroovySourceAST t,int visit);
255        void tearDown();
256    
257        void push(GroovySourceAST t);
258        GroovySourceAST pop();
259    }