KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > VTransformer > UnparseVisitor


1
2 /*
3  * Copyright © 2002 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
4  * California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has
5  * intellectual property rights relating to technology embodied in the product
6  * that is described in this document. In particular, and without limitation,
7  * these intellectual property rights may include one or more of the U.S.
8  * patents listed at http://www.sun.com/patents and one or more additional
9  * patents or pending patent applications in the U.S. and in other countries.
10  * U.S. Government Rights - Commercial software. Government users are subject
11  * to the Sun Microsystems, Inc. standard license agreement and applicable
12  * provisions of the FAR and its supplements. Use is subject to license terms.
13  * Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
14  * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. This
15  * product is covered and controlled by U.S. Export Control laws and may be
16  * subject to the export or import laws in other countries. Nuclear, missile,
17  * chemical biological weapons or nuclear maritime end uses or end users,
18  * whether direct or indirect, are strictly prohibited. Export or reexport
19  * to countries subject to U.S. embargo or to entities identified on U.S.
20  * export exclusion lists, including, but not limited to, the denied persons
21  * and specially designated nationals lists is strictly prohibited.
22  */

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