View Javadoc

    1   package net.sourceforge.pmd.util;
    2
    3   import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
    4   import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
    5   import net.sourceforge.pmd.lang.java.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++) {
    30              sb.append(' ');
    31          }
    32          return sb.toString();
    33      }
    34
    35  /*
    36      public Object visit(ASTClassOrInterfaceBodyDeclaration node, Object data) {
    37          System.out.println(node.getScope());
    38          node.dump("");
    39          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    40      }
    41
    42      public Object visit(ASTEnumDeclaration node, Object data) {
    43          System.out.println(node.getScope());
    44          node.dump("");
    45          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    46      }
    47
    48      public Object visit(ASTBlock node, Object data) {
    49          System.out.println(node.getScope());
    50          node.dump("");
    51          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    52      }
    53
    54      public Object visit(ASTTryStatement node, Object data) {
    55          System.out.println(node.getScope());
    56          node.dump("");
    57          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    58      }
    59
    60      public Object visit(ASTCatchStatement node, Object data) {
    61          System.out.println(node.getScope());
    62          node.dump("");
    63          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    64      }
    65
    66      public Object visit(ASTFinallyStatement node, Object data) {
    67          System.out.println(node.getScope());
    68          node.dump("");
    69          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    70      }
    71
    72      public Object visit(ASTMethodDeclaration node, Object data) {
    73          System.out.println(node.getScope());
    74          node.dump("");
    75          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    76      }
    77
    78      public Object visit(ASTConstructorDeclaration node, Object data) {
    79          System.out.println(node.getScope());
    80          node.dump("");
    81          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    82      }
    83
    84      public Object visit(ASTSwitchLabel node, Object data) {
    85          System.out.println(node.getScope());
    86          node.dump("");
    87          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    88      }
    89
    90      public Object visit(ASTIfStatement node, Object data) {
    91          System.out.println(node.getScope());
    92          node.dump("");
    93          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    94      }
    95
    96      public Object visit(ASTForStatement node, Object data) {
    97          System.out.println(node.getScope());
    98          node.dump("");
    99          return super.visit(node, data);  //To change body of implemented methods use File | Settings | File Templates.
    100     }
    101 */
    102
    103 }