checkpoint
[fleet.git] / src / edu / berkeley / fleet / FleetParser.java
index 1e32059..0448252 100644 (file)
@@ -16,6 +16,9 @@ import static edu.berkeley.fleet.Instruction.IgnoreCopyTake.*;
  */
 public class FleetParser {
 
+    public static boolean dump_fabric = false;
+    public static boolean dump_code = false;
+
     public static void main(String[] s) throws Exception {
         for(int i=0; i<s.length; i++) {
             if (s[i].startsWith("--color=")) {
@@ -27,6 +30,13 @@ public class FleetParser {
                     Log.ansi_color = false;
                     continue;
                 }
+            } else if (s[i].startsWith("--dump-fabric")) {
+                dump_fabric = true;
+                continue;
+            } else if (s[i].startsWith("--dump-code")) {
+                dump_code = true;
+                continue;
+
             } else if (s[i].startsWith("--inboxes=")) {
                 String val = s[i].substring(s[i].indexOf('=')+1);
                 if (val.equals("configured")) {
@@ -49,6 +59,8 @@ public class FleetParser {
             }
             System.out.println("Fleeterpreter usage:");
             System.out.println("");
+            System.out.println("  --dump-fabric");
+            System.out.println("  --dump-code");
             System.out.println("  --color={on|off}");
             System.out.println("  --inboxes={configured|unconfigured}");
             System.out.println("  --memory={hide|show}");
@@ -85,7 +97,16 @@ public class FleetParser {
     }
 
     public void done() {
-        if (rootCodeBag != null) {
+        if (dump_fabric) {
+            fleet.dumpFabric(false);
+
+        } else if (dump_code) {
+            fleet.dumpFabric(true);
+            try {
+                rootCodeBag.dump(fleet);
+            } catch (Exception e) { throw new RuntimeException(e); }
+
+        } else if (rootCodeBag != null) {
             if (debugMemory) { fleet.dumpMem(); }
             System.out.println(rootCodeBag);
             rootCodeBag.dispatch(fleet);