View Javadoc

1   /**
2    * Redistribution  and use  in source  and binary  forms, with  or without
3    * modification, are permitted provided  that the following conditions are
4    * met :
5    *
6    * . Redistributions  of  source  code  must  retain  the  above copyright
7    *   notice, this list of conditions and the following disclaimer.
8    *
9    * . Redistributions in  binary form  must reproduce  the above  copyright
10   *   notice, this list of conditions  and the following disclaimer in  the
11   *   documentation and/or other materials provided with the distribution.
12   *
13   * . The name of the author may not be used to endorse or promote products
14   *   derived from this software without specific prior written permission.
15   *
16   * THIS SOFTWARE IS  PROVIDED BY THE  AUTHOR ``AS IS''  AND ANY EXPRESS  OR
17   * IMPLIED  WARRANTIES,  INCLUDING,  BUT   NOT  LIMITED  TO,  THE   IMPLIED
18   * WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE ARE
19   * DISCLAIMED.  IN NO  EVENT SHALL  THE AUTHOR  BE LIABLE  FOR ANY  DIRECT,
20   * INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES
21   * (INCLUDING,  BUT  NOT LIMITED  TO,  PROCUREMENT OF  SUBSTITUTE  GOODS OR
22   * SERVICES;  LOSS  OF USE,  DATA,  OR PROFITS;  OR  BUSINESS INTERRUPTION)
23   * HOWEVER CAUSED  AND ON  ANY THEORY  OF LIABILITY,  WHETHER IN  CONTRACT,
24   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
25   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE, EVEN  IF  ADVISED OF  THE
26   * POSSIBILITY OF SUCH DAMAGE.
27   */
28  
29  package cppast;
30  
31  /**
32   * Provides an abstract visitor to only override needed methods.
33   *
34   * @author Mathieu Champlon
35   */
36  public class AbstractVisitor implements ParserVisitor
37  {
38      /**
39       * {@inheritDoc}
40       */
41      public Object visit( final SimpleNode node, final Object data )
42      {
43          return node.accept( this, data );
44      }
45  
46      /**
47       * {@inheritDoc}
48       */
49      public Object visit( final AstTranslationUnit node, final Object data )
50      {
51          return node.accept( this, data );
52      }
53  
54      /**
55       * {@inheritDoc}
56       */
57      public Object visit( final AstFunctionDefinition node, final Object data )
58      {
59          return node.accept( this, data );
60      }
61  
62      /**
63       * {@inheritDoc}
64       */
65      public Object visit( final AstConstructorDefinition node, final Object data )
66      {
67          return node.accept( this, data );
68      }
69  
70      /**
71       * {@inheritDoc}
72       */
73      public Object visit( final AstDestructorDefinition node, final Object data )
74      {
75          return node.accept( this, data );
76      }
77  
78      /**
79       * {@inheritDoc}
80       */
81      public Object visit( final AstIfStatement node, final Object data )
82      {
83          return node.accept( this, data );
84      }
85  
86      /**
87       * {@inheritDoc}
88       */
89      public Object visit( final AstCaseStatement node, final Object data )
90      {
91          return node.accept( this, data );
92      }
93  
94      /**
95       * {@inheritDoc}
96       */
97      public Object visit( final AstIterationStatement node, final Object data )
98      {
99          return node.accept( this, data );
100     }
101 
102     /**
103      * {@inheritDoc}
104      */
105     public Object visit( final AstCatchBlock node, final Object data )
106     {
107         return node.accept( this, data );
108     }
109 
110     /**
111      * {@inheritDoc}
112      */
113     public Object visit( final AstFunctionName node, final Object data )
114     {
115         return node.accept( this, data );
116     }
117 
118     /**
119      * {@inheritDoc}
120      */
121     public Object visit( final AstFunctionParameters node, final Object data )
122     {
123         return node.accept( this, data );
124     }
125 
126     /**
127      * {@inheritDoc}
128      */
129     public Object visit( final AstParameter node, final Object data )
130     {
131         return node.accept( this, data );
132     }
133 
134     /**
135      * {@inheritDoc}
136      */
137     public Object visit( final AstParameterType node, final Object data )
138     {
139         return node.accept( this, data );
140     }
141 
142     /**
143      * {@inheritDoc}
144      */
145     public Object visit( final AstParameterTypeQualifier node, final Object data )
146     {
147         return node.accept( this, data );
148     }
149 
150     /**
151      * {@inheritDoc}
152      */
153     public Object visit( final AstFunctionBody node, final Object data )
154     {
155         return node.accept( this, data );
156     }
157 
158     /**
159      * {@inheritDoc}
160      */
161     public Object visit( final AstConstructorInitializer node, final Object data )
162     {
163         return node.accept( this, data );
164     }
165 
166     /**
167      * {@inheritDoc}
168      */
169     public Object visit( final AstExpressionStatement node, final Object data )
170     {
171         return node.accept( this, data );
172     }
173 
174     /**
175      * {@inheritDoc}
176      */
177     public Object visit( final AstElseStatement node, final Object data )
178     {
179         return node.accept( this, data );
180     }
181 
182     /**
183      * {@inheritDoc}
184      */
185     public Object visit( final AstDeclarationStatement node, final Object data )
186     {
187         return node.accept( this, data );
188     }
189 
190     /**
191      * {@inheritDoc}
192      */
193     public Object visit( final AstSwitchStatement node, final Object data )
194     {
195         return node.accept( this, data );
196     }
197 
198     /**
199      * {@inheritDoc}
200      */
201     public Object visit( final AstGotoStatement node, final Object data )
202     {
203         return node.accept( this, data );
204     }
205 
206     /**
207      * {@inheritDoc}
208      */
209     public Object visit( final AstBreakStatement node, final Object data )
210     {
211         return node.accept( this, data );
212     }
213 
214     /**
215      * {@inheritDoc}
216      */
217     public Object visit( final AstReturnStatement node, final Object data )
218     {
219         return node.accept( this, data );
220     }
221 
222     /**
223      * {@inheritDoc}
224      */
225     public Object visit( final AstContinueStatement node, final Object data )
226     {
227         return node.accept( this, data );
228     }
229 
230     /**
231      * {@inheritDoc}
232      */
233     public Object visit( final AstLabelStatement node, final Object data )
234     {
235         return node.accept( this, data );
236     }
237 
238     /**
239      * {@inheritDoc}
240      */
241     public Object visit( final AstDefaultStatement node, final Object data )
242     {
243         return node.accept( this, data );
244     }
245 
246     /**
247      * {@inheritDoc}
248      */
249     public Object visit( final AstConditionalExpression node, final Object data )
250     {
251         return node.accept( this, data );
252     }
253 
254     /**
255      * {@inheritDoc}
256      */
257     public Object visit( final AstLogicalOrExpression node, final Object data )
258     {
259         return node.accept( this, data );
260     }
261 
262     /**
263      * {@inheritDoc}
264      */
265     public Object visit( final AstLogicalAndExpression node, final Object data )
266     {
267         return node.accept( this, data );
268     }
269 
270     /**
271      * {@inheritDoc}
272      */
273     public Object visit( final AstPrimaryExpression node, final Object data )
274     {
275         return node.accept( this, data );
276     }
277 
278     /**
279      * {@inheritDoc}
280      */
281     public Object visit( final AstAssignmentExpression node, final Object data )
282     {
283         return node.accept( this, data );
284     }
285 
286     /**
287      * {@inheritDoc}
288      */
289     public Object visit( final AstInclusiveOrExpression node, final Object data )
290     {
291         return node.accept( this, data );
292     }
293 
294     /**
295      * {@inheritDoc}
296      */
297     public Object visit( final AstExclusiveOrExpression node, final Object data )
298     {
299         return node.accept( this, data );
300     }
301 
302     /**
303      * {@inheritDoc}
304      */
305     public Object visit( final AstAndExpression node, final Object data )
306     {
307         return node.accept( this, data );
308     }
309 
310     /**
311      * {@inheritDoc}
312      */
313     public Object visit( final AstEqualityExpression node, final Object data )
314     {
315         return node.accept( this, data );
316     }
317 
318     /**
319      * {@inheritDoc}
320      */
321     public Object visit( final AstRelationalExpression node, final Object data )
322     {
323         return node.accept( this, data );
324     }
325 
326     /**
327      * {@inheritDoc}
328      */
329     public Object visit( final AstShiftExpression node, final Object data )
330     {
331         return node.accept( this, data );
332     }
333 
334     /**
335      * {@inheritDoc}
336      */
337     public Object visit( final AstAdditiveExpression node, final Object data )
338     {
339         return node.accept( this, data );
340     }
341 
342     /**
343      * {@inheritDoc}
344      */
345     public Object visit( final AstMultiplicativeExpression node, final Object data )
346     {
347         return node.accept( this, data );
348     }
349 
350     /**
351      * {@inheritDoc}
352      */
353     public Object visit( final AstPointerToMemberExpression node, final Object data )
354     {
355         return node.accept( this, data );
356     }
357 
358     /**
359      * {@inheritDoc}
360      */
361     public Object visit( final AstCastExpression node, final Object data )
362     {
363         return node.accept( this, data );
364     }
365 
366     /**
367      * {@inheritDoc}
368      */
369     public Object visit( final AstUnaryExpression node, final Object data )
370     {
371         return node.accept( this, data );
372     }
373 
374     /**
375      * {@inheritDoc}
376      */
377     public Object visit( final AstPostfixExpression node, final Object data )
378     {
379         return node.accept( this, data );
380     }
381 
382     /**
383      * {@inheritDoc}
384      */
385     public Object visit( final AstIdExpression node, final Object data )
386     {
387         return node.accept( this, data );
388     }
389 
390     /**
391      * {@inheritDoc}
392      */
393     public Object visit( final AstNewExpression node, final Object data )
394     {
395         return node.accept( this, data );
396     }
397 
398     /**
399      * {@inheritDoc}
400      */
401     public Object visit( final AstDeleteExpression node, final Object data )
402     {
403         return node.accept( this, data );
404     }
405 
406     /**
407      * {@inheritDoc}
408      */
409     public Object visit( final AstFunctionCallExpression node, final Object data )
410     {
411         return node.accept( this, data );
412     }
413 
414     /**
415      * {@inheritDoc}
416      */
417     public Object visit( final AstConstantExpression node, final Object data )
418     {
419         return node.accept( this, data );
420     }
421 
422     /**
423      * {@inheritDoc}
424      */
425     public Object visit( final AstTypeIdExpression node, final Object data )
426     {
427         return node.accept( this, data );
428     }
429 
430     /**
431      * {@inheritDoc}
432      */
433     public Object visit( final AstThrowExpression node, final Object data )
434     {
435         return node.accept( this, data );
436     }
437 
438     /**
439      * {@inheritDoc}
440      */
441     public Object visit( final AstClassDefinition node, final Object data )
442     {
443         return node.accept( this, data );
444     }
445 
446     /**
447      * {@inheritDoc}
448      */
449     public Object visit( final AstNamespaceDefinition node, final Object data )
450     {
451         return node.accept( this, data );
452     }
453 
454     /**
455      * {@inheritDoc}
456      */
457     public Object visit( final AstNamespaceAliasDefinition node, final Object data )
458     {
459         return node.accept( this, data );
460     }
461 
462     /**
463      * {@inheritDoc}
464      */
465     public Object visit( final AstClassDeclaration node, final Object data )
466     {
467         return node.accept( this, data );
468     }
469 
470     /**
471      * {@inheritDoc}
472      */
473     public Object visit( final AstEnumSpecifier node, final Object data )
474     {
475         return node.accept( this, data );
476     }
477 
478     /**
479      * {@inheritDoc}
480      */
481     public Object visit( final AstDeclaration node, final Object data )
482     {
483         return node.accept( this, data );
484     }
485 
486     /**
487      * {@inheritDoc}
488      */
489     public Object visit( final AstMemberDeclaration node, final Object data )
490     {
491         return node.accept( this, data );
492     }
493 
494     /**
495      * {@inheritDoc}
496      */
497     public Object visit( final AstFunctionDeclaration node, final Object data )
498     {
499         return node.accept( this, data );
500     }
501 
502     /**
503      * {@inheritDoc}
504      */
505     public Object visit( final AstConstructorDeclaration node, final Object data )
506     {
507         return node.accept( this, data );
508     }
509 
510     /**
511      * {@inheritDoc}
512      */
513     public Object visit( final AstDestructorDeclaration node, final Object data )
514     {
515         return node.accept( this, data );
516     }
517 
518     /**
519      * {@inheritDoc}
520      */
521     public Object visit( final AstTryBlock node, final Object data )
522     {
523         return node.accept( this, data );
524     }
525 
526     /**
527      * {@inheritDoc}
528      */
529     public Object visit( final AstFunctionPointerPostfix node, final Object data )
530     {
531         return node.accept( this, data );
532     }
533 }