checkpoint
authoradam <adam@megacz.com>
Tue, 13 Dec 2005 07:14:37 +0000 (02:14 -0500)
committeradam <adam@megacz.com>
Tue, 13 Dec 2005 07:14:37 +0000 (02:14 -0500)
darcs-hash:20051213071437-5007d-8e3227c3b4a42e6c3796e6fd1839156862299a92.gz

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

index 627300d..a8ab94d 100644 (file)
@@ -371,10 +371,13 @@ 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[] { })})}),
         // 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, "*", 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, 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, "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[] { }),
@@ -382,11 +385,32 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "m", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "r", 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, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", 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, "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, "G", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", 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[] { }),
@@ -505,7 +529,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "v", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "s", 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, "::=", 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, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -513,10 +537,17 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "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, "+", 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, 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, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "E", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})}),
         new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})})}),
         new Tree(null, "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, "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, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "E", new Tree[] { })})})})}),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})})})})})}),
+        new Tree(null, "::=", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "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, "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, "::=", 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[] { }),
@@ -526,14 +557,14 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "s", new Tree[] { })})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "R", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})})}),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})})}),
-        new Tree(null, "rewrite", new Tree[] { new Tree(null, 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, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
@@ -541,7 +572,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})}),
         new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { })})})}),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})}),
         new Tree(null, "care", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "&", new Tree[] { })})})}),
-        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, 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, "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, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -549,7 +580,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})})}),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})})}),
-        new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "R", new Tree[] { }),
+        new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
@@ -558,7 +589,7 @@ new Tree(null, "gram", 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, "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, "S", new Tree[] { }),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -566,14 +597,14 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})})})})})})}),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", 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, "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, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})}),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})}),
-        new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "S", new Tree[] { }),
+        new Tree(null, null, new Tree[] { new Tree(null, "alternatives", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -581,6 +612,8 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})}),
         new Tree(null, "n", new Tree[] { }),
         new Tree(null, "c", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})})}),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})}),
         new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
         new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "w", new Tree[] { }),
@@ -588,7 +621,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})}),
         new Tree(null, "i", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { })})})}),
-        new Tree(null, "rewrite", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "S", new Tree[] { }),
+        new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -601,8 +634,10 @@ new Tree(null, "gram", 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, "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, "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, "S", new Tree[] { }),
+        new Tree(null, "d", new Tree[] { })})})})}),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})}),
+        new Tree(null, "rewrite", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -617,8 +652,10 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "o", new Tree[] { }),
         new Tree(null, "t", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
-        new Tree(null, "d", new Tree[] { })})})})})}),
-        new Tree(null, "=>", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "S", new Tree[] { }),
+        new Tree(null, "d", new Tree[] { })})})})}),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})})}),
+        new Tree(null, "=>", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
         new Tree(null, "e", new Tree[] { }),
         new Tree(null, "q", new Tree[] { }),
         new Tree(null, "u", new Tree[] { }),
@@ -630,6 +667,8 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
         new Tree(null, ">", new Tree[] { })})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }),
         new Tree(null, ")", new Tree[] { })})})})}),
         new Tree(null, ">", new Tree[] { })})})}),
         new Tree(null, "literal", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }),
         new Tree(null, ")", new Tree[] { })})})})}),
+        new Tree(null, "nonTerminalY", new Tree[] { new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
+        new Tree(null, "s", new Tree[] { })})})})}),
         new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
         new Tree(null, "sify", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }),
         new Tree(null, "r", new Tree[] { }),
         new Tree(null, "a", new Tree[] { }),
@@ -870,3 +909,5 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }),
 
 
 
 
 
 
+
+
index e85da34..5347aeb 100644 (file)
@@ -1,4 +1,4 @@
-s         ::=  w* Grammar w*                  => "gram"
+s         ::=  ws Grammar ws                  => "gram"
 ws       !::=  w**
 grammar   ::=  R+/ws => "grammar"
 Grammar   ::=  R+ => "grammar"
 ws       !::=  w**
 grammar   ::=  R+/ws => "grammar"
 Grammar   ::=  R+ => "grammar"
@@ -13,6 +13,7 @@ EquiAlt       ::=  Conjuncts +/ "|"                 => "alternatives"
 sequence    ::= Es
               > Es ^"/" E   /ws
 Es          ::= E+
 sequence    ::= Es
               > Es ^"/" E   /ws
 Es          ::= E+
+//es          ::= E+/ws
 
 Conjuncts   ::=  rewrite
               |  rewrite ^"&"  sequence
 
 Conjuncts   ::=  rewrite
               |  rewrite ^"&"  sequence