public final HashMap<String, SpecConstruct> CPLabel2Construct;
public final HashMap<String, SpecConstruct> potentialCPLabel2Construct;
public final HashMap<String, SpecConstruct> interfaceName2Construct;
+ public final HashMap<String, ArrayList<InterfaceConstruct>> CPLabel2InterfaceConstruct;
public final HashSet<DefineVar> defineVars;
public SemanticsChecker(ArrayList<SpecConstruct> constructs) {
this.CPLabel2Construct = new HashMap<String, SpecConstruct>();
this.potentialCPLabel2Construct = new HashMap<String, SpecConstruct>();
this.interfaceName2Construct = new HashMap<String, SpecConstruct>();
+ this.CPLabel2InterfaceConstruct = new HashMap<String, ArrayList<InterfaceConstruct>>();
this.defineVars = new HashSet<DefineVar>();
}
DefineVar var = iConstruct.action.defineVars.get(j);
var.renameVarName("__" + iConstruct.name + "_" + var.varName + "__");
}
+
+ for (int j = 0; j < iConstruct.commitPointSet.size(); j++) {
+ String label = iConstruct.commitPointSet.get(j);
+ if (!CPLabel2InterfaceConstruct.containsKey(label)) {
+ CPLabel2InterfaceConstruct.put(label, new ArrayList<InterfaceConstruct>());
+ }
+ CPLabel2InterfaceConstruct.get(label).add(iConstruct);
+ }
}
}