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 }