X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=blobdiff_plain;f=Repair%2FRepairCompiler%2FMCC%2FIR%2FDependencyBuilder.java;h=4184851ff898c430b870550f208d92a6d12ee24f;hp=975ea606a17d0a58b2f09d4a57362e00727deb8d;hb=HEAD;hpb=cbe945a51aa2e383c3ab5d14024a4a2edea4c84a diff --git a/Repair/RepairCompiler/MCC/IR/DependencyBuilder.java b/Repair/RepairCompiler/MCC/IR/DependencyBuilder.java index 975ea60..4184851 100755 --- a/Repair/RepairCompiler/MCC/IR/DependencyBuilder.java +++ b/Repair/RepairCompiler/MCC/IR/DependencyBuilder.java @@ -14,8 +14,7 @@ public class DependencyBuilder { } public void calculate() { - - /* reinitialize (clear) nodes */ + /* reinitialize (clear) nodes */ constraintnodes = new Hashtable(); rulenodes = new Hashtable(); @@ -33,6 +32,8 @@ public class DependencyBuilder { Iterator targets = inclusion.getTargetDescriptors().iterator(); String additionallabel = new String(); + /* #ATTN#: is this meant to be while, not if? */ + /* perhaps there is only one descriptor for targets */ if (targets.hasNext()) { Descriptor d = (Descriptor)targets.next(); additionallabel = "\\n" + d.getSymbol(); @@ -57,6 +58,7 @@ public class DependencyBuilder { Rule rule = (Rule) rules.elementAt(i); GraphNode rulenode = (GraphNode) rulenodes.get(rule.getLabel()); Set requiredsymbols = rule.getRequiredDescriptors(); + requiredsymbols.addAll(rule.getInclusion().getRequiredDescriptors()); for (int j = 0; j < rules.size(); j++) { @@ -76,7 +78,7 @@ public class DependencyBuilder { otherrulenode.addEdge(new GraphNode.Edge(d.getSymbol(), rulenode)); } } - } + } } /* build constraint->rule dependencies */ @@ -106,77 +108,12 @@ public class DependencyBuilder { edge.setDotNodeParameters("style=dotted"); otherrulenode.addEdge(edge); } - } - } + } + } } /* store results in state */ state.rulenodes = rulenodes; state.constraintnodes = constraintnodes; } - - static class IntegerLattice { - - boolean top; - boolean isNum; - int num; - - public static final IntegerLattice TOP = new IntegerLattice(true); - public static final IntegerLattice BOT = new IntegerLattice(false); - - private IntegerLattice(boolean top) { - this.top = top; - isNum = false; - } - - public IntegerLattice(int num) { - isNum = true; - this.num = num; - } - - } - - public IntegerLattice setSize(SetDescriptor sd) { - String setname = sd.getSymbol(); - - if (setname.equals("Block")) { - return IntegerLattice.TOP; - } else if (setname.equals("UsedBlock")) { - return IntegerLattice.TOP; - } else if (setname.equals("FreeBlock")) { - return IntegerLattice.TOP; - } else if (setname.equals("Inode")) { - return IntegerLattice.TOP; - } else if (setname.equals("UsedInode")) { - return IntegerLattice.TOP; - } else if (setname.equals("FileInode")) { - return IntegerLattice.TOP; - } else if (setname.equals("DirectoryInode")) { - return new IntegerLattice(1); - } else if (setname.equals("RootDirectoryInode")) { - return new IntegerLattice(1); - } else if (setname.equals("SuperBlock")) { - return new IntegerLattice(1); - } else if (setname.equals("GroupBlock")) { - return new IntegerLattice(1); - } else if (setname.equals("FileDirectoryBlock")) { - return IntegerLattice.TOP; - } else if (setname.equals("InodeTableBlock")) { - return new IntegerLattice(1); - } else if (setname.equals("InodeBitmapBlock")) { - return new IntegerLattice(1); - } else if (setname.equals("BlockBitmapBlock")) { - return new IntegerLattice(1); - } else if (setname.equals("DirectoryBlock")) { - return new IntegerLattice(0); - } else if (setname.equals("FileBlock")) { - return IntegerLattice.TOP; - } else if (setname.equals("DirectoryEntry")) { - return IntegerLattice.TOP; - } else { - throw new IRException(); - } - - } - }