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 }