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 }