View Javadoc

1   package net.sourceforge.pmd.util;
2   
3   import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration;
4   import net.sourceforge.pmd.ast.ASTCompilationUnit;
5   import net.sourceforge.pmd.ast.JavaParserVisitorAdapter;
6   
7   public class SymbolTableViewer extends JavaParserVisitorAdapter {
8   
9       private int depth;
10  
11      public Object visit(ASTCompilationUnit node, Object data) {
12          depth++;
13          System.out.println(spaces() + node.getScope());
14          super.visit(node, data);
15          depth--;
16          return data;
17      }
18  
19      public Object visit(ASTClassOrInterfaceDeclaration node, Object data) {
20          depth++;
21          System.out.println(spaces() + node.getScope());
22          super.visit(node, data);
23          depth--;
24          return data;
25      }
26  
27      private String spaces() {
28          StringBuffer sb = new StringBuffer(depth);
29          for (int i=0; i<depth; i++) sb.append(' ');
30          return sb.toString();
31      }
32  
33  /*
34      public Object visit(ASTClassOrInterfaceBodyDeclaration node, Object data) {
35          System.out.println(node.getScope());
36          node.dump("");
37          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
38      }
39  
40      public Object visit(ASTEnumDeclaration node, Object data) {
41          System.out.println(node.getScope());
42          node.dump("");
43          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
44      }
45  
46      public Object visit(ASTBlock node, Object data) {
47          System.out.println(node.getScope());
48          node.dump("");
49          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
50      }
51  
52      public Object visit(ASTTryStatement node, Object data) {
53          System.out.println(node.getScope());
54          node.dump("");
55          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
56      }
57  
58      public Object visit(ASTCatchStatement node, Object data) {
59          System.out.println(node.getScope());
60          node.dump("");
61          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
62      }
63  
64      public Object visit(ASTFinallyStatement node, Object data) {
65          System.out.println(node.getScope());
66          node.dump("");
67          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
68      }
69  
70      public Object visit(ASTMethodDeclaration node, Object data) {
71          System.out.println(node.getScope());
72          node.dump("");
73          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
74      }
75  
76      public Object visit(ASTConstructorDeclaration node, Object data) {
77          System.out.println(node.getScope());
78          node.dump("");
79          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
80      }
81  
82      public Object visit(ASTSwitchLabel node, Object data) {
83          System.out.println(node.getScope());
84          node.dump("");
85          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
86      }
87  
88      public Object visit(ASTIfStatement node, Object data) {
89          System.out.println(node.getScope());
90          node.dump("");
91          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
92      }
93  
94      public Object visit(ASTForStatement node, Object data) {
95          System.out.println(node.getScope());
96          node.dump("");
97          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
98      }
99  */
100 
101 }