From: adam Date: Wed, 5 Jul 2006 05:20:03 +0000 (-0400) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~200 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=1976ed1b8cf49284016a99114e717d46a3be3617 checkpoint darcs-hash:20060705052003-5007d-d91e4dcf0c5084eb5d9b9cdf398b75f62a194728.gz --- diff --git a/src/edu/berkeley/sbp/meta/AnnotationGrammarBindingResolver.java b/src/edu/berkeley/sbp/meta/AnnotationGrammarBindingResolver.java index 1955f7f..825dc56 100644 --- a/src/edu/berkeley/sbp/meta/AnnotationGrammarBindingResolver.java +++ b/src/edu/berkeley/sbp/meta/AnnotationGrammarBindingResolver.java @@ -35,19 +35,21 @@ public class AnnotationGrammarBindingResolver extends GrammarBindingResolver { } public Sequence tryResolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) { + MetaGrammar.Production p = new MetaGrammar.Production(tag, nonTerminalName, els, labels, drops); for(Method m : _cl.getMethods()) - if (new MetaGrammar.Target(m).isCompatible(tag, nonTerminalName, els, labels, drops)) - return new MetaGrammar.Target(m).makeSequence(tag, nonTerminalName, els, labels, drops); + if (new MetaGrammar.Target(m).isCompatible(p)) + return new MetaGrammar.Target(m).makeSequence(p); for(Class c : _inner) for(Constructor con : c.getConstructors()) - if (new MetaGrammar.Target(con).isCompatible(tag, nonTerminalName, els, labels, drops)) - return new MetaGrammar.Target(con).makeSequence(tag, nonTerminalName, els, labels, drops); + if (new MetaGrammar.Target(con).isCompatible(p)) + return new MetaGrammar.Target(con).makeSequence(p); for(Class c : _inner) - if (new MetaGrammar.Target(c).isCompatible(tag, nonTerminalName, els, labels, drops)) - return new MetaGrammar.Target(c).makeSequence(tag, nonTerminalName, els, labels, drops); + if (new MetaGrammar.Target(c).isCompatible(p)) + return new MetaGrammar.Target(c).makeSequence(p); return null; } public Sequence resolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) { + MetaGrammar.Production p = new MetaGrammar.Production(tag, nonTerminalName, els, labels, drops); Sequence ret = tryResolveTag(tag, nonTerminalName, els, labels, drops); if (ret != null) return ret; String message = "could not find a Java method/class/ctor matching tag \""+tag+