From 1976ed1b8cf49284016a99114e717d46a3be3617 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 5 Jul 2006 01:20:03 -0400 Subject: [PATCH] checkpoint darcs-hash:20060705052003-5007d-d91e4dcf0c5084eb5d9b9cdf398b75f62a194728.gz --- .../sbp/meta/AnnotationGrammarBindingResolver.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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+ -- 1.7.10.4