From 312a3d1c3b3dddc26a8a5a7e2ec0e0c393d80814 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Tue, 2 Nov 2004 22:59:39 +0000 Subject: [PATCH 1/1] Fix grammar and Sum bug. --- Repair/RepairCompiler/MCC/CDL.cup | 25 ++++++++++++++++------- Repair/RepairCompiler/MCC/IR/SumExpr.java | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Repair/RepairCompiler/MCC/CDL.cup b/Repair/RepairCompiler/MCC/CDL.cup index 12b94a4..6de3880 100755 --- a/Repair/RepairCompiler/MCC/CDL.cup +++ b/Repair/RepairCompiler/MCC/CDL.cup @@ -213,7 +213,8 @@ nonterminal ParseNode setexpr; nonterminal ParseNode compare; nonterminal ParseNode expr; -nonterminal ParseNode operator; +nonterminal ParseNode addsuboperator; +nonterminal ParseNode multdivoperator; @@ -530,7 +531,7 @@ expr ::= RESULT = relation.getRoot(); :} - | expr:expr1 operator:operator expr:expr2 + | expr:expr1 addsuboperator:operator expr:expr2 {: debugMessage(PRODSTRING); ParseNode op = (new ParseNode("expr", parser.curLine(3))).addChild("operator"); @@ -539,7 +540,17 @@ expr ::= op.addChild("right", parser.curLine(1)).addChild(expr2); RESULT = op.getRoot(); :} - + %prec ADD + | expr:expr1 multdivoperator:operator expr:expr2 + {: + debugMessage(PRODSTRING); + ParseNode op = (new ParseNode("expr", parser.curLine(3))).addChild("operator"); + op.addChild("op").addChild(operator); + op.addChild("left", parser.curLine(3)).addChild(expr1); + op.addChild("right", parser.curLine(1)).addChild(expr2); + RESULT = op.getRoot(); + :} + %prec MULT | SIZEOF OPENPAREN setexpr:setexpr CLOSEPAREN {: ParseNode sizeof = (new ParseNode("expr", parser.curLine(4))).addChild("sizeof"); @@ -548,7 +559,7 @@ expr ::= :} ; -operator ::= +addsuboperator ::= ADD {: @@ -561,13 +572,13 @@ operator ::= debugMessage(PRODSTRING); RESULT = new ParseNode("sub", parser.curLine(1)); :} - - | MULT + ; +multdivoperator ::= + MULT {: debugMessage(PRODSTRING); RESULT = new ParseNode("mult", parser.curLine(1)); :} - | DIV {: debugMessage(PRODSTRING); diff --git a/Repair/RepairCompiler/MCC/IR/SumExpr.java b/Repair/RepairCompiler/MCC/IR/SumExpr.java index c2b30ff..64c336d 100755 --- a/Repair/RepairCompiler/MCC/IR/SumExpr.java +++ b/Repair/RepairCompiler/MCC/IR/SumExpr.java @@ -72,7 +72,7 @@ public class SumExpr extends Expr { VarDescriptor newset=VarDescriptor.makeNew("newset"); writer.addDeclaration("struct SimpleHash *",newset.getSafeSymbol()); - writer.outputline(newset.getSafeSymbol()+"=SimpleHashimageSet("+rd.getSafeSymbol()+"_hash, "+keyvd.getSafeSymbol()+", &"+tmpvar.getSafeSymbol()+");"); + writer.outputline(newset.getSafeSymbol()+"=SimpleHashimageSet("+rd.getSafeSymbol()+"_hash, "+keyvd.getSafeSymbol()+");"); VarDescriptor itvd2=VarDescriptor.makeNew("iterator"); writer.addDeclaration("struct SimpleIterator",itvd2.getSafeSymbol()); -- 2.34.1