// MetaGrammar //////////////////////////////////////////////////////////////////////////////
- public Object _star_(Element r) { return new Rep(r, null, false, true); }
- public Element _leftbracket_(Object o, Object[] args) { return rangex(o==null || !(o instanceof Character) ? null : o, args); }
- public Union _colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p); }
- public Union _bang__colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p, true); }
+ public Object _star_(Element r) { return new Rep(r, null, false, true); }
+ public Element _leftbracket_(Object o, Object[] args) { return rangex(o==null || !(o instanceof Character) ? null : o, args); }
+ public Union _colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p); }
+ public Union _bang__colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p, true); }
public Union _colon__colon__equals_(boolean q, String s, PreSequence[][] p) { return nonTerminalZ(s, p, q); }
- public Element _leftparen__rightparen_() { return epsilon; }
- public Element epsilon(Object o, Object b) { return epsilon; }
- public Element _rightparen_(Object e) { return SELF; }
+ public Element _leftparen__rightparen_() { return epsilon; }
+ public Element epsilon(Object o, Object b) { return epsilon; }
+ public Element _rightparen_(Object e) { return SELF; }
public PreSequence _amp_(PreSequence p, Object[] o) {
p.needs.add(new PreSequence(o, null, true));
public PreSequence[] alternatives(PreSequence[] s) { return s; }
public Range _minus_(Character a, Character b) { return b==null ? new Range(a.charValue(), true) : new Range(a.charValue(), b.charValue()); }
+ public Object _leftparen_(PreSequence[][] p) { return nonTerminalZ(p); }
public Union nonTerminalY(String s) { return nonTerminalX(s, false, false); }
public Union nonTerminalX(String s, boolean synthetic, boolean dropAll) {
Union n = s.equals(startSymbol) ? g : nt.get(s);
if (dropAll) this.dropAll.add(n);
return n;
}
- public Object _leftparen_(PreSequence[][] p) { return nonTerminalZ(p); }
public Union nonTerminalZ(PreSequence[][] p) { return nonTerminalX("anon"+(anon++), p, false, false); }
public Union nonTerminalZ(String s, PreSequence[][] p) { return nonTerminalX(s, p, false, false); }
public Union nonTerminalZ(String s, PreSequence[][] p, boolean q) { return nonTerminalX(s, p, false, q); }
Object[] ret = new Object[o.length * 2 - 1];
for(int i=0; i<o.length; i++) {
Object oi = o[i];
- //if (oi instanceof Rep) oi = ((Rep)oi).build(new MyDrop(sep));
ret[i*2] = oi;
if (i*2+1<ret.length) ret[i*2+1] = new MyDrop(sep);
}