add Fleet.getDefaultImpl() and use it in Makefile
[fleet.git] / src / edu / berkeley / fleet / Main.java
index 42f678f..885e0c1 100644 (file)
@@ -34,15 +34,7 @@ public class Main {
         }
 
         String target = options.get("target");
-        Fleet fleet;
-        if ("fpga".equals(target)) {
-            String bitfile = options.get("bitfile");
-            fleet = new Fpga();
-        } else if ("sim".equals(target) || "fleetsim".equals(target)) {
-            fleet = (Fleet)Class.forName("com.sunlabs.fleetsim.fleet.FleetDescription").newInstance();
-        } else {
-            fleet = new Interpreter();
-        }
+        Fleet fleet = Fleet.getDefaultImpl();
 
         if (!"yes".equals(options.get("verbose")))
             Log.log = null;
@@ -59,9 +51,9 @@ public class Main {
             if (name.endsWith(".ship"))
                 name = name.substring(0, name.length() - ".ship".length());
             if (fleet instanceof edu.berkeley.fleet.fpga.Fpga) {
-                ((edu.berkeley.fleet.fpga.Fpga)fleet).expand(new ShipDescription(name, new BufferedReader(new InputStreamReader(new FileInputStream(args.get(0))))));
+                ((edu.berkeley.fleet.fpga.Fpga)fleet).expand(new ShipDescription(fleet, name, new BufferedReader(new InputStreamReader(new FileInputStream(args.get(0))))));
             } else {
-                ((Interpreter)fleet).expand(new ShipDescription(name, new BufferedReader(new InputStreamReader(new FileInputStream(args.get(0))))));
+                ((Interpreter)fleet).expand(new ShipDescription(fleet, name, new BufferedReader(new InputStreamReader(new FileInputStream(args.get(0))))));
             }
 
         } else if (command.equals("doc")) {
@@ -72,7 +64,7 @@ public class Main {
             for(String ss = br.readLine(); ss!=null; ss = br.readLine())
                 pw.println(ss);
             for(String f : new File("ships").list()) {
-                new ShipDescription(f, new BufferedReader(new InputStreamReader(new FileInputStream(new File("ships/"+f))))).printTeX(pw);
+                new ShipDescription(fleet, f, new BufferedReader(new InputStreamReader(new FileInputStream(new File("ships/"+f))))).printTeX(pw);
             }
             pw.println("\\end{document}");
             pw.close();
@@ -153,7 +145,7 @@ public class Main {
         } else if (f.getPath().endsWith(".fleet") || f.getPath().endsWith(".test")) {
             runTest(fleet, new InputStreamReader(new FileInputStream(f)), f.getPath());
         } else if (f.getPath().endsWith(".ship")) {
-            ShipDescription sd = new ShipDescription(f.getName(), new BufferedReader(new InputStreamReader(new FileInputStream(f))));
+            ShipDescription sd = new ShipDescription(fleet, f.getName(), new BufferedReader(new InputStreamReader(new FileInputStream(f))));
             String testsection = sd.getSection("test");
             if (testsection == null)
                 System.out.println("no test for " + sd.getName() + "!");