public Sequence tryResolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) {
return null; }
public Sequence resolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) {
- return Sequence.rewritingSequence(tag, els, labels, drops);
- }
+ return null; }
}
--- /dev/null
+package edu.berkeley.sbp.meta;
+import edu.berkeley.sbp.util.*;
+import edu.berkeley.sbp.*;
+import edu.berkeley.sbp.chr.*;
+import edu.berkeley.sbp.misc.*;
+import edu.berkeley.sbp.bind.*;
+import java.util.*;
+import java.lang.annotation.*;
+import java.lang.reflect.*;
+import java.io.*;
+
+public class TaggingGrammarBindingResolver extends GrammarBindingResolver {
+ public Object repeatTag() { return null; }
+ public Sequence tryResolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) {
+ if (tag==null) return null;
+ return Sequence.rewritingSequence(tag, els, labels, drops);
+ }
+ public Sequence resolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) {
+ return Sequence.rewritingSequence(tag, els, labels, drops);
+ }
+}
public static class TestCaseMakerHelper extends MetaGrammarBindings {
public static @bind.as("grammaro") @bind.raw Object grammaro(Iterable<Tree> t) {
System.out.println("working on " + t);
- return MetaGrammar.make(t.iterator().next(), "s", new GrammarBindingResolver());
+ return MetaGrammar.make(t.iterator().next(), "s", new TaggingGrammarBindingResolver());
}
//public static @bind.as("tca") Object tca(Object[] o) throws IOException {
//return new TestCase((String)o[0], (String[])o[1], (Union)o[2], false, false); }