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 java.util.*;
021    
022    import org.codehaus.groovy.antlr.GroovySourceAST;
023    
024    /**
025     * A composite of many visitors. Any call to a method from Visitor
026     * will invoke each visitor in turn, and reverse the invocation
027     * order on a closing visit.
028     * i.e.
029     * with the list of visitors = [a,b,c]
030     * composite.visitDefault() would...
031     * call on the opening visit - a.visitDefault() then b.visitDefault() then c.visitDefault()
032     * call on the closing visit - c.visitDefault() then b.visitDefault() then a.visitDefault()
033     *
034     * @author <a href="mailto:groovy@ross-rayner.com">Jeremy Rayner</a>
035     * @version $Revision: 3626 $
036     */
037    
038    public class CompositeVisitor implements Visitor{
039        List visitors;
040        List backToFrontVisitors;
041        private Stack stack;
042    
043        /**
044         * A composite of the supplied list of antlr AST visitors.
045         * @param visitors a List of implementations of the Visitor interface
046         */
047        public CompositeVisitor(List visitors) {
048            this.visitors = visitors;
049            this.stack = new Stack();
050            backToFrontVisitors = new ArrayList();
051            backToFrontVisitors.addAll(visitors);
052            Collections.reverse(backToFrontVisitors);
053        }
054    
055        private Iterator itr(int visit) {
056            Iterator itr=visitors.iterator();
057            if (visit == CLOSING_VISIT) {
058                itr = backToFrontVisitors.iterator();
059            }
060            return itr;
061        }
062    
063        public void setUp() {
064            Iterator itr = visitors.iterator();
065            while (itr.hasNext()) {((Visitor)itr.next()).setUp();}
066        }
067    
068        public void visitAbstract(GroovySourceAST t, int visit) {
069            Iterator itr = itr(visit);
070            while (itr.hasNext()) {((Visitor)itr.next()).visitAbstract(t,visit);}
071        }
072    
073        public void visitAnnotation(GroovySourceAST t, int visit) {
074            Iterator itr = itr(visit);
075            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotation(t,visit);}
076        }
077    
078        public void visitAnnotations(GroovySourceAST t, int visit) {
079            Iterator itr = itr(visit);
080            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotations(t,visit);}
081        }
082    
083        public void visitAnnotationArrayInit(GroovySourceAST t, int visit) {
084            Iterator itr = itr(visit);
085            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotationArrayInit(t,visit);}
086        }
087    
088        public void visitAnnotationDef(GroovySourceAST t, int visit) {
089            Iterator itr = itr(visit);
090            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotationDef(t,visit);}
091        }
092    
093        public void visitAnnotationFieldDef(GroovySourceAST t, int visit) {
094            Iterator itr = itr(visit);
095            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotationFieldDef(t,visit);}
096        }
097    
098        public void visitAnnotationMemberValuePair(GroovySourceAST t, int visit) {
099            Iterator itr = itr(visit);
100            while (itr.hasNext()) {((Visitor)itr.next()).visitAnnotationMemberValuePair(t,visit);}
101        }
102    
103        public void visitArrayDeclarator(GroovySourceAST t, int visit) {
104            Iterator itr = itr(visit);
105            while (itr.hasNext()) {((Visitor)itr.next()).visitArrayDeclarator(t,visit);}
106        }
107    
108        public void visitAssign(GroovySourceAST t, int visit) {
109            Iterator itr = itr(visit);
110            while (itr.hasNext()) {((Visitor)itr.next()).visitAssign(t,visit);}
111        }
112    
113        public void visitAt(GroovySourceAST t, int visit) {
114            Iterator itr = itr(visit);
115            while (itr.hasNext()) {((Visitor)itr.next()).visitAt(t,visit);}
116        }
117    
118        public void visitBand(GroovySourceAST t, int visit) {
119            Iterator itr = itr(visit);
120            while (itr.hasNext()) {((Visitor)itr.next()).visitBand(t,visit);}
121        }
122    
123        public void visitBandAssign(GroovySourceAST t, int visit) {
124            Iterator itr = itr(visit);
125            while (itr.hasNext()) {((Visitor)itr.next()).visitBandAssign(t,visit);}
126        }
127    
128        public void visitBigSuffix(GroovySourceAST t, int visit) {
129            Iterator itr = itr(visit);
130            while (itr.hasNext()) {((Visitor)itr.next()).visitBigSuffix(t,visit);}
131        }
132    
133        public void visitBlock(GroovySourceAST t, int visit) {
134            Iterator itr = itr(visit);
135            while (itr.hasNext()) {((Visitor)itr.next()).visitBlock(t,visit);}
136        }
137    
138        public void visitBnot(GroovySourceAST t, int visit) {
139            Iterator itr = itr(visit);
140            while (itr.hasNext()) {((Visitor)itr.next()).visitBnot(t,visit);}
141        }
142    
143        public void visitBor(GroovySourceAST t, int visit) {
144            Iterator itr = itr(visit);
145            while (itr.hasNext()) {((Visitor)itr.next()).visitBor(t,visit);}
146        }
147    
148        public void visitBorAssign(GroovySourceAST t, int visit) {
149            Iterator itr = itr(visit);
150            while (itr.hasNext()) {((Visitor)itr.next()).visitBorAssign(t,visit);}
151        }
152    
153        public void visitBsr(GroovySourceAST t, int visit) {
154            Iterator itr = itr(visit);
155            while (itr.hasNext()) {((Visitor)itr.next()).visitBsr(t,visit);}
156        }
157    
158        public void visitBsrAssign(GroovySourceAST t, int visit) {
159            Iterator itr = itr(visit);
160            while (itr.hasNext()) {((Visitor)itr.next()).visitBsrAssign(t,visit);}
161        }
162    
163        public void visitBxor(GroovySourceAST t, int visit) {
164            Iterator itr = itr(visit);
165            while (itr.hasNext()) {((Visitor)itr.next()).visitBxor(t,visit);}
166        }
167    
168        public void visitBxorAssign(GroovySourceAST t, int visit) {
169            Iterator itr = itr(visit);
170            while (itr.hasNext()) {((Visitor)itr.next()).visitBxorAssign(t,visit);}
171        }
172    
173        public void visitCaseGroup(GroovySourceAST t, int visit) {
174            Iterator itr = itr(visit);
175            while (itr.hasNext()) {((Visitor)itr.next()).visitCaseGroup(t,visit);}
176        }
177    
178        public void visitClassDef(GroovySourceAST t, int visit) {
179            Iterator itr = itr(visit);
180            while (itr.hasNext()) {((Visitor)itr.next()).visitClassDef(t,visit);}
181        }
182    
183        public void visitClosedBlock(GroovySourceAST t, int visit) {
184            Iterator itr = itr(visit);
185            while (itr.hasNext()) {((Visitor)itr.next()).visitClosedBlock(t,visit);}
186        }
187    
188        public void visitClosureOp(GroovySourceAST t, int visit) {
189            Iterator itr = itr(visit);
190            while (itr.hasNext()) {((Visitor)itr.next()).visitClosureOp(t,visit);}
191        }
192    
193        public void visitColon(GroovySourceAST t, int visit) {
194            Iterator itr = itr(visit);
195            while (itr.hasNext()) {((Visitor)itr.next()).visitColon(t,visit);}
196        }
197    
198        public void visitComma(GroovySourceAST t, int visit) {
199            Iterator itr = itr(visit);
200            while (itr.hasNext()) {((Visitor)itr.next()).visitComma(t,visit);}
201        }
202    
203        public void visitCompareTo(GroovySourceAST t, int visit) {
204            Iterator itr = itr(visit);
205            while (itr.hasNext()) {((Visitor)itr.next()).visitCompareTo(t,visit);}
206        }
207    
208        public void visitCtorCall(GroovySourceAST t, int visit) {
209            Iterator itr = itr(visit);
210            while (itr.hasNext()) {((Visitor)itr.next()).visitCtorCall(t,visit);}
211        }
212    
213        public void visitCtorIdent(GroovySourceAST t, int visit) {
214            Iterator itr = itr(visit);
215            while (itr.hasNext()) {((Visitor)itr.next()).visitCtorIdent(t,visit);}
216        }
217    
218        public void visitDec(GroovySourceAST t, int visit) {
219            Iterator itr = itr(visit);
220            while (itr.hasNext()) {((Visitor)itr.next()).visitDec(t,visit);}
221        }
222    
223        public void visitDigit(GroovySourceAST t, int visit) {
224            Iterator itr = itr(visit);
225            while (itr.hasNext()) {((Visitor)itr.next()).visitDigit(t,visit);}
226        }
227    
228        public void visitDiv(GroovySourceAST t, int visit) {
229            Iterator itr = itr(visit);
230            while (itr.hasNext()) {((Visitor)itr.next()).visitDiv(t,visit);}
231        }
232    
233        public void visitDivAssign(GroovySourceAST t, int visit) {
234            Iterator itr = itr(visit);
235            while (itr.hasNext()) {((Visitor)itr.next()).visitDivAssign(t,visit);}
236        }
237    
238        public void visitDollar(GroovySourceAST t, int visit) {
239            Iterator itr = itr(visit);
240            while (itr.hasNext()) {((Visitor)itr.next()).visitDollar(t,visit);}
241        }
242    
243        public void visitDot(GroovySourceAST t, int visit) {
244            Iterator itr = itr(visit);
245            while (itr.hasNext()) {((Visitor)itr.next()).visitDot(t,visit);}
246        }
247    
248        public void visitDynamicMember(GroovySourceAST t, int visit) {
249            Iterator itr = itr(visit);
250            while (itr.hasNext()) {((Visitor)itr.next()).visitDynamicMember(t,visit);}
251        }
252    
253        public void visitElist(GroovySourceAST t, int visit) {
254            Iterator itr = itr(visit);
255            while (itr.hasNext()) {((Visitor)itr.next()).visitElist(t,visit);}
256        }
257    
258        public void visitEmptyStat(GroovySourceAST t, int visit) {
259            Iterator itr = itr(visit);
260            while (itr.hasNext()) {((Visitor)itr.next()).visitEmptyStat(t,visit);}
261        }
262    
263        public void visitEnumConstantDef(GroovySourceAST t, int visit) {
264            Iterator itr = itr(visit);
265            while (itr.hasNext()) {((Visitor)itr.next()).visitEnumConstantDef(t,visit);}
266        }
267    
268        public void visitEnumDef(GroovySourceAST t, int visit) {
269            Iterator itr = itr(visit);
270            while (itr.hasNext()) {((Visitor)itr.next()).visitEnumDef(t,visit);}
271        }
272    
273        public void visitEof(GroovySourceAST t, int visit) {
274            Iterator itr = itr(visit);
275            while (itr.hasNext()) {((Visitor)itr.next()).visitEof(t,visit);}
276        }
277    
278        public void visitEqual(GroovySourceAST t, int visit) {
279            Iterator itr = itr(visit);
280            while (itr.hasNext()) {((Visitor)itr.next()).visitEqual(t,visit);}
281        }
282    
283        public void visitEsc(GroovySourceAST t, int visit) {
284            Iterator itr = itr(visit);
285            while (itr.hasNext()) {((Visitor)itr.next()).visitEsc(t,visit);}
286        }
287    
288        public void visitExponent(GroovySourceAST t, int visit) {
289            Iterator itr = itr(visit);
290            while (itr.hasNext()) {((Visitor)itr.next()).visitExponent(t,visit);}
291        }
292    
293        public void visitExpr(GroovySourceAST t, int visit) {
294            Iterator itr = itr(visit);
295            while (itr.hasNext()) {((Visitor)itr.next()).visitExpr(t,visit);}
296        }
297    
298        public void visitExtendsClause(GroovySourceAST t, int visit) {
299            Iterator itr = itr(visit);
300            while (itr.hasNext()) {((Visitor)itr.next()).visitExtendsClause(t,visit);}
301        }
302    
303        public void visitFinal(GroovySourceAST t, int visit) {
304            Iterator itr = itr(visit);
305            while (itr.hasNext()) {((Visitor)itr.next()).visitFinal(t,visit);}
306        }
307    
308        public void visitFloatSuffix(GroovySourceAST t, int visit) {
309            Iterator itr = itr(visit);
310            while (itr.hasNext()) {((Visitor)itr.next()).visitFloatSuffix(t,visit);}
311        }
312    
313        public void visitForCondition(GroovySourceAST t, int visit) {
314            Iterator itr = itr(visit);
315            while (itr.hasNext()) {((Visitor)itr.next()).visitForCondition(t,visit);}
316        }
317    
318        public void visitForEachClause(GroovySourceAST t, int visit) {
319            Iterator itr = itr(visit);
320            while (itr.hasNext()) {((Visitor)itr.next()).visitForEachClause(t,visit);}
321        }
322    
323        public void visitForInit(GroovySourceAST t, int visit) {
324            Iterator itr = itr(visit);
325            while (itr.hasNext()) {((Visitor)itr.next()).visitForInit(t,visit);}
326        }
327    
328        public void visitForInIterable(GroovySourceAST t, int visit) {
329            Iterator itr = itr(visit);
330            while (itr.hasNext()) {((Visitor)itr.next()).visitForInIterable(t,visit);}
331        }
332    
333        public void visitForIterator(GroovySourceAST t, int visit) {
334            Iterator itr = itr(visit);
335            while (itr.hasNext()) {((Visitor)itr.next()).visitForIterator(t,visit);}
336        }
337    
338        public void visitGe(GroovySourceAST t, int visit) {
339            Iterator itr = itr(visit);
340            while (itr.hasNext()) {((Visitor)itr.next()).visitGe(t,visit);}
341        }
342    
343        public void visitGt(GroovySourceAST t, int visit) {
344            Iterator itr = itr(visit);
345            while (itr.hasNext()) {((Visitor)itr.next()).visitGt(t,visit);}
346        }
347    
348        public void visitHexDigit(GroovySourceAST t, int visit) {
349            Iterator itr = itr(visit);
350            while (itr.hasNext()) {((Visitor)itr.next()).visitHexDigit(t,visit);}
351        }
352    
353        public void visitIdent(GroovySourceAST t, int visit) {
354            Iterator itr = itr(visit);
355            while (itr.hasNext()) {((Visitor)itr.next()).visitIdent(t,visit);}
356        }
357    
358        public void visitImplementsClause(GroovySourceAST t, int visit) {
359            Iterator itr = itr(visit);
360            while (itr.hasNext()) {((Visitor)itr.next()).visitImplementsClause(t,visit);}
361        }
362    
363        public void visitImplicitParameters(GroovySourceAST t, int visit) {
364            Iterator itr = itr(visit);
365            while (itr.hasNext()) {((Visitor)itr.next()).visitImplicitParameters(t,visit);}
366        }
367    
368        public void visitImport(GroovySourceAST t, int visit) {
369            Iterator itr = itr(visit);
370            while (itr.hasNext()) {((Visitor)itr.next()).visitImport(t,visit);}
371        }
372    
373        public void visitInc(GroovySourceAST t, int visit) {
374            Iterator itr = itr(visit);
375            while (itr.hasNext()) {((Visitor)itr.next()).visitInc(t,visit);}
376        }
377    
378        public void visitIndexOp(GroovySourceAST t, int visit) {
379            Iterator itr = itr(visit);
380            while (itr.hasNext()) {((Visitor)itr.next()).visitIndexOp(t,visit);}
381        }
382    
383        public void visitInstanceInit(GroovySourceAST t, int visit) {
384            Iterator itr = itr(visit);
385            while (itr.hasNext()) {((Visitor)itr.next()).visitInstanceInit(t,visit);}
386        }
387    
388        public void visitInterfaceDef(GroovySourceAST t, int visit) {
389            Iterator itr = itr(visit);
390            while (itr.hasNext()) {((Visitor)itr.next()).visitInterfaceDef(t,visit);}
391        }
392    
393        public void visitLabeledArg(GroovySourceAST t, int visit) {
394            Iterator itr = itr(visit);
395            while (itr.hasNext()) {((Visitor)itr.next()).visitLabeledArg(t,visit);}
396        }
397    
398        public void visitLabeledStat(GroovySourceAST t, int visit) {
399            Iterator itr = itr(visit);
400            while (itr.hasNext()) {((Visitor)itr.next()).visitLabeledStat(t,visit);}
401        }
402    
403        public void visitLand(GroovySourceAST t, int visit) {
404            Iterator itr = itr(visit);
405            while (itr.hasNext()) {((Visitor)itr.next()).visitLand(t,visit);}
406        }
407    
408        public void visitLbrack(GroovySourceAST t, int visit) {
409            Iterator itr = itr(visit);
410            while (itr.hasNext()) {((Visitor)itr.next()).visitLbrack(t,visit);}
411        }
412    
413        public void visitLcurly(GroovySourceAST t, int visit) {
414            Iterator itr = itr(visit);
415            while (itr.hasNext()) {((Visitor)itr.next()).visitLcurly(t,visit);}
416        }
417    
418        public void visitLe(GroovySourceAST t, int visit) {
419            Iterator itr = itr(visit);
420            while (itr.hasNext()) {((Visitor)itr.next()).visitLe(t,visit);}
421        }
422    
423        public void visitLetter(GroovySourceAST t, int visit) {
424            Iterator itr = itr(visit);
425            while (itr.hasNext()) {((Visitor)itr.next()).visitLetter(t,visit);}
426        }
427    
428        public void visitListConstructor(GroovySourceAST t, int visit) {
429            Iterator itr = itr(visit);
430            while (itr.hasNext()) {((Visitor)itr.next()).visitListConstructor(t,visit);}
431        }
432    
433        public void visitLiteralAny(GroovySourceAST t, int visit) {
434            Iterator itr = itr(visit);
435            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralAny(t,visit);}
436        }
437    
438        public void visitLiteralAs(GroovySourceAST t, int visit) {
439            Iterator itr = itr(visit);
440            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralAs(t,visit);}
441        }
442    
443        public void visitLiteralAssert(GroovySourceAST t, int visit) {
444            Iterator itr = itr(visit);
445            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralAssert(t,visit);}
446        }
447    
448        public void visitLiteralBoolean(GroovySourceAST t, int visit) {
449            Iterator itr = itr(visit);
450            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralBoolean(t,visit);}
451        }
452    
453        public void visitLiteralBreak(GroovySourceAST t, int visit) {
454            Iterator itr = itr(visit);
455            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralBreak(t,visit);}
456        }
457    
458        public void visitLiteralByte(GroovySourceAST t, int visit) {
459            Iterator itr = itr(visit);
460            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralByte(t,visit);}
461        }
462    
463        public void visitLiteralCase(GroovySourceAST t, int visit) {
464            Iterator itr = itr(visit);
465            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralCase(t,visit);}
466        }
467    
468        public void visitLiteralCatch(GroovySourceAST t, int visit) {
469            Iterator itr = itr(visit);
470            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralCatch(t,visit);}
471        }
472    
473        public void visitLiteralChar(GroovySourceAST t, int visit) {
474            Iterator itr = itr(visit);
475            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralChar(t,visit);}
476        }
477    
478        public void visitLiteralClass(GroovySourceAST t, int visit) {
479            Iterator itr = itr(visit);
480            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralClass(t,visit);}
481        }
482    
483        public void visitLiteralContinue(GroovySourceAST t, int visit) {
484            Iterator itr = itr(visit);
485            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralContinue(t,visit);}
486        }
487    
488        public void visitLiteralDef(GroovySourceAST t, int visit) {
489            Iterator itr = itr(visit);
490            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralDef(t,visit);}
491        }
492    
493        public void visitLiteralDefault(GroovySourceAST t, int visit) {
494            Iterator itr = itr(visit);
495            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralDefault(t,visit);}
496        }
497    
498        public void visitLiteralDouble(GroovySourceAST t, int visit) {
499            Iterator itr = itr(visit);
500            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralDouble(t,visit);}
501        }
502    
503        public void visitLiteralElse(GroovySourceAST t, int visit) {
504            Iterator itr = itr(visit);
505            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralElse(t,visit);}
506        }
507    
508        public void visitLiteralEnum(GroovySourceAST t, int visit) {
509            Iterator itr = itr(visit);
510            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralEnum(t,visit);}
511        }
512    
513        public void visitLiteralExtends(GroovySourceAST t, int visit) {
514            Iterator itr = itr(visit);
515            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralExtends(t,visit);}
516        }
517    
518        public void visitLiteralFalse(GroovySourceAST t, int visit) {
519            Iterator itr = itr(visit);
520            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralFalse(t,visit);}
521        }
522    
523        public void visitLiteralFinally(GroovySourceAST t, int visit) {
524            Iterator itr = itr(visit);
525            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralFinally(t,visit);}
526        }
527    
528        public void visitLiteralFloat(GroovySourceAST t, int visit) {
529            Iterator itr = itr(visit);
530            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralFloat(t,visit);}
531        }
532    
533        public void visitLiteralFor(GroovySourceAST t, int visit) {
534            Iterator itr = itr(visit);
535            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralFor(t,visit);}
536        }
537    
538        public void visitLiteralIf(GroovySourceAST t, int visit) {
539            Iterator itr = itr(visit);
540            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralIf(t,visit);}
541        }
542    
543        public void visitLiteralImplements(GroovySourceAST t, int visit) {
544            Iterator itr = itr(visit);
545            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralImplements(t,visit);}
546        }
547    
548        public void visitLiteralImport(GroovySourceAST t, int visit) {
549            Iterator itr = itr(visit);
550            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralImport(t,visit);}
551        }
552    
553        public void visitLiteralIn(GroovySourceAST t, int visit) {
554            Iterator itr = itr(visit);
555            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralIn(t,visit);}
556        }
557    
558        public void visitLiteralInstanceof(GroovySourceAST t, int visit) {
559            Iterator itr = itr(visit);
560            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralInstanceof(t,visit);}
561        }
562    
563        public void visitLiteralInt(GroovySourceAST t, int visit) {
564            Iterator itr = itr(visit);
565            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralInt(t,visit);}
566        }
567    
568        public void visitLiteralInterface(GroovySourceAST t, int visit) {
569            Iterator itr = itr(visit);
570            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralInterface(t,visit);}
571        }
572    
573        public void visitLiteralLong(GroovySourceAST t, int visit) {
574            Iterator itr = itr(visit);
575            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralLong(t,visit);}
576        }
577    
578        public void visitLiteralNative(GroovySourceAST t, int visit) {
579            Iterator itr = itr(visit);
580            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralNative(t,visit);}
581        }
582    
583        public void visitLiteralNew(GroovySourceAST t, int visit) {
584            Iterator itr = itr(visit);
585            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralNew(t,visit);}
586        }
587    
588        public void visitLiteralNull(GroovySourceAST t, int visit) {
589            Iterator itr = itr(visit);
590            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralNull(t,visit);}
591        }
592    
593        public void visitLiteralPackage(GroovySourceAST t, int visit) {
594            Iterator itr = itr(visit);
595            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralPackage(t,visit);}
596        }
597    
598        public void visitLiteralPrivate(GroovySourceAST t, int visit) {
599            Iterator itr = itr(visit);
600            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralPrivate(t,visit);}
601        }
602    
603        public void visitLiteralProtected(GroovySourceAST t, int visit) {
604            Iterator itr = itr(visit);
605            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralProtected(t,visit);}
606        }
607    
608        public void visitLiteralPublic(GroovySourceAST t, int visit) {
609            Iterator itr = itr(visit);
610            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralPublic(t,visit);}
611        }
612    
613        public void visitLiteralReturn(GroovySourceAST t, int visit) {
614            Iterator itr = itr(visit);
615            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralReturn(t,visit);}
616        }
617    
618        public void visitLiteralShort(GroovySourceAST t, int visit) {
619            Iterator itr = itr(visit);
620            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralShort(t,visit);}
621        }
622    
623        public void visitLiteralStatic(GroovySourceAST t, int visit) {
624            Iterator itr = itr(visit);
625            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralStatic(t,visit);}
626        }
627    
628        public void visitLiteralSuper(GroovySourceAST t, int visit) {
629            Iterator itr = itr(visit);
630            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralSuper(t,visit);}
631        }
632    
633        public void visitLiteralSwitch(GroovySourceAST t, int visit) {
634            Iterator itr = itr(visit);
635            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralSwitch(t,visit);}
636        }
637    
638        public void visitLiteralSynchronized(GroovySourceAST t, int visit) {
639            Iterator itr = itr(visit);
640            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralSynchronized(t,visit);}
641        }
642    
643        public void visitLiteralThis(GroovySourceAST t, int visit) {
644            Iterator itr = itr(visit);
645            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralThis(t,visit);}
646        }
647    
648        public void visitLiteralThreadsafe(GroovySourceAST t, int visit) {
649            Iterator itr = itr(visit);
650            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralThreadsafe(t,visit);}
651        }
652    
653        public void visitLiteralThrow(GroovySourceAST t, int visit) {
654            Iterator itr = itr(visit);
655            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralThrow(t,visit);}
656        }
657    
658        public void visitLiteralThrows(GroovySourceAST t, int visit) {
659            Iterator itr = itr(visit);
660            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralThrows(t,visit);}
661        }
662    
663        public void visitLiteralTransient(GroovySourceAST t, int visit) {
664            Iterator itr = itr(visit);
665            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralTransient(t,visit);}
666        }
667    
668        public void visitLiteralTrue(GroovySourceAST t, int visit) {
669            Iterator itr = itr(visit);
670            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralTrue(t,visit);}
671        }
672    
673        public void visitLiteralTry(GroovySourceAST t, int visit) {
674            Iterator itr = itr(visit);
675            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralTry(t,visit);}
676        }
677    
678        public void visitLiteralVoid(GroovySourceAST t, int visit) {
679            Iterator itr = itr(visit);
680            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralVoid(t,visit);}
681        }
682    
683        public void visitLiteralVolatile(GroovySourceAST t, int visit) {
684            Iterator itr = itr(visit);
685            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralVolatile(t,visit);}
686        }
687    
688        public void visitLiteralWhile(GroovySourceAST t, int visit) {
689            Iterator itr = itr(visit);
690            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralWhile(t,visit);}
691        }
692    
693        public void visitLiteralWith(GroovySourceAST t, int visit) {
694            Iterator itr = itr(visit);
695            while (itr.hasNext()) {((Visitor)itr.next()).visitLiteralWith(t,visit);}
696        }
697    
698        public void visitLnot(GroovySourceAST t, int visit) {
699            Iterator itr = itr(visit);
700            while (itr.hasNext()) {((Visitor)itr.next()).visitLnot(t,visit);}
701        }
702    
703        public void visitLor(GroovySourceAST t, int visit) {
704            Iterator itr = itr(visit);
705            while (itr.hasNext()) {((Visitor)itr.next()).visitLor(t,visit);}
706        }
707    
708        public void visitLparen(GroovySourceAST t, int visit) {
709            Iterator itr = itr(visit);
710            while (itr.hasNext()) {((Visitor)itr.next()).visitLparen(t,visit);}
711        }
712    
713        public void visitLt(GroovySourceAST t, int visit) {
714            Iterator itr = itr(visit);
715            while (itr.hasNext()) {((Visitor)itr.next()).visitLt(t,visit);}
716        }
717    
718        public void visitMapConstructor(GroovySourceAST t, int visit) {
719            Iterator itr = itr(visit);
720            while (itr.hasNext()) {((Visitor)itr.next()).visitMapConstructor(t,visit);}
721        }
722    
723        public void visitMemberPointer(GroovySourceAST t, int visit) {
724            Iterator itr = itr(visit);
725            while (itr.hasNext()) {((Visitor)itr.next()).visitMemberPointer(t,visit);}
726        }
727    
728        public void visitMethodCall(GroovySourceAST t, int visit) {
729            Iterator itr = itr(visit);
730            while (itr.hasNext()) {((Visitor)itr.next()).visitMethodCall(t,visit);}
731        }
732    
733        public void visitMethodDef(GroovySourceAST t, int visit) {
734            Iterator itr = itr(visit);
735            while (itr.hasNext()) {((Visitor)itr.next()).visitMethodDef(t,visit);}
736        }
737    
738        public void visitMinus(GroovySourceAST t, int visit) {
739            Iterator itr = itr(visit);
740            while (itr.hasNext()) {((Visitor)itr.next()).visitMinus(t,visit);}
741        }
742    
743        public void visitMinusAssign(GroovySourceAST t, int visit) {
744            Iterator itr = itr(visit);
745            while (itr.hasNext()) {((Visitor)itr.next()).visitMinusAssign(t,visit);}
746        }
747    
748        public void visitMlComment(GroovySourceAST t, int visit) {
749            Iterator itr = itr(visit);
750            while (itr.hasNext()) {((Visitor)itr.next()).visitMlComment(t,visit);}
751        }
752    
753        public void visitMod(GroovySourceAST t, int visit) {
754            Iterator itr = itr(visit);
755            while (itr.hasNext()) {((Visitor)itr.next()).visitMod(t,visit);}
756        }
757    
758        public void visitModifiers(GroovySourceAST t, int visit) {
759            Iterator itr = itr(visit);
760            while (itr.hasNext()) {((Visitor)itr.next()).visitModifiers(t,visit);}
761        }
762    
763        public void visitModAssign(GroovySourceAST t, int visit) {
764            Iterator itr = itr(visit);
765            while (itr.hasNext()) {((Visitor)itr.next()).visitModAssign(t,visit);}
766        }
767    
768        public void visitNls(GroovySourceAST t, int visit) {
769            Iterator itr = itr(visit);
770            while (itr.hasNext()) {((Visitor)itr.next()).visitNls(t,visit);}
771        }
772    
773        public void visitNotEqual(GroovySourceAST t, int visit) {
774            Iterator itr = itr(visit);
775            while (itr.hasNext()) {((Visitor)itr.next()).visitNotEqual(t,visit);}
776        }
777    
778        public void visitNullTreeLookahead(GroovySourceAST t, int visit) {
779            Iterator itr = itr(visit);
780            while (itr.hasNext()) {((Visitor)itr.next()).visitNullTreeLookahead(t,visit);}
781        }
782    
783        public void visitNumBigDecimal(GroovySourceAST t, int visit) {
784            Iterator itr = itr(visit);
785            while (itr.hasNext()) {((Visitor)itr.next()).visitNumBigDecimal(t,visit);}
786        }
787    
788        public void visitNumBigInt(GroovySourceAST t, int visit) {
789            Iterator itr = itr(visit);
790            while (itr.hasNext()) {((Visitor)itr.next()).visitNumBigInt(t,visit);}
791        }
792    
793        public void visitNumDouble(GroovySourceAST t, int visit) {
794            Iterator itr = itr(visit);
795            while (itr.hasNext()) {((Visitor)itr.next()).visitNumDouble(t,visit);}
796        }
797    
798        public void visitNumFloat(GroovySourceAST t, int visit) {
799            Iterator itr = itr(visit);
800            while (itr.hasNext()) {((Visitor)itr.next()).visitNumFloat(t,visit);}
801        }
802    
803        public void visitNumInt(GroovySourceAST t, int visit) {
804            Iterator itr = itr(visit);
805            while (itr.hasNext()) {((Visitor)itr.next()).visitNumInt(t,visit);}
806        }
807    
808        public void visitNumLong(GroovySourceAST t, int visit) {
809            Iterator itr = itr(visit);
810            while (itr.hasNext()) {((Visitor)itr.next()).visitNumLong(t,visit);}
811        }
812    
813        public void visitObjblock(GroovySourceAST t, int visit) {
814            Iterator itr = itr(visit);
815            while (itr.hasNext()) {((Visitor)itr.next()).visitObjblock(t,visit);}
816        }
817    
818        public void visitOneNl(GroovySourceAST t, int visit) {
819            Iterator itr = itr(visit);
820            while (itr.hasNext()) {((Visitor)itr.next()).visitOneNl(t,visit);}
821        }
822    
823        public void visitOptionalDot(GroovySourceAST t, int visit) {
824            Iterator itr = itr(visit);
825            while (itr.hasNext()) {((Visitor)itr.next()).visitOptionalDot(t,visit);}
826        }
827    
828        public void visitPackageDef(GroovySourceAST t, int visit) {
829            Iterator itr = itr(visit);
830            while (itr.hasNext()) {((Visitor)itr.next()).visitPackageDef(t,visit);}
831        }
832    
833        public void visitParameters(GroovySourceAST t, int visit) {
834            Iterator itr = itr(visit);
835            while (itr.hasNext()) {((Visitor)itr.next()).visitParameters(t,visit);}
836        }
837    
838        public void visitParameterDef(GroovySourceAST t, int visit) {
839            Iterator itr = itr(visit);
840            while (itr.hasNext()) {((Visitor)itr.next()).visitParameterDef(t,visit);}
841        }
842    
843        public void visitPlus(GroovySourceAST t, int visit) {
844            Iterator itr = itr(visit);
845            while (itr.hasNext()) {((Visitor)itr.next()).visitPlus(t,visit);}
846        }
847    
848        public void visitPlusAssign(GroovySourceAST t, int visit) {
849            Iterator itr = itr(visit);
850            while (itr.hasNext()) {((Visitor)itr.next()).visitPlusAssign(t,visit);}
851        }
852    
853        public void visitPostDec(GroovySourceAST t, int visit) {
854            Iterator itr = itr(visit);
855            while (itr.hasNext()) {((Visitor)itr.next()).visitPostDec(t,visit);}
856        }
857    
858        public void visitPostInc(GroovySourceAST t, int visit) {
859            Iterator itr = itr(visit);
860            while (itr.hasNext()) {((Visitor)itr.next()).visitPostInc(t,visit);}
861        }
862    
863        public void visitQuestion(GroovySourceAST t, int visit) {
864            Iterator itr = itr(visit);
865            while (itr.hasNext()) {((Visitor)itr.next()).visitQuestion(t,visit);}
866        }
867    
868        public void visitRangeExclusive(GroovySourceAST t, int visit) {
869            Iterator itr = itr(visit);
870            while (itr.hasNext()) {((Visitor)itr.next()).visitRangeExclusive(t,visit);}
871        }
872    
873        public void visitRangeInclusive(GroovySourceAST t, int visit) {
874            Iterator itr = itr(visit);
875            while (itr.hasNext()) {((Visitor)itr.next()).visitRangeInclusive(t,visit);}
876        }
877    
878        public void visitRbrack(GroovySourceAST t, int visit) {
879            Iterator itr = itr(visit);
880            while (itr.hasNext()) {((Visitor)itr.next()).visitRbrack(t,visit);}
881        }
882    
883        public void visitRcurly(GroovySourceAST t, int visit) {
884            Iterator itr = itr(visit);
885            while (itr.hasNext()) {((Visitor)itr.next()).visitRcurly(t,visit);}
886        }
887    
888        public void visitRegexpCtorEnd(GroovySourceAST t, int visit) {
889            Iterator itr = itr(visit);
890            while (itr.hasNext()) {((Visitor)itr.next()).visitRegexpCtorEnd(t,visit);}
891        }
892    
893        public void visitRegexpLiteral(GroovySourceAST t, int visit) {
894            Iterator itr = itr(visit);
895            while (itr.hasNext()) {((Visitor)itr.next()).visitRegexpLiteral(t,visit);}
896        }
897    
898        public void visitRegexpSymbol(GroovySourceAST t, int visit) {
899            Iterator itr = itr(visit);
900            while (itr.hasNext()) {((Visitor)itr.next()).visitRegexpSymbol(t,visit);}
901        }
902    
903        public void visitRegexFind(GroovySourceAST t, int visit) {
904            Iterator itr = itr(visit);
905            while (itr.hasNext()) {((Visitor)itr.next()).visitRegexFind(t,visit);}
906        }
907    
908        public void visitRegexMatch(GroovySourceAST t, int visit) {
909            Iterator itr = itr(visit);
910            while (itr.hasNext()) {((Visitor)itr.next()).visitRegexMatch(t,visit);}
911        }
912    
913        public void visitRparen(GroovySourceAST t, int visit) {
914            Iterator itr = itr(visit);
915            while (itr.hasNext()) {((Visitor)itr.next()).visitRparen(t,visit);}
916        }
917    
918        public void visitScopeEscape(GroovySourceAST t, int visit) {
919            Iterator itr = itr(visit);
920            while (itr.hasNext()) {((Visitor)itr.next()).visitScopeEscape(t,visit);}
921        }
922    
923        public void visitSelectSlot(GroovySourceAST t, int visit) {
924            Iterator itr = itr(visit);
925            while (itr.hasNext()) {((Visitor)itr.next()).visitSelectSlot(t,visit);}
926        }
927    
928        public void visitSemi(GroovySourceAST t, int visit) {
929            Iterator itr = itr(visit);
930            while (itr.hasNext()) {((Visitor)itr.next()).visitSemi(t,visit);}
931        }
932    
933        public void visitShComment(GroovySourceAST t, int visit) {
934            Iterator itr = itr(visit);
935            while (itr.hasNext()) {((Visitor)itr.next()).visitShComment(t,visit);}
936        }
937    
938        public void visitSl(GroovySourceAST t, int visit) {
939            Iterator itr = itr(visit);
940            while (itr.hasNext()) {((Visitor)itr.next()).visitSl(t,visit);}
941        }
942    
943        public void visitSlist(GroovySourceAST t, int visit) {
944            Iterator itr = itr(visit);
945            while (itr.hasNext()) {((Visitor)itr.next()).visitSlist(t,visit);}
946        }
947    
948        public void visitSlAssign(GroovySourceAST t, int visit) {
949            Iterator itr = itr(visit);
950            while (itr.hasNext()) {((Visitor)itr.next()).visitSlAssign(t,visit);}
951        }
952    
953        public void visitSlComment(GroovySourceAST t, int visit) {
954            Iterator itr = itr(visit);
955            while (itr.hasNext()) {((Visitor)itr.next()).visitSlComment(t,visit);}
956        }
957    
958        public void visitSpreadArg(GroovySourceAST t, int visit) {
959            Iterator itr = itr(visit);
960            while (itr.hasNext()) {((Visitor)itr.next()).visitSpreadArg(t,visit);}
961        }
962    
963        public void visitSpreadDot(GroovySourceAST t, int visit) {
964            Iterator itr = itr(visit);
965            while (itr.hasNext()) {((Visitor)itr.next()).visitSpreadDot(t,visit);}
966        }
967    
968        public void visitSpreadMapArg(GroovySourceAST t, int visit) {
969            Iterator itr = itr(visit);
970            while (itr.hasNext()) {((Visitor)itr.next()).visitSpreadMapArg(t,visit);}
971        }
972    
973        public void visitSr(GroovySourceAST t, int visit) {
974            Iterator itr = itr(visit);
975            while (itr.hasNext()) {((Visitor)itr.next()).visitSr(t,visit);}
976        }
977    
978        public void visitSrAssign(GroovySourceAST t, int visit) {
979            Iterator itr = itr(visit);
980            while (itr.hasNext()) {((Visitor)itr.next()).visitSrAssign(t,visit);}
981        }
982    
983        public void visitStar(GroovySourceAST t, int visit) {
984            Iterator itr = itr(visit);
985            while (itr.hasNext()) {((Visitor)itr.next()).visitStar(t,visit);}
986        }
987    
988        public void visitStarAssign(GroovySourceAST t, int visit) {
989            Iterator itr = itr(visit);
990            while (itr.hasNext()) {((Visitor)itr.next()).visitStarAssign(t,visit);}
991        }
992    
993        public void visitStarStar(GroovySourceAST t, int visit) {
994            Iterator itr = itr(visit);
995            while (itr.hasNext()) {((Visitor)itr.next()).visitStarStar(t,visit);}
996        }
997    
998        public void visitStarStarAssign(GroovySourceAST t, int visit) {
999            Iterator itr = itr(visit);
1000            while (itr.hasNext()) {((Visitor)itr.next()).visitStarStarAssign(t,visit);}
1001        }
1002    
1003        public void visitStaticImport(GroovySourceAST t, int visit) {
1004            Iterator itr = itr(visit);
1005            while (itr.hasNext()) {((Visitor)itr.next()).visitStaticImport(t,visit);}
1006        }
1007    
1008        public void visitStaticInit(GroovySourceAST t, int visit) {
1009            Iterator itr = itr(visit);
1010            while (itr.hasNext()) {((Visitor)itr.next()).visitStaticInit(t,visit);}
1011        }
1012    
1013        public void visitStrictfp(GroovySourceAST t, int visit) {
1014            Iterator itr = itr(visit);
1015            while (itr.hasNext()) {((Visitor)itr.next()).visitStrictfp(t,visit);}
1016        }
1017    
1018        public void visitStringCh(GroovySourceAST t, int visit) {
1019            Iterator itr = itr(visit);
1020            while (itr.hasNext()) {((Visitor)itr.next()).visitStringCh(t,visit);}
1021        }
1022    
1023        public void visitStringConstructor(GroovySourceAST t, int visit) {
1024            Iterator itr = itr(visit);
1025            while (itr.hasNext()) {((Visitor)itr.next()).visitStringConstructor(t,visit);}
1026        }
1027    
1028        public void visitStringCtorEnd(GroovySourceAST t, int visit) {
1029            Iterator itr = itr(visit);
1030            while (itr.hasNext()) {((Visitor)itr.next()).visitStringCtorEnd(t,visit);}
1031        }
1032    
1033        public void visitStringCtorMiddle(GroovySourceAST t, int visit) {
1034            Iterator itr = itr(visit);
1035            while (itr.hasNext()) {((Visitor)itr.next()).visitStringCtorMiddle(t,visit);}
1036        }
1037    
1038        public void visitStringCtorStart(GroovySourceAST t, int visit) {
1039            Iterator itr = itr(visit);
1040            while (itr.hasNext()) {((Visitor)itr.next()).visitStringCtorStart(t,visit);}
1041        }
1042    
1043        public void visitStringLiteral(GroovySourceAST t, int visit) {
1044            Iterator itr = itr(visit);
1045            while (itr.hasNext()) {((Visitor)itr.next()).visitStringLiteral(t,visit);}
1046        }
1047    
1048        public void visitStringNl(GroovySourceAST t, int visit) {
1049            Iterator itr = itr(visit);
1050            while (itr.hasNext()) {((Visitor)itr.next()).visitStringNl(t,visit);}
1051        }
1052    
1053        public void visitSuperCtorCall(GroovySourceAST t, int visit) {
1054            Iterator itr = itr(visit);
1055            while (itr.hasNext()) {((Visitor)itr.next()).visitSuperCtorCall(t,visit);}
1056        }
1057    
1058        public void visitTripleDot(GroovySourceAST t, int visit) {
1059            Iterator itr = itr(visit);
1060            while (itr.hasNext()) {((Visitor)itr.next()).visitTripleDot(t,visit);}
1061        }
1062    
1063        public void visitType(GroovySourceAST t, int visit) {
1064            Iterator itr = itr(visit);
1065            while (itr.hasNext()) {((Visitor)itr.next()).visitType(t,visit);}
1066        }
1067    
1068        public void visitTypecast(GroovySourceAST t, int visit) {
1069            Iterator itr = itr(visit);
1070            while (itr.hasNext()) {((Visitor)itr.next()).visitTypecast(t,visit);}
1071        }
1072    
1073        public void visitTypeArgument(GroovySourceAST t, int visit) {
1074            Iterator itr = itr(visit);
1075            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeArgument(t,visit);}
1076        }
1077    
1078        public void visitTypeArguments(GroovySourceAST t, int visit) {
1079            Iterator itr = itr(visit);
1080            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeArguments(t,visit);}
1081        }
1082    
1083        public void visitTypeLowerBounds(GroovySourceAST t, int visit) {
1084            Iterator itr = itr(visit);
1085            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeLowerBounds(t,visit);}
1086        }
1087    
1088        public void visitTypeParameter(GroovySourceAST t, int visit) {
1089            Iterator itr = itr(visit);
1090            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeParameter(t,visit);}
1091        }
1092    
1093        public void visitTypeParameters(GroovySourceAST t, int visit) {
1094            Iterator itr = itr(visit);
1095            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeParameters(t,visit);}
1096        }
1097    
1098        public void visitTypeUpperBounds(GroovySourceAST t, int visit) {
1099            Iterator itr = itr(visit);
1100            while (itr.hasNext()) {((Visitor)itr.next()).visitTypeUpperBounds(t,visit);}
1101        }
1102    
1103        public void visitUnaryMinus(GroovySourceAST t, int visit) {
1104            Iterator itr = itr(visit);
1105            while (itr.hasNext()) {((Visitor)itr.next()).visitUnaryMinus(t,visit);}
1106        }
1107    
1108        public void visitUnaryPlus(GroovySourceAST t, int visit) {
1109            Iterator itr = itr(visit);
1110            while (itr.hasNext()) {((Visitor)itr.next()).visitUnaryPlus(t,visit);}
1111        }
1112    
1113        public void visitUnusedConst(GroovySourceAST t, int visit) {
1114            Iterator itr = itr(visit);
1115            while (itr.hasNext()) {((Visitor)itr.next()).visitUnusedConst(t,visit);}
1116        }
1117    
1118        public void visitUnusedDo(GroovySourceAST t, int visit) {
1119            Iterator itr = itr(visit);
1120            while (itr.hasNext()) {((Visitor)itr.next()).visitUnusedDo(t,visit);}
1121        }
1122    
1123        public void visitUnusedGoto(GroovySourceAST t, int visit) {
1124            Iterator itr = itr(visit);
1125            while (itr.hasNext()) {((Visitor)itr.next()).visitUnusedGoto(t,visit);}
1126        }
1127    
1128        public void visitVariableDef(GroovySourceAST t, int visit) {
1129            Iterator itr = itr(visit);
1130            while (itr.hasNext()) {((Visitor)itr.next()).visitVariableDef(t,visit);}
1131        }
1132    
1133        public void visitVariableParameterDef(GroovySourceAST t, int visit) {
1134            Iterator itr = itr(visit);
1135            while (itr.hasNext()) {((Visitor)itr.next()).visitVariableParameterDef(t,visit);}
1136        }
1137    
1138        public void visitVocab(GroovySourceAST t, int visit) {
1139            Iterator itr = itr(visit);
1140            while (itr.hasNext()) {((Visitor)itr.next()).visitVocab(t,visit);}
1141        }
1142    
1143        public void visitWildcardType(GroovySourceAST t, int visit) {
1144            Iterator itr = itr(visit);
1145            while (itr.hasNext()) {((Visitor)itr.next()).visitWildcardType(t,visit);}
1146        }
1147    
1148        public void visitWs(GroovySourceAST t, int visit) {
1149            Iterator itr = itr(visit);
1150            while (itr.hasNext()) {((Visitor)itr.next()).visitWs(t,visit);}
1151        }
1152    
1153    
1154    
1155    
1156    
1157        public void visitDefault(GroovySourceAST t, int visit) {
1158            Iterator itr = itr(visit);
1159            while (itr.hasNext()) {((Visitor)itr.next()).visitDefault(t,visit);}
1160        }
1161    
1162        public void tearDown() {
1163            Iterator itr = backToFrontVisitors.iterator();
1164            while (itr.hasNext()) {((Visitor)itr.next()).tearDown();}
1165        }
1166    
1167        public void push(GroovySourceAST t) {
1168            Iterator itr = visitors.iterator();
1169            while (itr.hasNext()) {((Visitor)itr.next()).push(t);}
1170        }
1171        public GroovySourceAST pop() {
1172            GroovySourceAST lastNodePopped = null;
1173            Iterator itr = backToFrontVisitors.iterator();
1174            while (itr.hasNext()) {lastNodePopped = (GroovySourceAST) ((Visitor)itr.next()).pop();}
1175            return lastNodePopped;
1176        }
1177    
1178    }