public Forest<String> parse(InputStream is) throws IOException, ParseFailed {
return super.parse(new CharToken.Stream(is));
}
+ public Forest<String> parse(Reader r) throws IOException, ParseFailed {
+ return super.parse(new CharToken.Stream(r));
+ }
public Forest<String> shiftToken(CharToken ct, Location loc) {
return Forest.create(loc, ct.result(), null, false, false);
}
public static final CharToken left = new CharToken((char)9998);
public static final CharToken right = new CharToken((char)9999);
- static final Range.Set all = new Range.Set(new Range(0, Character.MAX_VALUE));
+ static final Range.Set all = new Range.Set(new Range(0, Character.MAX_VALUE));
public static final Atom any = new CharRange(new IntegerTopology<CharToken>(all));
public static final Atom none = new CharRange(new IntegerTopology<CharToken>());
public static IntegerTopology<CharToken> range(Range r) { return new IntegerTopology<CharToken>(r); }
}
public static class TestCase {
- private final Token.Stream inp;
- public final String input;
+ private final boolean tib;
+ public final String input;
public final String[] output;
public final Union grammar;
public TestCase(String input, String[] output, Union grammar, boolean tib) throws IOException {
- this.inp = tib
- ? new Tib(input)
- : new CharToken.Stream(new StringReader(input), input.indexOf('\n')==-1?"\""+input+"\": ":"");
+ this.tib = tib;
this.input = input;
this.output = output;
this.grammar = grammar;
Forest<String> res = null;
ParseFailed pfe = null;
try {
- res = new CharToStringParser(grammar).parse(inp);
+ res = tib
+ ? new CharToStringParser(grammar).parse(new Tib(input))
+ : new CharToStringParser(grammar).parse(new StringReader(input));
} catch (ParseFailed pf) {
pfe = pf;
}