View Javadoc

1   /*
2   
3    $Id: GroovyCodeVisitor.java,v 1.27 2005/05/11 01:17:38 phk Exp $
4   
5   
6   
7    Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved.
8   
9   
10  
11   Redistribution and use of this software and associated documentation
12  
13   ("Software"), with or without modification, are permitted provided
14  
15   that the following conditions are met:
16  
17  
18  
19   1. Redistributions of source code must retain copyright
20  
21      statements and notices.  Redistributions must also contain a
22  
23      copy of this document.
24  
25  
26  
27   2. Redistributions in binary form must reproduce the
28  
29      above copyright notice, this list of conditions and the
30  
31      following disclaimer in the documentation and/or other
32  
33      materials provided with the distribution.
34  
35  
36  
37   3. The name "groovy" must not be used to endorse or promote
38  
39      products derived from this Software without prior written
40  
41      permission of The Codehaus.  For written permission,
42  
43      please contact info@codehaus.org.
44  
45  
46  
47   4. Products derived from this Software may not be called "groovy"
48  
49      nor may "groovy" appear in their names without prior written
50  
51      permission of The Codehaus. "groovy" is a registered
52  
53      trademark of The Codehaus.
54  
55  
56  
57   5. Due credit should be given to The Codehaus -
58  
59      http://groovy.codehaus.org/
60  
61  
62  
63   THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
64  
65   ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
66  
67   NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
68  
69   FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
70  
71   THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
72  
73   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
74  
75   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
76  
77   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
78  
79   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
80  
81   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
82  
83   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
84  
85   OF THE POSSIBILITY OF SUCH DAMAGE.
86  
87  
88  
89   */
90  
91  package org.codehaus.groovy.ast;
92  
93  
94  
95  import org.codehaus.groovy.ast.expr.*;
96  
97  import org.codehaus.groovy.ast.stmt.*;
98  
99  
100 
101 /***
102 
103  * An implementation of the visitor pattern for working with ASTNodes
104 
105  * 
106 
107  * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
108 
109  * @version $Revision: 1.27 $
110 
111  */
112 
113 public interface GroovyCodeVisitor {
114 
115 
116 
117     // statements
118 
119     //-------------------------------------------------------------------------
120 
121     public void visitBlockStatement(BlockStatement statement);
122 
123     public void visitForLoop(ForStatement forLoop);
124 
125     public void visitWhileLoop(WhileStatement loop);
126 
127     public void visitDoWhileLoop(DoWhileStatement loop);
128 
129     public void visitIfElse(IfStatement ifElse);
130 
131     public void visitExpressionStatement(ExpressionStatement statement);
132 
133     public void visitReturnStatement(ReturnStatement statement);
134 
135     public void visitAssertStatement(AssertStatement statement);
136 
137     public void visitTryCatchFinally(TryCatchStatement finally1);
138 
139     public void visitSwitch(SwitchStatement statement);
140 
141     public void visitCaseStatement(CaseStatement statement);
142 
143     public void visitBreakStatement(BreakStatement statement);
144 
145     public void visitContinueStatement(ContinueStatement statement);
146 
147     public void visitThrowStatement(ThrowStatement statement);
148 
149     public void visitSynchronizedStatement(SynchronizedStatement statement);
150     
151     public void visitCatchStatement(CatchStatement statement);
152 
153     
154 
155     // expressions
156 
157     //-------------------------------------------------------------------------
158 
159     public void visitMethodCallExpression(MethodCallExpression call);
160 
161     public void visitStaticMethodCallExpression(StaticMethodCallExpression expression);
162 
163     public void visitConstructorCallExpression(ConstructorCallExpression expression);
164 
165     public void visitTernaryExpression(TernaryExpression expression);
166 
167     public void visitBinaryExpression(BinaryExpression expression);
168 
169     public void visitPrefixExpression(PrefixExpression expression);
170 
171     public void visitPostfixExpression(PostfixExpression expression);
172 
173     public void visitBooleanExpression(BooleanExpression expression);
174 
175     public void visitClosureExpression(ClosureExpression expression);
176 
177     
178 
179     public void visitTupleExpression(TupleExpression expression);
180 
181     public void visitMapExpression(MapExpression expression);
182 
183     public void visitMapEntryExpression(MapEntryExpression expression);
184 
185     public void visitListExpression(ListExpression expression);
186 
187     public void visitRangeExpression(RangeExpression expression);
188 
189     
190 
191     public void visitPropertyExpression(PropertyExpression expression);
192 
193     public void visitAttributeExpression(AttributeExpression attributeExpression);
194 
195     public void visitFieldExpression(FieldExpression expression);
196 
197     public void visitMethodPointerExpression(MethodPointerExpression expression);
198 
199 
200 
201     public void visitConstantExpression(ConstantExpression expression);
202 
203     public void visitClassExpression(ClassExpression expression);
204 
205     public void visitVariableExpression(VariableExpression expression);
206 
207     public void visitDeclarationExpression(DeclarationExpression expression);
208 
209     public void visitRegexExpression(RegexExpression expression);
210 
211     public void visitGStringExpression(GStringExpression expression);
212 
213     public void visitArrayExpression(ArrayExpression expression);
214 
215 
216 
217     public void visitSpreadExpression(SpreadExpression expression);
218 
219     public void visitSpreadMapExpression(SpreadMapExpression expression);
220     public void visitNotExpression(NotExpression expression);
221 
222     public void visitNegationExpression(NegationExpression expression);
223 
224     public void visitBitwiseNegExpression(BitwiseNegExpression expression);
225 
226     public void visitCastExpression(CastExpression expression);
227 
228 
229 
230 }
231