From 6f995008673ec682df49866ac2e9623397c99679 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 15 Dec 2005 04:26:25 -0500 Subject: [PATCH] checkpoint darcs-hash:20051215092625-5007d-2ab60e9f16f10232f321cbeaff8593b03e0d1923.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 211 +++++++++++----------------- tests/meta.g | 4 +- 2 files changed, 84 insertions(+), 131 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 0c6d816..d5a70b3 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -110,6 +110,7 @@ public class MetaGrammar extends ReflectiveWalker { p.tag = tag; return p; } + public PreSequence ps(Object[] o) { return new PreSequence(o); } public PreSequence _slash_(PreSequence p, Object sep) { return p.sparse(sep); } @@ -266,10 +267,12 @@ 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, null, new Tree[] { new Tree(null, "s", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), @@ -286,8 +289,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "m", new Tree[] { })})})})})}), new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "**", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })})})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), @@ -295,7 +297,7 @@ 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, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})})}), new Tree(null, null, new Tree[] { new Tree(null, "g", new Tree[] { }), @@ -306,7 +308,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "r", new Tree[] { })})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })})}), @@ -327,8 +329,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })})}), @@ -349,8 +350,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "s", new Tree[] { })})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), @@ -363,7 +363,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, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "j", new Tree[] { }), @@ -372,20 +372,16 @@ 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, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "|", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ">", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "s", new Tree[] { })})})})})})})})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "c", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "n", new Tree[] { }), @@ -395,7 +391,7 @@ 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, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), @@ -403,8 +399,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, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), @@ -418,8 +413,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), @@ -433,29 +427,25 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "s", new Tree[] { })})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*/", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })})})})})})}), + new Tree(null, "s", new Tree[] { })})})})})})})})})})}), new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "x", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { })})}), - new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), @@ -464,67 +454,58 @@ 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, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "x", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "p", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "x", new Tree[] { })})}), - new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=", new Tree[] { }), new Tree(null, ">", new Tree[] { })})}), - new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "d", new Tree[] { })})})})})})})})})}), + new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, "s", new Tree[] { })})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "c", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "-", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "-", new Tree[] { })}), new Tree(null, "range", new Tree[] { new Tree(null, "]", new Tree[] { })}), new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })}), new Tree(null, "range", new Tree[] { new Tree(null, "~", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "d", new Tree[] { })})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), new Tree(null, "e", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "c", new Tree[] { })})})})}), new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), new Tree(null, "e", new Tree[] { })})}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "c", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "-", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), - new Tree(null, "c", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "c", new Tree[] { })})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })})})})}), @@ -539,7 +520,7 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { })})}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), + new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), @@ -552,10 +533,9 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { })})}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", 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, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { }), new Tree(null, ")", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "{", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "s", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "q", new Tree[] { }), @@ -567,27 +547,22 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "}", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "e", new Tree[] { })})})})})})})})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", 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, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[", new Tree[] { }), new Tree(null, "~", new Tree[] { })})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "r", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "n", new Tree[] { }), new Tree(null, "g", new Tree[] { }), - new Tree(null, "e", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "e", new Tree[] { })})})})})})})})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "]", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), @@ -596,65 +571,53 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "d", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { })})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "!", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), - new Tree(null, "*", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "*", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), - new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { })})})})})})})})})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { }), new Tree(null, "/", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), - new Tree(null, "+", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "+", new Tree[] { })})})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), - new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { })})})})})})})})})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { }), new Tree(null, "/", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "?", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}), + new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })})}), new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })})}), - new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", 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, "s", new Tree[] { })})})})}), + new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "^", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "(", new Tree[] { })})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "l", new Tree[] { }), new Tree(null, "t", new Tree[] { }), @@ -669,55 +632,44 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "s", new Tree[] { })})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, ")", new Tree[] { })})})})}), new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), - new Tree(null, "s", new Tree[] { })})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "s", new Tree[] { })})})})})})}), new Tree(null, "!::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, " ", new Tree[] { })})})})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "/", new Tree[] { }), new Tree(null, "/", new Tree[] { })})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "*", new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\n", new Tree[] { })})})})})})})})})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})})})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "w", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "r", new Tree[] { }), new Tree(null, "d", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", 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, "-", new Tree[] { new Tree(null, "a", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", 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, "-", new Tree[] { new Tree(null, "a", new Tree[] { }), new Tree(null, "z", new Tree[] { })}), new Tree(null, "-", new Tree[] { new Tree(null, "A", new Tree[] { }), new Tree(null, "Z", new Tree[] { })}), new Tree(null, "-", new Tree[] { new Tree(null, "0", new Tree[] { }), new Tree(null, "9", new Tree[] { })}), - new Tree(null, "range", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "range", new Tree[] { new Tree(null, "_", new Tree[] { })})})})})})})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "q", new Tree[] { }), new Tree(null, "u", new Tree[] { }), new Tree(null, "o", new Tree[] { }), new Tree(null, "t", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "d", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})}), - new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\"", new Tree[] { })}), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})}), + new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "+", new Tree[] { new Tree(null, "(", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "\"", new Tree[] { })}), new Tree(null, "range", new Tree[] { new Tree(null, "\\", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "nonTerminal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), new Tree(null, "s", new Tree[] { }), new Tree(null, "c", new Tree[] { }), new Tree(null, "a", new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), - new Tree(null, "d", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })})})})})})})}), - new Tree(null, null, new Tree[] { })})})})}), + new Tree(null, "d", new Tree[] { })})})})})})})})})})})})})}), new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { })})})})}), - new Tree(null, null, new Tree[] { })}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { }), + new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\"", new Tree[] { }), new Tree(null, "\"", new Tree[] { })})})})}), new Tree(null, "", new Tree[] { })})})})}), new Tree(null, "::=", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "e", new Tree[] { }), @@ -727,16 +679,15 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), new Tree(null, "p", new Tree[] { }), new Tree(null, "e", new Tree[] { }), new Tree(null, "d", new Tree[] { })}), - new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), + new Tree(null, null, new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), new Tree(null, "n", new Tree[] { })})})})}), new Tree(null, null, new Tree[] { new Tree(null, "\n", new Tree[] { })})}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), + new Tree(null, "=>", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { }), new Tree(null, "r", new Tree[] { })})})})}), new Tree(null, null, new Tree[] { new Tree(null, "\r", new Tree[] { })})}), - new Tree(null, "seqx", new Tree[] { new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})}), + new Tree(null, "ps", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "literal", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "\\", new Tree[] { })})}), new Tree(null, "[~", new Tree[] { new Tree(null, null, new Tree[] { new Tree(null, "range", new Tree[] { new Tree(null, "n", new Tree[] { })}), - new Tree(null, "range", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})}), - new Tree(null, null, new Tree[] { })})})})})})}), + new Tree(null, "range", new Tree[] { new Tree(null, "r", new Tree[] { })})})})})})})})})})}), new Tree(null, null, new Tree[] { })}) // DO NOT EDIT STUFF ABOVE: IT IS AUTOMATICALLY GENERATED ; @@ -776,3 +727,5 @@ new Tree(null, "gram", new Tree[] { new Tree(null, null, new Tree[] { }), + + diff --git a/tests/meta.g b/tests/meta.g index cf6a6b3..4b4df1f 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -10,9 +10,9 @@ conjuncts ::= sequence | sequence ^"&" e*/ws /ws | sequence ^"&~" e*/ws /ws -ps ::= (e*/ ws) => "ps" +ps ::= e*/ws => "ps" psx ::= ps - | ps ws ^"/" e + > ps ws ^"/" e sequence ::= psx | psx ^"=>" (word|quoted) /ws -- 1.7.10.4