From: bdemsky Date: Wed, 27 Oct 2004 19:30:29 +0000 (+0000) Subject: Bug fixes for parsing sum expressions. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=commitdiff_plain;h=b840422ac7138ec6b3e2c159be50256b82ec7e3b Bug fixes for parsing sum expressions. --- diff --git a/Repair/RepairCompiler/MCC/CDL.cup b/Repair/RepairCompiler/MCC/CDL.cup index f491a6e..12b94a4 100755 --- a/Repair/RepairCompiler/MCC/CDL.cup +++ b/Repair/RepairCompiler/MCC/CDL.cup @@ -482,9 +482,10 @@ expr ::= SUM OPENPAREN ID:set DOT ID:relation CLOSEPAREN {: debugMessage(PRODSTRING); - ParseNode expr = new ParseNode("sumexpr", parser.curLine(3)); - expr.addChild("dot").addChild("set", parser.curLine(3)).addChild(set); - expr.getChild("dot").addChild("relation", parser.curLine(1)).addChild(relation); + ParseNode expr = new ParseNode("expr", parser.curLine(1)); + expr.addChild("sumexpr", parser.curLine(3)); + expr.getChild("sumexpr").addChild("dot").addChild("set", parser.curLine(3)).addChild(set); + expr.getChild("sumexpr").getChild("dot").addChild("relation", parser.curLine(1)).addChild(relation); RESULT = expr; :} diff --git a/Repair/RepairCompiler/MCC/IR/SemanticChecker.java b/Repair/RepairCompiler/MCC/IR/SemanticChecker.java index 734f6d0..b7f3479 100755 --- a/Repair/RepairCompiler/MCC/IR/SemanticChecker.java +++ b/Repair/RepairCompiler/MCC/IR/SemanticChecker.java @@ -1412,7 +1412,7 @@ public class SemanticChecker { if (!precheck(pn, "sumexpr")) { return null; } - String setname = pn.getChild("set").getTerminal(); + String setname = pn.getChild("dot").getChild("set").getTerminal(); assert setname != null; SetDescriptor sd = lookupSet(setname); diff --git a/Repair/RepairCompiler/MCC/IR/SumExpr.java b/Repair/RepairCompiler/MCC/IR/SumExpr.java index a03338e..34457c3 100755 --- a/Repair/RepairCompiler/MCC/IR/SumExpr.java +++ b/Repair/RepairCompiler/MCC/IR/SumExpr.java @@ -17,7 +17,7 @@ public class SumExpr extends Expr { } public String name() { - return "sum("+sd.getSafeSymbol()+"."+rd.getSafeSymbol()+")"; + return "sum("+sd.toString()+"."+rd.toString()+")"; } public boolean equals(Map remap, Expr e) { @@ -39,7 +39,7 @@ public class SumExpr extends Expr { } public Descriptor getDescriptor() { - throw new Error(); + throw new Error("Sum shouldn't appear on left hand side!"); } public boolean inverted() { @@ -59,9 +59,9 @@ public class SumExpr extends Expr { public void prettyPrint(PrettyPrinter pp) { pp.output("sum("); - pp.output(sd.getSafeSymbol()); + pp.output(sd.toString()); pp.output("."); - pp.output(rd.getSafeSymbol()); + pp.output(rd.toString()); pp.output(")"); }