1 2 23 24 25 package VTransformer; 26 27 import java.io.PrintStream ; 28 29 public class UnparseVisitor implements JavaParserVisitor 30 { 31 32 protected PrintStream out; 33 34 35 public UnparseVisitor(PrintStream o) 36 { 37 out = o; 38 } 39 40 41 public Object print(SimpleNode node, Object data) { 42 Token t1 = node.getFirstToken(); 43 Token t = new Token(); 44 t.next = t1; 45 46 SimpleNode n; 47 for (int ord = 0; ord < node.jjtGetNumChildren(); ord++) { 48 n = (SimpleNode)node.jjtGetChild(ord); 49 while (true) { 50 t = t.next; 51 if (t == n.getFirstToken()) break; 52 print(t); 53 } 54 n.jjtAccept(this, data); 55 t = n.getLastToken(); 56 } 57 58 while (t != node.getLastToken()) { 59 t = t.next; 60 print(t); 61 } 62 return data; 63 } 64 65 66 protected void print(Token t) { 67 Token tt = t.specialToken; 68 if (tt != null) { 69 while (tt.specialToken != null) tt = tt.specialToken; 70 while (tt != null) { 71 out.print(addUnicodeEscapes(tt.image)); 72 tt = tt.next; 73 } 74 } 75 out.print(addUnicodeEscapes(t.image)); 76 } 77 78 79 private String addUnicodeEscapes(String str) { 80 String retval = ""; 81 char ch; 82 for (int i = 0; i < str.length(); i++) { 83 ch = str.charAt(i); 84 if ((ch < 0x20 || ch > 0x7e) && 85 ch != '\t' && ch != '\n' && ch != '\r' && ch != '\f') { 86 String s = "0000" + Integer.toString(ch, 16); 87 retval += "\\u" + s.substring(s.length() - 4, s.length()); 88 } else { 89 retval += ch; 90 } 91 } 92 return retval; 93 } 94 95 96 public Object visit(SimpleNode node, Object data) 97 { 98 return print(node, data); 99 } 100 101 public Object visit(ASTCompilationUnit node, Object data) 102 { 103 return print(node, data); 104 } 105 106 public Object visit(ASTPackageDeclaration node, Object data) 107 { 108 return print(node, data); 109 } 110 111 public Object visit(ASTImportDeclaration node, Object data) 112 { 113 return print(node, data); 114 } 115 116 public Object visit(ASTTypeDeclaration node, Object data) 117 { 118 return print(node, data); 119 } 120 121 public Object visit(ASTClassDeclaration node, Object data) 122 { 123 return print(node, data); 124 } 125 126 public Object visit(ASTUnmodifiedClassDeclaration node, Object data) 127 { 128 return print(node, data); 129 } 130 131 public Object visit(ASTClassBody node, Object data) 132 { 133 return print(node, data); 134 } 135 136 public Object visit(ASTNestedClassDeclaration node, Object data) 137 { 138 return print(node, data); 139 } 140 141 public Object visit(ASTClassBodyDeclaration node, Object data) 142 { 143 return print(node, data); 144 } 145 146 public Object visit(ASTMethodDeclarationLookahead node, Object data) 147 { 148 return print(node, data); 149 } 150 151 public Object visit(ASTInterfaceDeclaration node, Object data) 152 { 153 return print(node, data); 154 } 155 156 public Object visit(ASTNestedInterfaceDeclaration node, Object data) 157 { 158 return print(node, data); 159 } 160 161 public Object visit(ASTUnmodifiedInterfaceDeclaration node, Object data) 162 { 163 return print(node, data); 164 } 165 166 public Object visit(ASTInterfaceMemberDeclaration node, Object data) 167 { 168 return print(node, data); 169 } 170 171 public Object visit(ASTFieldDeclaration node, Object data) 172 { 173 return print(node, data); 174 } 175 176 public Object visit(ASTVariableDeclarator node, Object data) 177 { 178 return print(node, data); 179 } 180 181 public Object visit(ASTVariableDeclaratorId node, Object data) 182 { 183 return print(node, data); 184 } 185 186 public Object visit(ASTVariableInitializer node, Object data) 187 { 188 return print(node, data); 189 } 190 191 public Object visit(ASTArrayInitializer node, Object data) 192 { 193 return print(node, data); 194 } 195 196 public Object visit(ASTMethodDeclaration node, Object data) 197 { 198 return print(node, data); 199 } 200 201 public Object visit(ASTMethodDeclarator node, Object data) 202 { 203 return print(node, data); 204 } 205 206 public Object visit(ASTFormalParameters node, Object data) 207 { 208 return print(node, data); 209 } 210 211 public Object visit(ASTFormalParameter node, Object data) 212 { 213 return print(node, data); 214 } 215 216 public Object visit(ASTConstructorDeclaration node, Object data) 217 { 218 return print(node, data); 219 } 220 221 public Object visit(ASTExplicitConstructorInvocation node, Object data) 222 { 223 return print(node, data); 224 } 225 226 public Object visit(ASTInitializer node, Object data) 227 { 228 return print(node, data); 229 } 230 231 public Object visit(ASTType node, Object data) 232 { 233 return print(node, data); 234 } 235 236 public Object visit(ASTPrimitiveType node, Object data) 237 { 238 return print(node, data); 239 } 240 241 public Object visit(ASTResultType node, Object data) 242 { 243 return print(node, data); 244 } 245 246 public Object visit(ASTName node, Object data) 247 { 248 return print(node, data); 249 } 250 251 public Object visit(ASTNameList node, Object data) 252 { 253 return print(node, data); 254 } 255 256 public Object visit(ASTExpression node, Object data) 257 { 258 return print(node, data); 259 } 260 261 public Object visit(ASTAssignmentOperator node, Object data) 262 { 263 return print(node, data); 264 } 265 266 public Object visit(ASTConditionalExpression node, Object data) 267 { 268 return print(node, data); 269 } 270 271 public Object visit(ASTConditionalOrExpression node, Object data) 272 { 273 return print(node, data); 274 } 275 276 public Object visit(ASTConditionalAndExpression node, Object data) 277 { 278 return print(node, data); 279 } 280 281 public Object visit(ASTInclusiveOrExpression node, Object data) 282 { 283 return print(node, data); 284 } 285 286 public Object visit(ASTExclusiveOrExpression node, Object data) 287 { 288 return print(node, data); 289 } 290 291 public Object visit(ASTAndExpression node, Object data) 292 { 293 return print(node, data); 294 } 295 296 public Object visit(ASTEqualityExpression node, Object data) 297 { 298 return print(node, data); 299 } 300 301 public Object visit(ASTInstanceOfExpression node, Object data) 302 { 303 return print(node, data); 304 } 305 306 public Object visit(ASTRelationalExpression node, Object data) 307 { 308 return print(node, data); 309 } 310 311 public Object visit(ASTShiftExpression node, Object data) 312 { 313 return print(node, data); 314 } 315 316 public Object visit(ASTAdditiveExpression node, Object data) 317 { 318 return print(node, data); 319 } 320 321 public Object visit(ASTMultiplicativeExpression node, Object data) 322 { 323 return print(node, data); 324 } 325 326 public Object visit(ASTUnaryExpression node, Object data) 327 { 328 return print(node, data); 329 } 330 331 public Object visit(ASTPreIncrementExpression node, Object data) 332 { 333 return print(node, data); 334 } 335 336 public Object visit(ASTPreDecrementExpression node, Object data) 337 { 338 return print(node, data); 339 } 340 341 public Object visit(ASTUnaryExpressionNotPlusMinus node, Object data) 342 { 343 return print(node, data); 344 } 345 346 public Object visit(ASTCastLookahead node, Object data) 347 { 348 return print(node, data); 349 } 350 351 public Object visit(ASTPostfixExpression node, Object data) 352 { 353 return print(node, data); 354 } 355 356 public Object visit(ASTCastExpression node, Object data) 357 { 358 return print(node, data); 359 } 360 361 public Object visit(ASTPrimaryExpression node, Object data) 362 { 363 return print(node, data); 364 } 365 366 public Object visit(ASTPrimaryPrefix node, Object data) 367 { 368 return print(node, data); 369 } 370 371 public Object visit(ASTPrimarySuffix node, Object data) 372 { 373 return print(node, data); 374 } 375 376 public Object visit(ASTLiteral node, Object data) 377 { 378 return print(node, data); 379 } 380 381 public Object visit(ASTBooleanLiteral node, Object data) 382 { 383 return print(node, data); 384 } 385 386 public Object visit(ASTNullLiteral node, Object data) 387 { 388 return print(node, data); 389 } 390 391 public Object visit(ASTArguments node, Object data) 392 { 393 return print(node, data); 394 } 395 396 public Object visit(ASTArgumentList node, Object data) 397 { 398 return print(node, data); 399 } 400 401 public Object visit(ASTAllocationExpression node, Object data) 402 { 403 return print(node, data); 404 } 405 406 public Object visit(ASTArrayDimsAndInits node, Object data) 407 { 408 return print(node, data); 409 } 410 411 public Object visit(ASTStatement node, Object data) 412 { 413 return print(node, data); 414 } 415 416 public Object visit(ASTLabeledStatement node, Object data) 417 { 418 return print(node, data); 419 } 420 421 public Object visit(ASTBlock node, Object data) 422 { 423 return print(node, data); 424 } 425 426 public Object visit(ASTBlockStatement node, Object data) 427 { 428 return print(node, data); 429 } 430 431 public Object visit(ASTLocalVariableDeclaration node, Object data) 432 { 433 return print(node, data); 434 } 435 436 public Object visit(ASTEmptyStatement node, Object data) 437 { 438 return print(node, data); 439 } 440 441 public Object visit(ASTStatementExpression node, Object data) 442 { 443 return print(node, data); 444 } 445 446 public Object visit(ASTSwitchStatement node, Object data) 447 { 448 return print(node, data); 449 } 450 451 public Object visit(ASTSwitchLabel node, Object data) 452 { 453 return print(node, data); 454 } 455 456 public Object visit(ASTIfStatement node, Object data) 457 { 458 return print(node, data); 459 } 460 461 public Object visit(ASTWhileStatement node, Object data) 462 { 463 return print(node, data); 464 } 465 466 public Object visit(ASTDoStatement node, Object data) 467 { 468 return print(node, data); 469 } 470 471 public Object visit(ASTForStatement node, Object data) 472 { 473 return print(node, data); 474 } 475 476 public Object visit(ASTForInit node, Object data) 477 { 478 return print(node, data); 479 } 480 481 public Object visit(ASTStatementExpressionList node, Object data) 482 { 483 return print(node, data); 484 } 485 486 public Object visit(ASTForUpdate node, Object data) 487 { 488 return print(node, data); 489 } 490 491 public Object visit(ASTBreakStatement node, Object data) 492 { 493 return print(node, data); 494 } 495 496 public Object visit(ASTContinueStatement node, Object data) 497 { 498 return print(node, data); 499 } 500 501 public Object visit(ASTReturnStatement node, Object data) 502 { 503 return print(node, data); 504 } 505 506 public Object visit(ASTThrowStatement node, Object data) 507 { 508 return print(node, data); 509 } 510 511 public Object visit(ASTSynchronizedStatement node, Object data) 512 { 513 return print(node, data); 514 } 515 516 public Object visit(ASTTryStatement node, Object data) 517 { 518 return print(node, data); 519 } 520 521 } 522 | Popular Tags |