resolved some conflicts, added CommandLine
[sbp.git] / src / edu / berkeley / sbp / misc / CommandLine.java
diff --git a/src/edu/berkeley/sbp/misc/CommandLine.java b/src/edu/berkeley/sbp/misc/CommandLine.java
new file mode 100644 (file)
index 0000000..ca9086d
--- /dev/null
@@ -0,0 +1,43 @@
+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
+package edu.berkeley.sbp.misc;
+
+import edu.berkeley.sbp.*;
+import edu.berkeley.sbp.misc.*;
+import edu.berkeley.sbp.meta.*;
+import edu.berkeley.sbp.chr.*;
+import java.io.*;
+
+public class CommandLine {
+
+    public static void main(String[] argv) throws Throwable {
+        String grammarFile = argv[0];
+        String targetFile = argv[1];
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try {
+            System.setErr(new PrintStream(baos));
+            Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
+            Union meta = Grammar.create(res, "s",
+                                        new Grammar.Bindings() {
+                                            /*
+                                            public Sequence createSequence(Production p) {
+                                                Sequence ret = super.createSequence(p);
+                                                if (ret != null) return ret;
+                                                return Sequence.create(p.nonTerminal, p.elements, p.drops, false);
+                                            }
+                                            */
+                                        });
+            CharInput input = new CharInput(new FileInputStream(targetFile), "", true);
+            Tree ret = new CharParser(meta).parse(input).expand1();
+            if (ret==null) throw new NullPointerException("CharParser returned null");
+            System.out.println(ret);
+            System.exit(0);
+        } catch (Throwable e) {
+            e.printStackTrace();
+            System.out.println(new String(baos.toByteArray()));
+            System.exit(-1);
+        }
+    }
+
+
+}