summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis
diff options
context:
space:
mode:
authorGravatar jeff2015-03-10 00:55:03 -0400
committerGravatar jeff2015-03-10 00:55:03 -0400
commit430df87ba5d855ca29bc53a5765a2862d2209098 (patch)
treeee427f009da8b29e7a66a4b4ce882120f9bb2cbf /src/cuchaz/enigma/analysis
parentfield matcher is starting to be useful (diff)
downloadenigma-fork-430df87ba5d855ca29bc53a5765a2862d2209098.tar.gz
enigma-fork-430df87ba5d855ca29bc53a5765a2862d2209098.tar.xz
enigma-fork-430df87ba5d855ca29bc53a5765a2862d2209098.zip
tweaks and improvements to field matching gui
Diffstat (limited to 'src/cuchaz/enigma/analysis')
-rw-r--r--src/cuchaz/enigma/analysis/SourceIndex.java8
-rw-r--r--src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java10
2 files changed, 13 insertions, 5 deletions
diff --git a/src/cuchaz/enigma/analysis/SourceIndex.java b/src/cuchaz/enigma/analysis/SourceIndex.java
index b3fb751..8f751ef 100644
--- a/src/cuchaz/enigma/analysis/SourceIndex.java
+++ b/src/cuchaz/enigma/analysis/SourceIndex.java
@@ -32,9 +32,15 @@ public class SourceIndex {
32 private Multimap<EntryReference<Entry,Entry>,Token> m_referenceToTokens; 32 private Multimap<EntryReference<Entry,Entry>,Token> m_referenceToTokens;
33 private Map<Entry,Token> m_declarationToToken; 33 private Map<Entry,Token> m_declarationToToken;
34 private List<Integer> m_lineOffsets; 34 private List<Integer> m_lineOffsets;
35 private boolean m_ignoreBadTokens;
35 36
36 public SourceIndex(String source) { 37 public SourceIndex(String source) {
38 this(source, true);
39 }
40
41 public SourceIndex(String source, boolean ignoreBadTokens) {
37 m_source = source; 42 m_source = source;
43 m_ignoreBadTokens = ignoreBadTokens;
38 m_tokenToReference = Maps.newTreeMap(); 44 m_tokenToReference = Maps.newTreeMap();
39 m_referenceToTokens = HashMultimap.create(); 45 m_referenceToTokens = HashMultimap.create();
40 m_declarationToToken = Maps.newHashMap(); 46 m_declarationToToken = Maps.newHashMap();
@@ -83,7 +89,7 @@ public class SourceIndex {
83 // System.out.println( String.format( "%s \"%s\" region: %s", node.getNodeType(), name, region ) ); 89 // System.out.println( String.format( "%s \"%s\" region: %s", node.getNodeType(), name, region ) );
84 90
85 // if the token has a $ in it, something's wrong. Ignore this token 91 // if the token has a $ in it, something's wrong. Ignore this token
86 if (name.lastIndexOf('$') >= 0) { 92 if (name.lastIndexOf('$') >= 0 && m_ignoreBadTokens) {
87 // DEBUG 93 // DEBUG
88 System.err.println(String.format("WARNING: %s \"%s\" is probably a bad token. It was ignored", node.getNodeType(), name)); 94 System.err.println(String.format("WARNING: %s \"%s\" is probably a bad token. It was ignored", node.getNodeType(), name));
89 return null; 95 return null;
diff --git a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
index a9a055b..eb120b6 100644
--- a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
+++ b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
@@ -111,10 +111,12 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor {
111 @Override 111 @Override
112 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { 112 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) {
113 ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); 113 ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION);
114 MethodDefinition methodDef = (MethodDefinition)def.getMethod(); 114 if (def.getMethod() instanceof MethodDefinition) {
115 BehaviorEntry behaviorEntry = EntryFactory.getBehaviorEntry(methodDef); 115 MethodDefinition methodDef = (MethodDefinition)def.getMethod();
116 ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, def.getPosition(), node.getName()); 116 BehaviorEntry behaviorEntry = EntryFactory.getBehaviorEntry(methodDef);
117 index.addDeclaration(node.getNameToken(), argumentEntry); 117 ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, def.getPosition(), node.getName());
118 index.addDeclaration(node.getNameToken(), argumentEntry);
119 }
118 120
119 return recurse(node, index); 121 return recurse(node, index);
120 } 122 }