X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FMetaGrammar.java;h=d160680dc9dfcb58718b9bcf712f0a9edd36158b;hp=e30312ebe8c6cbcfe75212f088225d0f108925da;hb=83de4a54d4e180843453a84daf7c6800fbc7edad;hpb=87c66a88436dc16965e1dcdf504119612a81f362 diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index e30312e..d160680 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -16,7 +16,7 @@ public class MetaGrammar extends ReflectiveWalker { } // FIXME - private static HashSet dropAll = new HashSet(); + private static HashSet dropAll = new HashSet(); // Statics ////////////////////////////////////////////////////////////////////////////// @@ -27,47 +27,48 @@ public class MetaGrammar extends ReflectiveWalker { // 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 Union _colon__colon__equals_(boolean q, String s, PreSequence[][] p) { return nonTerminalZ(s, p, q); } - public Element _leftparen__rightparen_() { return epsilon; } + public PreSequence _equals__greater_(Object[] o, String s) { return new PreSequence(o, s); } + public Object _star_(Element r) { return Repeat.many0(r); } 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)); - return p; - } - public PreSequence _amp__tilde_(PreSequence p, Object[] o) { - p.hates.add(new PreSequence(o, null, true)); - return p; - } + public PreSequence _amp_(PreSequence p, Object[] o) { return p.and(new PreSequence(o, null, true).buildSequence(null, true, false)); } + public PreSequence _amp__tilde_(PreSequence p, Object[] o) { return p.not(new PreSequence(o, null, true).buildSequence(null, true, false)); } public Element _bang_(Element r) { return r; } public Object care(String s) { return new MyLift(s); } - //public Element _backtick_(Element r) { return new Unwrap(r); } - //public Element _hash_(Element e) { return e; } - //public Element _hash_(Element e) { return _plus__plus_(e); } - - public PreSequence[] alternatives(PreSequence[] s) { return s; } + public Object _caret_(String s) { return new MyLift(s); } + public Object _leftparen__rightparen_() { return epsilon; } - 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 (n == null) nt.put(s, n = new Union(s, synthetic)); + public Union nonTerminal(String s) { return nonTerminal(s, null, false, false); } + public Union _colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminal(s, p, false, false); } + public Union _bang__colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminal(s, p, false, true); } + public Union _colon__colon__equals_(boolean q, String s, PreSequence[][] p) { return nonTerminal(s, p, false, q); } + public Object _leftparen_(PreSequence[][] p) { return nonTerminal("anon"+(anon++), p, 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)); if (dropAll) this.dropAll.add(n); + if (s==null) return n; + HashSet seqs = new HashSet(); + for(int i=0; i temp = new HashSet(); + for(PreSequence pre : s[i]) { + pre.not.addAll(seqs); + Sequence seq = pre.buildSequence(n, false, dropAll); + temp.add(seq); + n.add(seq); + } + seqs.addAll(temp); + } return n; } - 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); } - public Object _backslash__leftbrace_(String s) { return SELF; } - public Object _leftbrace_(String s) { return SELF; } - public Object _plus_(final Element r) { return new Rep(r, null, false, false); } + + + public Object _backslash__leftbrace_(String s) { return SELF; } + public Object _leftbrace_(String s) { return SELF; } + public Object _plus_(final Element r) { return Repeat.many1(r); } public Object[] _slash_(Object[] o, Object sep) { if (o.length <= 1) return o; Object[] ret = new Object[o.length * 2 - 1]; @@ -78,41 +79,23 @@ public class MetaGrammar extends ReflectiveWalker { } return ret; } - //public Element _tilde__slash__tilde_(final Element r) { return Repeat.maximal(r); } - public Object _plus__slash_(final Element r, Object s) { - if (s instanceof String) s = CharToken.string((String)s); - return new Rep(r, (Element)s, false, false); - } - public Object _dollar__dollar_(final Element r, Object s) { - if (s instanceof String) s = CharToken.string((String)s); - return new Rep(r, (Element)s, false, false); - } - public Object _star__slash_(final Element r, Object s) { - if (s instanceof String) s = CharToken.string((String)s); - return new Rep(r, (Element)s, false, true); - } - public Object _percent__percent_(final Element r, Object s) { - if (s instanceof String) s = CharToken.string((String)s); - return new Rep(r, (Element)s, false, true); - } - //public Element _star__slash_(final Element r, Element s) { return Repeat.many0(r, s); } - public Object _star__star_(final Element r) { return new Rep(r, null, true, true); } - public Object _plus__plus_(final Element r) { return new Rep(r, null, true, false); } + + public Object _plus__slash_(final Element r, Element s) { return Repeat.many1(r, s); } + public Object _star__slash_(final Element r, Element s) { return Repeat.many0(r, s); } + public Object _star__star_(final Element r) { return Repeat.maximal(Repeat.many0(r)); } + public Object _plus__plus_(final Element r) { return Repeat.maximal(Repeat.many1(r)); } public Element _question_(final Element r) { return Repeat.maybe(r); } public MetaGrammar gram(Object o, MetaGrammar g, Object o2) { return g; } public MetaGrammar grammar(Object[] o) { return this; } public MetaGrammar grammar(Object o, Union[] u, Object x) { return this; } public char _backslash_n() { return '\n'; } public char _backslash_r() { return '\r'; } - public String literal(String s) { return s; } - //public Element literal(String s) { return CharToken.string(s); } - - public Range range0(char a) { return new Range(a, a); } - public Range range0(char a, char b) { return new Range(a, b); } - public Range range1(char a, char b) { return new Range(a, b); } - public Element rangex(Range[] rr) { return range("~", rr); } - public Element range(Range[] rr) { return range(null, rr); } - public Element range(Object o, Range[] rr) { + public Object literal(String s) { return new MyDrop(CharToken.string(s)); } + public Range _minus_(char a, char b) { return new Range(a, b); } + public Element _leftbracket_ (Range[] rr) { return ranges(null, rr); } + public Element _leftbracket__tilde_(Range[] rr) { return ranges("~", rr); } + public Range range(char a) { return new Range(a, a); } + public Element ranges(Object o, Range[] rr) { Range.Set ret = !"~".equals(o+"") ? new Range.Set() : new Range.Set(new Range(true, true)); if (rr != null) for(Range r : rr) @@ -120,45 +103,6 @@ public class MetaGrammar extends ReflectiveWalker { else ret.remove(r); return CharToken.set(ret); } - public Element rangex(Object o, Object[] r) { - Range.Set ret = o==null ? new Range.Set() : new Range.Set(new Range(true, true)); - if (r != null) - for(Object aa : r) { - Range range = - aa instanceof Range - ? (Range)aa - : aa instanceof Character - ? new Range(((Character)aa).charValue()) - : new Range(((String)aa).charAt(0)); - if (o==null) ret.add(range); - else ret.remove(range); - } - return CharToken.set(ret); - } - - public String sify(Object arg) { - if (arg==null) return ""; - if (arg instanceof String) return (String)arg; - Object[] args = (Object[])arg; - while(true) { - args = Reflection.lub(args); - if (args instanceof String[]) { - StringBuffer ret = new StringBuffer(); - for(String s : ((String[])args)) ret.append(s); - return ret.toString(); - } - if (args instanceof Character[]) break; - if (!(args instanceof Object[])) break; - args = (Object[])args[0]; - } - if (args instanceof Character[]) { - char[] c = new char[args.length]; - for(int i=0; i(); + dropAll = new HashSet(); nt.put(str, g); - this.dws = Repeat.maximal(Repeat.many0(nonTerminalY("w"))); + this.dws = Repeat.maximal(Repeat.many0(nonTerminal("w"))); return ret; } - public Union nonTerminalX(String str, PreSequence[][] s, boolean synthetic, boolean dropAll) { - Union n = nonTerminalX(str, synthetic, dropAll); - if (s == null || s.length==0) { n.add(Sequence.empty); return n; } - HashSet seqs = new HashSet(); - for(int i=0; i temp = new HashSet(); - for(PreSequence pre : s[i]) { - pre.hatess.addAll(seqs); - Sequence seq = pre.buildSequence(n, false, dropAll); - temp.add(seq); - //for(Sequence dom : seqs) seq.hates.add(dom); - n.add(seq); - } - seqs.addAll(temp); - } - return n; - } - - 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 static class PreBrace { - public final Object[] o; - public PreBrace(Object[] o) { this.o = o; } - } - 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); } @@ -221,24 +139,12 @@ public class MetaGrammar extends ReflectiveWalker { o3[o3.length-1] = o2; return rewrite(o3); } - - public static class Rep { - private final Element e; - private final Element s; - private final boolean maximal; - private final boolean zero; - public Rep(Element e, Element s, boolean maximal, boolean zero) { this.e = e; this.s = s; this.zero = zero; this.maximal = maximal;} - public Element build() { - Element sep = s; - Element ret = zero ? Repeat.many0(e, sep) : Repeat.many1(e, sep); - return maximal ? Repeat.maximal(ret) : ret; - } - } public static class PreSequence { - public final HashSet needs = new HashSet(); - public final HashSet hates = new HashSet(); - public final HashSet hatess = new HashSet(); + public PreSequence not(Sequence s) { not.add(s); return this; } + public PreSequence and(Sequence s) { and.add(s); return this; } + public final HashSet and = new HashSet(); + public final HashSet not = new HashSet(); public /*final*/ String tag; public final Object[] o; public final boolean keeper; @@ -254,12 +160,9 @@ public class MetaGrammar extends ReflectiveWalker { for(int i=0; i and = new HashSet(); - HashSet not = new HashSet(); - for(PreSequence p : needs) { - Sequence ps = p.buildSequence(u, true, dropAll); - u.add(ps); - and.add(ps); - } - for(Sequence p : hatess) not.add(p); - for(PreSequence p : hates) { - Sequence ps = p.buildSequence(u, true, dropAll); - u.add(ps); - not.add(ps); - } - + for(Sequence s : and) u.add(s); + for(Sequence s : not) u.add(s); HashSet set = new HashSet(); Element[] expansion = expand(u, set); boolean keeper = this.keeper; @@ -359,62 +249,53 @@ public class MetaGrammar extends ReflectiveWalker { - - - - - - - - - // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), - new Tree(null, "grammar", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), + new Tree(null, "grammar", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "r", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), + new Tree(null, "r", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "m", new Tree[] { })})})})})})})}), - new Tree(null, "!::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), + new Tree(null, "m", new Tree[] { })})})})})}), + new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "r", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), + new Tree(null, "r", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "m", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "r", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "r", new Tree[] { })})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ":", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ":", new Tree[] { }), new Tree(null, ":", new Tree[] { }), - new Tree(null, "=", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "=", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), @@ -425,18 +306,18 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "v", new Tree[] { }), new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { }), new Tree(null, ":", new Tree[] { }), new Tree(null, ":", new Tree[] { }), - new Tree(null, "=", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "=", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), @@ -447,10 +328,10 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "v", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), @@ -461,27 +342,27 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "v", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "A", new Tree[] { }), new Tree(null, "l", new Tree[] { }), - new Tree(null, "t", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ">", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "t", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ">", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "A", new Tree[] { }), new Tree(null, "l", new Tree[] { }), - new Tree(null, "t", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), + new Tree(null, "t", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "j", new Tree[] { }), @@ -489,55 +370,43 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "|", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), - new Tree(null, "l", new Tree[] { }), - new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { }), - new Tree(null, "r", new Tree[] { }), - new Tree(null, "n", new Tree[] { }), - new Tree(null, "a", new Tree[] { }), - new Tree(null, "t", new Tree[] { }), - new Tree(null, "i", new Tree[] { }), - new Tree(null, "v", new Tree[] { }), - new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "|", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})}), - new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "e", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})})})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "j", new Tree[] { }), @@ -545,160 +414,153 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "s", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { })})})}), - new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { })})}), + new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { }), - new Tree(null, "~", new Tree[] { })})})}), - new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { }), + new Tree(null, "~", new Tree[] { })})}), + new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "e", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), - new Tree(null, ">", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), + new Tree(null, ">", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), - new Tree(null, ">", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), + new Tree(null, ">", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "c", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), - new Tree(null, ">", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }), - new Tree(null, ")", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), + new Tree(null, ">", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }), + new Tree(null, ")", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "p", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "c", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rangex", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "-", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "]", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "\\", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "~", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "p", new Tree[] { })})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "c", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "-", new Tree[] { })}), + new Tree(null, "range", new Tree[] { new Tree(null, "]", new Tree[] { })}), + new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })}), + new Tree(null, "range", new Tree[] { new Tree(null, "~", new Tree[] { })})})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), - new Tree(null, "a", new Tree[] { }), - new Tree(null, "n", new Tree[] { }), - new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "c", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { }), - new Tree(null, "0", new Tree[] { })})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "e", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "c", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "c", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { }), - new Tree(null, "1", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "c", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "c", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "n", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "n", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "T", new Tree[] { }), @@ -708,19 +570,18 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "l", new Tree[] { }), - new Tree(null, "Y", new Tree[] { })})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "(", new Tree[] { })})})}), - new Tree(null, "range", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "l", new Tree[] { })})}), + new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "(", new Tree[] { })})})}), + new Tree(null, "[", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "o", new Tree[] { }), - new Tree(null, "n", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "n", new Tree[] { })})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), @@ -731,129 +592,109 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "v", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "}", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), - new Tree(null, "a", new Tree[] { }), - new Tree(null, "n", new Tree[] { }), - new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})})})})})})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), - new Tree(null, "a", new Tree[] { }), - new Tree(null, "n", new Tree[] { }), - new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { }), - new Tree(null, "~", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "}", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})})})})})})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})})})})})})})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { }), + new Tree(null, "~", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { }), - new Tree(null, "x", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), - new Tree(null, "/", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), - new Tree(null, "/", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "?", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "~", new Tree[] { }), - new Tree(null, "/", new Tree[] { }), - new Tree(null, "~", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "e", new Tree[] { })})})})})})})})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), - new Tree(null, "a", new Tree[] { }), - new Tree(null, "r", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "`", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "#", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "~", new Tree[] { }), + new Tree(null, "/", new Tree[] { }), + new Tree(null, "~", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "`", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "#", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), + new Tree(null, "*", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})})})})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), + new Tree(null, "/", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), + new Tree(null, "+", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})})})})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), + new Tree(null, "/", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "?", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})}), + new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "l", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "l", new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), - new Tree(null, "l", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), - new Tree(null, "*", new Tree[] { })})})})})})})}), - new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})})})})})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), - new Tree(null, "+", new Tree[] { })})})})})})})}), - new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})})})})})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "l", new Tree[] { })})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})}), - new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})}), - new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), @@ -864,74 +705,69 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "i", new Tree[] { }), new Tree(null, "v", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), - new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})})})})})}), - new Tree(null, "!::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }), - new Tree(null, "/", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "rangex", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})})})})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), - new Tree(null, "n", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})}), + new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }), + new Tree(null, "/", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})})})})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "n", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "z", new Tree[] { })}), new Tree(null, "-", new Tree[] { new Tree(null, "A", new Tree[] { }), new Tree(null, "Z", new Tree[] { })}), new Tree(null, "-", new Tree[] { new Tree(null, "0", new Tree[] { }), new Tree(null, "9", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "range", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "++", new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), - new Tree(null, "n", new Tree[] { })})})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), - new Tree(null, "i", new Tree[] { }), - new Tree(null, "f", new Tree[] { }), - new Tree(null, "y", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "d", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "++", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, "n", new Tree[] { })})})})})})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rangex", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "\"", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "\\", new Tree[] { })})})})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "d", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\"", new Tree[] { })}), + new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })})})})})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})})})})})})})})})})})})})}), - new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), - new Tree(null, "i", new Tree[] { }), - new Tree(null, "f", new Tree[] { }), - new Tree(null, "y", new Tree[] { })})})})})})})}), - new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "d", new Tree[] { })})})})})})})})})})})})})}), + new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})})})}), + new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { }), + new Tree(null, "\"", new Tree[] { })})})}), + new Tree(null, "", new Tree[] { })})})})}), + new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), - new Tree(null, "n", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})}), - new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), - new Tree(null, "r", new Tree[] { })})})})}), - new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})}), - new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})})}), - new Tree(null, "rangex", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "n", new Tree[] { })}), - new Tree(null, "range0", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})})})})})})})}), + new Tree(null, "d", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), + new Tree(null, "n", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})}), + new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), + new Tree(null, "r", new Tree[] { })})})}), + new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})}), + new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})}), + new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "n", new Tree[] { })}), + new Tree(null, "range", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})})})})})})}), new Tree(null, null, new Tree[] { })}) // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED ; @@ -951,3 +787,18 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), + + + + + + + + + + + + + + +