public class TibDoc {
public static void main(String[] s) throws Exception {
- System.out.println("parsing " + s[0]);
- Tree<String> res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1();
- MetaGrammar gram = (MetaGrammar)new Tib.Grammar().walk(res);
- //System.out.println(gram);
- Union mg = gram.done();
-
- System.out.println("\nparsing " + s[1]);
- Forest f = new CharParser(mg).parse(new Tib(new FileInputStream(s[1])));
-
- System.out.println();
- System.out.println(f);
- System.out.println();
- System.out.println(((Tree)new StringifyWalker().walk(f.expand1())).toPrettyString());
-
- String st = new HTMLWalker().walk(f.expand1()).toString();
- System.out.println(st);
- FileOutputStream fos = new FileOutputStream("out.html");
- PrintWriter p = new PrintWriter(new OutputStreamWriter(fos));
- p.println(st);
- p.flush();
- p.close();
+ try {
+ System.out.println("parsing " + s[0]);
+ Tree<String> res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1();
+ MetaGrammar gram = (MetaGrammar)new Tib.Grammar().walk(res);
+ //System.out.println(gram);
+ Union mg = gram.done();
+
+ System.out.println("\nparsing " + s[1]);
+ Forest f = new CharParser(mg).parse(new Tib(new FileInputStream(s[1])));
+
+ System.out.println();
+ System.out.println(f);
+ System.out.println();
+ System.out.println(((Tree)new StringifyWalker().walk(f.expand1())).toPrettyString());
+
+ String st = new HTMLWalker().walk(f.expand1()).toString();
+ System.out.println(st);
+ FileOutputStream fos = new FileOutputStream("out.html");
+ PrintWriter p = new PrintWriter(new OutputStreamWriter(fos));
+ p.println(st);
+ p.flush();
+ p.close();
+ } catch (Ambiguous a) {
+ FileOutputStream fos = new FileOutputStream("/Users/megacz/Desktop/out.dot");
+ PrintWriter p = new PrintWriter(new OutputStreamWriter(fos));
+ GraphViz gv = new GraphViz();
+ a.ambiguity.toGraphViz(gv);
+ gv.dump(p);
+ p.flush();
+ p.close();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
public static class StringifyWalker extends ReflectiveWalker {