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 String s = ""; 29 for (int i = 0; i < depth; i++) { 30 s += " "; 31 } 32 return s; 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 }