-
- ////////////////////////////////////////////////////////////////////////////////
-
- private Union g;
- private HashMap<String,Union> nt;
- private int anon = 0;
- private Element dws;
- private String startSymbol;
-
- public MetaGrammar() { this("s"); }
- public MetaGrammar(String s) { done(s); }
- public Union done() { return done("s"); }
- public Union done(String str) {
- Union ret = g;
- g = new Union(str);
- startSymbol = str;
- nt = new HashMap<String,Union>();
- dropAll = new HashSet<Element>();
- nt.put(str, g);
- this.dws = Repeat.maximal(Repeat.many0(nonTerminal("w")));
- return ret;
- }
-
- public String stringify(String s) { return StringUtil.unescapify(s); }
- public char unescape(char x, char c) { return unescape(c); }
- public char unescape(char c) { return StringUtil.unescapify("\\"+c).charAt(0); }
- public PreSequence sequence(Object[] o) { return new PreSequence(o, null); }
-
- public PreSequence _equals__greater_(Object[] o, String s) { return new PreSequence(o, s); }
- public PreSequence wrap(Object[] o) { return new PreSequence(o, ""); }
- public PreSequence mwrap(Object[] o) { return new PreSequence(o, ""); }
- public PreSequence rewrite(Object[] o) { return new PreSequence(o, null); }
- public PreSequence rewrite(Object[] o, Object o2) {
- Object[] o3 = new Object[o.length + 1];
- System.arraycopy(o, 0, o3, 0, o.length);
- o3[o3.length-1] = o2;
- return rewrite(o3);
- }
-
- public static class PreBrace {
- public final Object[] o;
- public PreBrace(Object[] o) { this.o = o; }