X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FCommandLine.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FCommandLine.java;h=ca9086dd7dd82cd8256015bda1d3308717f7b477;hp=0000000000000000000000000000000000000000;hb=9406152ce9e037b07b6b832b1535d17ee6aefa45;hpb=688306d0a14d09b5c49811c73f18f11c098f57a2 diff --git a/src/edu/berkeley/sbp/misc/CommandLine.java b/src/edu/berkeley/sbp/misc/CommandLine.java new file mode 100644 index 0000000..ca9086d --- /dev/null +++ b/src/edu/berkeley/sbp/misc/CommandLine.java @@ -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 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); + } + } + + +}