package eu.bibl.cfide.engine.compiler.builder.cfideimpl;
import java.util.HashMap;
import java.util.Map;
import org.objectweb.asm.tree.LabelNode;
public class LabelHandler {
protected Map<String, LabelNode> labels = new HashMap<String, LabelNode>();
public LabelNode resolveLabel(String s) {
s = formatLabel(s);
if (labels.containsKey(s)) {
return labels.get(s);
} else {
LabelNode ln = new LabelNode();
labels.put(s, ln);
return ln;
}
}
public String formatLabel(String s) {
if (s.endsWith(":"))
return s.substring(0, s.length() - 1);
return s;
}
protected LabelNode lastLabel;
public LabelNode getLastLabel() {
return lastLabel;
}
public LabelNode retreiveLabel(String s) {
s = formatLabel(s);
return lastLabel = labels.get(s);
}
public void reset() {
labels.clear();
}
}