better AS1/2 parser

This commit is contained in:
Jindra Pet��k
2013-04-14 14:20:38 +02:00
parent 419696472c
commit 9c2e970e65
7 changed files with 298 additions and 118 deletions
@@ -211,6 +211,17 @@ public class ActionPush extends Action {
values = oldVal;
return ts;
}
public String paramsToStringReplaced(List<GraphSourceItem> container, List<Long> knownAddreses, List<String> constantPool, int version, boolean hex) {
if (replacement == null || replacement.size() < values.size()) {
return paramsToString();
}
List<Object> oldVal = values;
values = replacement;
String ts = paramsToString();
values = oldVal;
return ts;
}
public String toStringNoQ(int i) {
String ret = "";
@@ -242,9 +253,8 @@ public class ActionPush extends Action {
return ret;
}
@Override
public String toString() {
String ret = "Push ";
public String paramsToString(){
String ret="";
int pos = 0;
for (int i = 0; i < values.size(); i++) {
if (ignoredParts.contains(i)) {
@@ -258,6 +268,10 @@ public class ActionPush extends Action {
}
return ret;
}
@Override
public String toString() {
return "Push "+paramsToString();
}
@Override
public void translate(Stack<GraphTargetItem> stack, List<GraphTargetItem> output, java.util.HashMap<Integer, String> regNames, HashMap<String, GraphTargetItem> variables, HashMap<String, GraphTargetItem> functions) {