*/
public class Compiler {
- public static boolean REPAIR=true;
+ /* Set this flag to false to turn repairs off */
+ public static boolean REPAIR=false;
public static void main(String[] args) {
State state = null;
success = parse(state) || error(state, "Parsing failed, not attempting semantic analysis.");
success = semantics(state) || error(state, "Semantic analysis failed, not attempting variable initialization.");
- if (REPAIR)
- (new ImplicitSchema(state)).update();
-
+ Termination termination=null;
+ /* Check partition constraints */
+ (new ImplicitSchema(state)).update();
+ termination=new Termination(state);
+
+ state.printall();
(new DependencyBuilder(state)).calculate();
try {
FileOutputStream dotfile;
dotfile = new FileOutputStream(cli.infile + ".dependencies.edgelabels.dot");
GraphNode.useEdgeLabels = true;
- GraphNode.DOTVisitor.visit(dotfile, nodes);
+ GraphNode.DOTVisitor.visit(dotfile, nodes);
dotfile.close();
dotfile = new FileOutputStream(cli.infile + ".dependencies.dot");
try {
FileOutputStream gcode = new FileOutputStream(cli.infile + ".cc");
+
// do model optimizations
//(new Optimizer(state)).optimize();
- NaiveGenerator ng = new NaiveGenerator(state);
- ng.generate(gcode);
- //WorklistGenerator wg = new WorklistGenerator(state);
- //wg.generate(gcode);
+
+
+ FileOutputStream gcode2 = new FileOutputStream(cli.infile + "_aux.cc");
+ FileOutputStream gcode3 = new FileOutputStream(cli.infile + "_aux.h");
+ RepairGenerator wg = new RepairGenerator(state,termination);
+ wg.generate(gcode,gcode2,gcode3, cli.infile + "_aux.h");
+ gcode2.close();
+ gcode3.close();
+ /* } else {
+ WorklistGenerator ng = new WorklistGenerator(state);
+ SetInclusion.worklist=true;
+ RelationInclusion.worklist=true;
+ ng.generate(gcode);
+ }*/
gcode.close();
} catch (Exception e) {
e.printStackTrace();
LineCount.reset();
FileInputStream infile = new FileInputStream(state.infile + ".model");
MDLParser parser = new MDLParser(new Lexer(infile));
+ parser.filename = state.infile + ".model";
CUP$MDLParser$actions.debug = state.verbose > 1 ;
state.ptModel = (ParseNode) parser.parse().value;
} catch (FileNotFoundException fnfe) {
System.err.println("Unable to open file: " + state.infile + ".space");
System.exit(-1);
} catch (Exception e) {
- // System.out.println(e);
- // e.printStackTrace();
+ System.out.println(e);
+ e.printStackTrace();
return false;
}