1 19 20 25 26 27 package soot.jimple.parser; 28 29 import soot.baf.*; 30 import soot.*; 31 import soot.jimple.*; 32 import soot.util.*; 33 34 import soot.jimple.parser.parser.*; 35 import soot.jimple.parser.lexer.*; 36 import soot.jimple.parser.node.*; 37 import soot.jimple.parser.analysis.*; 38 39 import java.io.*; 40 import java.util.*; 41 42 43 47 48 class CstPoolExtractor 49 { 50 51 private Set mRefTypes = null; 52 private Start mParseTree; 53 54 public CstPoolExtractor(Start parseTree) 55 { 56 mParseTree = parseTree; 57 } 58 59 public Set getCstPool() 60 { 61 if(mRefTypes == null) { 62 mRefTypes = new HashSet(); 63 CstPoolExtractorWalker walker = new CstPoolExtractorWalker(); 64 mParseTree.apply(walker); 65 mParseTree = null; } 67 return mRefTypes; 68 } 69 70 71 private class CstPoolExtractorWalker extends DepthFirstAdapter 72 { 73 CstPoolExtractorWalker() 74 { 75 } 76 77 public void inStart(Start node) 78 { 79 defaultIn(node); 80 } 81 82 83 public void outAQuotedClassName(AQuotedClassName node) 84 { 85 String tokenString = node.getQuotedName().getText(); 86 tokenString = tokenString.substring(1, tokenString.length() -1 ); 87 tokenString = StringTools.getUnEscapedStringOf(tokenString); 88 89 mRefTypes.add(tokenString); 90 91 } 92 93 public void outAIdentClassName(AIdentClassName node) 94 { 95 String tokenString = node.getIdentifier().getText(); 96 tokenString = StringTools.getUnEscapedStringOf(tokenString); 97 98 mRefTypes.add(tokenString); 99 } 100 101 public void outAFullIdentClassName(AFullIdentClassName node) 102 { 103 String tokenString = node.getFullIdentifier().getText(); 104 tokenString = StringTools.getUnEscapedStringOf(tokenString); 105 106 mRefTypes.add(tokenString); 107 } 108 109 public void outAQuotedNonvoidType(AQuotedNonvoidType node) 110 { 111 String tokenString = node.getQuotedName().getText(); 112 tokenString = tokenString.substring(1, tokenString.length() -1 ); 113 tokenString = StringTools.getUnEscapedStringOf(tokenString); 114 115 mRefTypes.add(tokenString); 116 } 117 118 public void outAFullIdentNonvoidType(AFullIdentNonvoidType node) 119 { 120 String tokenString = node.getFullIdentifier().getText(); 121 tokenString = StringTools.getUnEscapedStringOf(tokenString); 122 123 mRefTypes.add(tokenString); 124 } 125 126 public void outAIdentNonvoidType(AIdentNonvoidType node) 127 { 128 String tokenString = node.getIdentifier().getText(); 129 tokenString = StringTools.getUnEscapedStringOf(tokenString); 130 131 mRefTypes.add(tokenString); 132 } 133 } 134 } 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | Popular Tags |