return ret.toString();
}
- private static HashSet<Element> dropAll = new HashSet<Element>();
+ public /*private*/ static HashSet<Element> dropAll = new HashSet<Element>();
// Statics //////////////////////////////////////////////////////////////////////////////
// MetaGrammar //////////////////////////////////////////////////////////////////////////////
+ public Union nonTerminal(String str) { return nonTerminal(str, null, false, false); }
public Union nonTerminal(String str, PreSequence[][] s, boolean synthetic, boolean dropAll) {
Union n = str.equals(startSymbol) ? g : nt.get(str);
if (n == null) nt.put(str, n = new Union(str, synthetic));
PreSequence ret = new PreSequence(o3, s);
ret.drops[o1.length] = o3.length>1;
return ret;
- } else if ("{".equals(head))
- return nonTerminal("braced"+(anon++),
- new PreSequence[][] {
- new PreSequence[] {
- new PreSequence(new Element[] { leftBrace(),
- ((PreSequence)walk(tree, 0)).buildUnion(),
- rightBrace()
- })
- }
- },
- false,
- false);
- else if ("[".equals(head) || "[~".equals(head)) {
+ } else if ("[".equals(head) || "[~".equals(head)) {
boolean positive = "[".equals(head);
Range[] rr = (Range[])walk(tree, 0);
Range.Set ret = positive ? new Range.Set() : new Range.Set(new Range(true, true));