From c7d20615df7aaaf4e0f76d049ac4fe04106ae01d Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 29 Jan 2006 04:34:37 -0500 Subject: [PATCH] checkpoint darcs-hash:20060129093437-5007d-fb24fb6eba8a9f79cf7e06c854007422e02e2feb.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 122 ++++++++++++++++++++-------- tests/meta.g | 12 +-- 2 files changed, 95 insertions(+), 39 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 1998598..999d765 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -141,7 +141,7 @@ public class MetaGrammar extends StringWalker { else if ("-".equals(head)) return new Range(walk(tree, 0).toString().charAt(0), walk(tree,1).toString().charAt(0)); else if ("range".equals(head)) return new Range(walk(tree, 0).toString().charAt(0), walk(tree,0).toString().charAt(0)); else if ("gram".equals(head)) return walk(tree, 0); - else if ("goo".equals(head) || "=>".equals(head)) { + else if ("=>".equals(head)) { PreSequence p = (PreSequence)walk(tree, 0); p.tag = string(tree.child(1)); return p; @@ -420,6 +420,9 @@ public class MetaGrammar extends StringWalker { + + + // DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "grammar", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })}), new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "!", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), @@ -576,10 +579,39 @@ new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.be new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}), - new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { })}), - new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "*/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})})})})})})}), + new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })}), + new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "N", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "a", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "E", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "l", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "m", new edu.berkeley.sbp.Tree[] { }), @@ -589,32 +621,56 @@ new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.be new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}), new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})}), - new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "!", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { })})})}), new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "!", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})}), new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})})}), - new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "-", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, ">", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})}), new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })})})})}), - new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "/", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})}), new edu.berkeley.sbp.Tree(null, "^", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, ">", new edu.berkeley.sbp.Tree[] { })})}), - new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "qprod", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "[", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "]", new edu.berkeley.sbp.Tree[] { })})}), - new edu.berkeley.sbp.Tree(null, "qprod", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})}), + new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "literal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "[", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "]", new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "literal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "(", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, ")", new edu.berkeley.sbp.Tree[] { })})})})})}), new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), @@ -635,20 +691,17 @@ new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.be new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })}), - new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Q", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "P", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "S", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "u", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "t", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})}), - new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "q", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "o", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "d", new edu.berkeley.sbp.Tree[] { })})})})}), - new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), - new edu.berkeley.sbp.Tree(null, "y", new edu.berkeley.sbp.Tree[] { })})})})}), + new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "c", new edu.berkeley.sbp.Tree[] { }), + new edu.berkeley.sbp.Tree(null, "e", new edu.berkeley.sbp.Tree[] { })})})})}), new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "p", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "x", new edu.berkeley.sbp.Tree[] { })})})})})})}), @@ -861,9 +914,9 @@ new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.be new edu.berkeley.sbp.Tree(null, "~", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "[", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "range", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "n", new edu.berkeley.sbp.Tree[] { })}), new edu.berkeley.sbp.Tree(null, "range", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "r", new edu.berkeley.sbp.Tree[] { })})})})})})})})})})}), new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })}), - new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "qprod", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, " ", new edu.berkeley.sbp.Tree[] { })})}), - new edu.berkeley.sbp.Tree(null, "qprod", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\n", new edu.berkeley.sbp.Tree[] { })})}), - new edu.berkeley.sbp.Tree(null, "qprod", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\r", new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "literal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, " ", new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "literal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\n", new edu.berkeley.sbp.Tree[] { })})})})})}), + new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "literal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "\r", new edu.berkeley.sbp.Tree[] { })})})})})})})})}), new edu.berkeley.sbp.Tree(null, "::=", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }), new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })}), new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "psx", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "=>", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "ps", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "**", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "nonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, null, new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { })})})})})}), @@ -1011,3 +1064,6 @@ new edu.berkeley.sbp.Tree(null, "gram", new edu.berkeley.sbp.Tree[] { new edu.be + + + diff --git a/tests/meta.g b/tests/meta.g index 3139794..a0d0819 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -8,13 +8,13 @@ Conjuncts ::= Sequence | Sequence ^"&" Elements /ws | Sequence ^"&~" Elements /ws Elements ::= e*/ws +NamedElements ::= e*/ws -psy ::= Elements => "ps" - | psy !wp ^"/" !ws e - | psy ^"->" e /ws - | psy ^"=>" ("[]"|"()"|word|Quoted) /ws -Sequence ::= Quoted => "qprod" - > psy => "psx" +PreSequence ::= NamedElements => "ps" + | PreSequence !wp ^"/" !ws e + | PreSequence ^"->" e /ws + | PreSequence ^"=>" ("[]"|"()"|word|Quoted) /ws +Sequence ::= PreSequence => "psx" ec ::= ~[\-\]\\] | escaped -- 1.7.10.4