From: adam Date: Thu, 22 Dec 2005 01:17:03 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~506 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=574d2f85990e11f0a45e9028fbadf08aaedfd93a checkpoint darcs-hash:20051222011703-5007d-c23f10f4f42647acc720aaafd77f80d40c8a0831.gz --- diff --git a/TODO b/TODO index 1dc0b33..14e38b5 100644 --- a/TODO +++ b/TODO @@ -134,3 +134,9 @@ Later - 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". diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 656f878..ca889b7 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -124,6 +124,7 @@ public class MetaGrammar extends ReflectiveWalker { 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 t : tree.children()) walk(t); return this; } else return super.walk(tree); } diff --git a/src/edu/berkeley/sbp/misc/RegressionTests.java b/src/edu/berkeley/sbp/misc/RegressionTests.java index 5a86bf1..75f2368 100644 --- a/src/edu/berkeley/sbp/misc/RegressionTests.java +++ b/src/edu/berkeley/sbp/misc/RegressionTests.java @@ -134,12 +134,15 @@ public class RegressionTests { 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 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); } } diff --git a/tests/meta.g b/tests/meta.g index 292991c..64f18f9 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -1,5 +1,5 @@ s ::= ws grammar ws => "gram" -ws !::= w** +ws !::= w** grammar ::= r +/ ws => "grammar" r ::= word ^"::=" alternatives /ws