- implement Johnstone's algorithm for "reduced, resolved LR
tables" to eliminate superfluous reductions on
epsilon-transitions.
+
+______________________________________________________________________________
+Neat Ideas
+
+ - Rekers & Koorn note that GLR Substring Parsing can be used to do
+ really elegant and generalized "autocompletion".
if (tree.numChildren()==0) return super.walk(tree);
if ("\\n".equals(head)) return new Character('\n');
else if ("\\r".equals(head)) return new Character('\r');
+ //else if ("grammar".equals(head)) { for(Tree<String> t : tree.children()) walk(t); return this; }
else return super.walk(tree);
}
public TestCase tibcase(String input, Union grammar) throws IOException {
return new TestCase(input, new String[0], grammar, true); }
public MetaGrammar grammar(Object[] o) { return this; }
- public Object walk(String tag, Object[] args) {
- if ("grammar".equals(tag)) {
- //System.out.println("\n" + this + "\n");
- return done("s");
- }
- else return super.walk(tag, args);
+ /*
+ public Object walk(Tree<String> tree) {
+ if ("grammar".equals(tree.head())) return done("s");
+ else return super.walk(tree);
+ }
+ */
+ public Object walk(String head, Object[] args) {
+ if ("grammar".equals(head)) return done("s");
+ else return super.walk(head, args);
}
}
s ::= ws grammar ws => "gram"
-ws !::= w**
+ws !::= w**
grammar ::= r +/ ws => "grammar"
r ::= word ^"::=" alternatives /ws