private String startSymbol;
private boolean strings;
- private Element set(Range.Set r) { return CharToken.set(r); }
- private Element string(String s) { return CharToken.string(s); }
- private Topology top() { return CharToken.top(); }
- private Atom leftBrace() { return CharToken.leftBrace; }
- private Atom rightBrace() { return CharToken.rightBrace; }
+ private Element set(Range.Set r) { if (strings) throw new Error(); return CharToken.set(r); }
+ private Element string(String s) { return strings ? StringToken.string(s) : CharToken.string(s); }
+ private Atom leftBrace() { return strings ? StringToken.leftBrace : CharToken.leftBrace; }
+ private Atom rightBrace() { return strings ? StringToken.rightBrace : CharToken.rightBrace; }
public MetaGrammar() { this("s", false); }
public MetaGrammar(String s) { this(s, false); }
return nonTerminal("braced"+(anon++),
new PreSequence[][] {
new PreSequence[] {
- new PreSequence(leftBrace()),
- p,
- new PreSequence(rightBrace())
+ new PreSequence(new Element[] { leftBrace(),
+ p.buildUnion(),
+ rightBrace() })
}
},
false,