/** an implementation of Token for streams of Java <tt>char</tt> values */
public class CharToken implements IntegerMappable {
- public static class CharToStringParser extends Parser<CharToken,String> {
- public CharToStringParser(Union u) { super(u, new IntegerTopology<CharToken>()); }
- public Forest<String> shiftToken(CharToken ct, Location loc) {
- return Forest.create(loc, ct.result(), null, false, false);
- }
- }
-
public static class CharRange extends Atom<CharToken> {
private String esc(char c) { return StringUtil.escapify(c+"", "[]-~\\\"\'"); }
private Topology<CharToken> t;
}
out.append("\n // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED\n");
- new CharToken.CharToStringParser(MetaGrammar.make()).parse(new CharToken.Stream(new InputStreamReader(new FileInputStream(args[0])))).expand1().toJava(out);
+ new CharToStringParser(MetaGrammar.make()).parse(new FileInputStream(args[0])).expand1().toJava(out);
out.append("\n // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED\n");
for(String s = br.readLine(); s != null; s = br.readLine()) out.append(s+"\n");
//MetaGrammar mg0 = new MetaGrammar();
//mg0.walk(MetaGrammar.meta);
//System.out.println(mg0);
- Tree<String> res = new CharToken.CharToStringParser(MetaGrammar.make()).parse(new CharToken.Stream(new InputStreamReader(new FileInputStream(s[0])))).expand1();
+ Tree<String> res = new CharToStringParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1();
MetaGrammar mg = (MetaGrammar)new MetaGrammar().walk(res);
//System.out.println(mg);
Union meta = mg.done();
SequenceInputStream sis = new SequenceInputStream(new FileInputStream(s[0]), new FileInputStream(s[1]));
- res = new CharToken.CharToStringParser(meta).parse(new CharToken.Stream(new InputStreamReader(sis), "parsing " + s[1] + " using " + s[0])).expand1();
+ res = new CharToStringParser(meta).parse(sis).expand1();
Union testcasegrammar = ((MetaGrammar)new MetaGrammar("ts").walk(res)).done("ts");
if (testcasegrammar==null) return;
- CharToken.Stream cs = new CharToken.Stream(new InputStreamReader(new FileInputStream(s[2])), "parsing " + s[2] + " using " + s[1]);
- Parser parser = new CharToken.CharToStringParser(testcasegrammar);
+ CharToStringParser parser = new CharToStringParser(testcasegrammar);
if (profile) {
System.out.println("\nready...");
}
System.gc();
long now = System.currentTimeMillis();
- Forest<String> r2 = parser.parse(cs);
+ Forest<String> r2 = parser.parse(new FileInputStream(s[2]));
System.out.println();
System.out.println("elapsed = " + (System.currentTimeMillis()-now) + "ms");
if (profile) {
Forest<String> res = null;
ParseFailed pfe = null;
try {
- res = new CharToken.CharToStringParser(grammar).parse(inp);
+ res = new CharToStringParser(grammar).parse(inp);
} catch (ParseFailed pf) {
pfe = pf;
}
+++ /dev/null
-package edu.berkeley.sbp.tib;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.util.*;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.Sequence.Position;
-import edu.berkeley.sbp.*;
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-import java.lang.ref.*;
-
-public class Braces {}/*extends Union {
-
- private static final Element left = CharToken.string("{");
- private static final Element right = CharToken.string("}");
-
- public static String join(Object[] e) {
- StringBuffer ret = new StringBuffer();
- for(int i=0; i<e.length; i++) {
- if (i>0) ret.append(" ");
- ret.append(e[i]);
- }
- return ret.toString();
- }
-
- public Braces(Element[] e, Element sep) {
- super("{"+join(e)+"}");
- Element[] e2 = new Element[sep == null ? e.length+2 : e.length + 4];
- e2[0] = left;
- e2[e2.length-1] = right;
- if (sep != null) {
- e2[1] = sep;
- e2[e2.length-2] = sep;
- }
- for(int i=0; i<e.length; i++) e2[i+(sep==null ? 1 : 2)] = e[i];
- addAlternative(new Sequence.Singleton(e2));
- addAlternative(new Sequence.Singleton(sep==null ? new Element[] { left, this, right} : new Element[] { left, sep, this, sep, right }));
- }
-}
- */
}
}
+ /*
+public class Braces extends Union {
+
+ private static final Element left = CharToken.string("{");
+ private static final Element right = CharToken.string("}");
+
+ public static String join(Object[] e) {
+ StringBuffer ret = new StringBuffer();
+ for(int i=0; i<e.length; i++) {
+ if (i>0) ret.append(" ");
+ ret.append(e[i]);
+ }
+ return ret.toString();
+ }
+
+ public Braces(Element[] e, Element sep) {
+ super("{"+join(e)+"}");
+ Element[] e2 = new Element[sep == null ? e.length+2 : e.length + 4];
+ e2[0] = left;
+ e2[e2.length-1] = right;
+ if (sep != null) {
+ e2[1] = sep;
+ e2[e2.length-2] = sep;
+ }
+ for(int i=0; i<e.length; i++) e2[i+(sep==null ? 1 : 2)] = e[i];
+ addAlternative(new Sequence.Singleton(e2));
+ addAlternative(new Sequence.Singleton(sep==null ? new Element[] { left, this, right} : new Element[] { left, sep, this, sep, right }));
+ }
+}
+ */
+
}
public static void main(String[] s) throws Exception {
System.out.println("parsing " + s[0]);
- Tree<String> res = new CharToken.CharToStringParser(MetaGrammar.make()).parse(new CharToken.Stream(new FileInputStream(s[0]))).expand1();
+ Tree<String> res = new CharToStringParser(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 CharToken.CharToStringParser(mg).parse(new Tib(new FileInputStream(s[1])));
+ Forest f = new CharToStringParser(mg).parse(new Tib(new FileInputStream(s[1])));
System.out.println();
System.out.println(f);