checkpoint
authoradam <adam@megacz.com>
Wed, 14 Dec 2005 02:43:23 +0000 (21:43 -0500)
committeradam <adam@megacz.com>
Wed, 14 Dec 2005 02:43:23 +0000 (21:43 -0500)
darcs-hash:20051214024323-5007d-b85dda9b6e21a5515a5c256e44c4758f65858930.gz

src/edu/berkeley/sbp/misc/MetaGrammar.java
tests/meta.g

index a5d7e1d..f88da90 100644 (file)
@@ -366,165 +366,162 @@ 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, "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, "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, "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, "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, "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, ":", 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, "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, "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, "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, ":", 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, "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, "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, "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, 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, "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, "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, "o", new Tree[] { }),
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                new Tree(null, "n", new Tree[] { }),
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                new Tree(null, "j", new Tree[] { }),
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                new Tree(null, "u", 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, "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, "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, "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, "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, "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, "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, "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, ":", 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, "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, "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, "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, ":", 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, "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, "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, "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, 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, "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, "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, "o", new Tree[] { }),
+        new Tree(null, "n", new Tree[] { }),
+        new Tree(null, "j", new Tree[] { }),
+        new Tree(null, "u", 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, "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, "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, "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[] { })})})}),
@@ -660,8 +657,7 @@ public class MetaGrammar extends ReflectiveWalker {
         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, "range", new Tree[] { new Tree(null, "~", new Tree[] { }),
-        new Tree(null, null, new Tree[] { new Tree(null, "range0", 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, "range0", new Tree[] { new Tree(null, "\\", new Tree[] { })}),
         new Tree(null, "range0", new Tree[] { new Tree(null, "~", new Tree[] { })})})})})}),
@@ -713,10 +709,8 @@ public class MetaGrammar extends ReflectiveWalker {
         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, 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, null, new Tree[] { new Tree(null, "range0", 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, 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, "p", new Tree[] { }),
         new Tree(null, "s", new Tree[] { }),
@@ -779,6 +773,18 @@ public class MetaGrammar extends ReflectiveWalker {
         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, "/", 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[] { })})})})})}),
@@ -877,15 +883,13 @@ public class MetaGrammar extends ReflectiveWalker {
         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, "range", new Tree[] { new Tree(null, "~", new Tree[] { }),
-        new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "\n", 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, null, new Tree[] { new Tree(null, "-", new Tree[] { new Tree(null, "a", 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, "z", new Tree[] { })}),
         new Tree(null, "-", new Tree[] { new Tree(null, "A", new Tree[] { }),
         new Tree(null, "Z", new Tree[] { })}),
@@ -909,8 +913,7 @@ public class MetaGrammar extends ReflectiveWalker {
         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, "range", new Tree[] { new Tree(null, "~", new Tree[] { }),
-        new Tree(null, null, new Tree[] { new Tree(null, "range0", 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, "s", new Tree[] { }),
@@ -938,8 +941,7 @@ public class MetaGrammar extends ReflectiveWalker {
         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, "range", new Tree[] { new Tree(null, "~", new Tree[] { }),
-        new Tree(null, null, new Tree[] { new Tree(null, "range0", new Tree[] { new Tree(null, "n", 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, null, new Tree[] { })})
         // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED
@@ -958,3 +960,4 @@ public class MetaGrammar extends ReflectiveWalker {
 
 
 
+
index 5103b5b..a0585bd 100644 (file)
@@ -1,11 +1,11 @@
 s         ::=  ws grammar ws                  => "gram"
 ws       !::=  w**
-grammar   ::=  r $$ ws => "grammar"
+grammar   ::=  r +/ ws => "grammar"
 r         ::=  word  ^"::=" alternatives /ws
             |  word ^"!::=" alternatives /ws
 
-alternatives  ::=  equiAlt   $$ (ws ">" ws)
-equiAlt       ::=  conjuncts $$ (ws "|" ws)          => "alternatives"
+alternatives  ::=  equiAlt   +/ (ws ">" ws)
+equiAlt       ::=  conjuncts +/ (ws "|" ws)          => "alternatives"
 
 sequence    ::= es
               > es ws ^"/" e