Committing pretty printer fix.
[repair.git] / Repair / RepairCompiler / MCC / IR / ImageSetExpr.java
index e1aec13de9a07744e9eed9c78827e8f8ab682dd7..5586b47fd6d15c9bff4f01b0d6d9709d80feea20 100755 (executable)
@@ -45,7 +45,7 @@ public class ImageSetExpr extends SetExpr {
     public String name() {
        String name="";
        if (isimageset)
-           name+=ise.name();
+           name+=ise.name()+".";
        else
            name+=vd.toString()+".";
        if (inverse)
@@ -122,14 +122,16 @@ public class ImageSetExpr extends SetExpr {
     }
 
     public void generate_inclusion(CodeWriter writer, VarDescriptor dest, VarDescriptor element) {
-        String hash = inverse ? "_hashinv->contains(" : "_hash->contains(" ;
+        String hash = inverse ? "_hashinv, " : "_hash, " ;
        if (!isimageset) {
-           writer.outputline("int " + dest.getSafeSymbol() + " = " + rd.getSafeSymbol() + hash + vd.getSafeSymbol() + ", " + element.getSafeSymbol() + ");");
+           writer.addDeclaration("int", dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol() + " = SimpleHashcontainskeydata(" + rd.getSafeSymbol() + hash + vd.getSafeSymbol() + ", " + element.getSafeSymbol() + ");");
        } else {
            VarDescriptor newset=VarDescriptor.makeNew("newset");
            generate_set(writer,newset);
-           writer.outputline("int "+dest.getSafeSymbol()+"="+newset.getSafeSymbol()+"->contains("+element.getSafeSymbol()+");");
-           writer.outputline("delete "+newset.getSafeSymbol()+";");
+           writer.addDeclaration("int", dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+"=SimpleHashcontainskey("+newset.getSafeSymbol()+","+element.getSafeSymbol()+");");
+           writer.outputline("freeSimpleHash("+newset.getSafeSymbol()+");");
        }
     }
 
@@ -137,53 +139,60 @@ public class ImageSetExpr extends SetExpr {
         assert dest != null;
         assert rd != null;
        if (!isimageset) {
-           String hash = inverse ? "_hashinv->count(" : "_hash->count(" ;
-           writer.outputline("int " + dest.getSafeSymbol() + " = " + rd.getSafeSymbol() + hash + vd.getSafeSymbol() + ");");
+           String hash = inverse ? "_hashinv, " : "_hash, " ;
+           writer.addDeclaration("int", dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol() + " = SimpleHashcount(" + rd.getSafeSymbol() + hash + vd.getSafeSymbol() + ");");
        } else {
            VarDescriptor newset=VarDescriptor.makeNew("newset");
            generate_set(writer,newset);
-           writer.outputline("int "+dest.getSafeSymbol()+"="+newset.getSafeSymbol()+"->count();");
-           writer.outputline("delete "+newset.getSafeSymbol()+";");
-       } 
+           writer.addDeclaration("int", dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+"=SimpleHashcountset("+newset.getSafeSymbol()+");");
+           writer.outputline("freeSimpleHash("+newset.getSafeSymbol()+");");
+       }
     }
 
     public void generate_leftside(CodeWriter writer, VarDescriptor dest) {
        if (!isimageset) {
-           writer.outputline(vd.getType().getGenerateType()+" "+dest.getSafeSymbol()+" = "+vd.getSafeSymbol()+";");
+           writer.addDeclaration(vd.getType().getGenerateType().toString(), dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+" = "+vd.getSafeSymbol()+";");
        } else {
            VarDescriptor iseset=VarDescriptor.makeNew("set");
            ise.generate_set(writer,iseset);
-           writer.outputline("int "+dest.getSafeSymbol()+" = "+iseset.getSafeSymbol()+"->firstkey();");
-           writer.outputline("delete "+iseset.getSafeSymbol()+";");
+           writer.addDeclaration("int",dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+" = SimpleHashfirstkey("+iseset.getSafeSymbol()+");");
+           writer.outputline("freeSimpleHash("+iseset.getSafeSymbol()+");");
        }
     }
 
     public void generate_set(CodeWriter writer, VarDescriptor dest) {
        if (!isimageset) {
-           String hash = inverse ? "_hashinv->imageSet(" : "_hash->imageSet(" ;
-           writer.outputline("SimpleHash * "+dest.getSafeSymbol()+"="+rd.getSafeSymbol()+hash+vd.getSafeSymbol()+");");
+           String hash = inverse ? "_hashinv, " : "_hash, " ;
+           writer.addDeclaration("struct SimpleHash *",dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+"=SimpleHashimageSet("+rd.getSafeSymbol()+hash+vd.getSafeSymbol()+");");
        } else {
            VarDescriptor iseset=VarDescriptor.makeNew("set");
            ise.generate_set(writer,iseset);
 
            VarDescriptor itvd=VarDescriptor.makeNew("iterator");
-           writer.outputline("SimpleIterator "+itvd.getSafeSymbol()+";");
-           writer.outputline(iseset.getSafeSymbol()+"->iterator("+itvd.getSafeSymbol()+");");
+           writer.addDeclaration("struct SimpleIterator",itvd.getSafeSymbol());
+           writer.outputline("SimpleHashiterator("+iseset.getSafeSymbol()+",&"+itvd.getSafeSymbol()+");");
+           writer.addDeclaration("struct SimpleHash *", dest.getSafeSymbol());
+           writer.outputline(dest.getSafeSymbol()+"=allocateSimpleHash(10);");
+           writer.outputline("while (hasNext(&"+itvd.getSafeSymbol()+")) {");
 
-           writer.outputline("SimpleHash *"+dest.getSafeSymbol()+"=new SimpleHash(10);");
-           writer.outputline("while ("+itvd.getSafeSymbol()+".hasNext()) {");
-           
            VarDescriptor keyvd=VarDescriptor.makeNew("key");
-           
-           writer.outputline("int "+keyvd.getSafeSymbol()+"="+itvd.getSafeSymbol()+".next();");
-           String hash = inverse ? "_hashinv->imageSet(" : "_hash->imageSet(" ;
+
+           writer.addDeclaration("int",keyvd.getSafeSymbol());
+           writer.outputline(keyvd.getSafeSymbol()+"=next(&"+itvd.getSafeSymbol()+");");
+           String hash = inverse ? "_hashinv, " : "_hash, " ;
            VarDescriptor newset=VarDescriptor.makeNew("newset");
-           writer.outputline("SimpleHash * "+newset.getSafeSymbol()+"="+rd.getSafeSymbol()+hash+keyvd.getSafeSymbol()+");");
-           writer.outputline(dest.getSafeSymbol()+"->addAll("+newset.getSafeSymbol()+");");
-           writer.outputline("delete "+newset.getSafeSymbol()+";");
+           writer.addDeclaration("struct SimpleHash *", newset.getSafeSymbol());
+           writer.outputline(newset.getSafeSymbol()+"=SimpleHashimageSet("+rd.getSafeSymbol()+hash+keyvd.getSafeSymbol()+");");
+           writer.outputline("SimpleHashaddAll("+dest.getSafeSymbol()+", "+ newset.getSafeSymbol()+");");
+           writer.outputline("freeSimpleHash("+newset.getSafeSymbol()+");");
            writer.outputline("}");
-           writer.outputline("delete "+iseset.getSafeSymbol()+";");
-       } 
+           writer.outputline("freeSimpleHash("+iseset.getSafeSymbol()+");");
+       }
     }
 
     public void prettyPrint(PrettyPrinter pp) {