X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FMetaGrammar.java;h=e39fd4bac79af0a63e3e1759426fb38bd639d243;hb=8129e3bcdf7df528a636daf66e0b35b1dceb153f;hp=2077bbd3be734ab61c8634c280d9df0e94f8f076;hpb=b5ae4ceb563fd4d52514ef4f4206c5c2be8140ca;p=sbp.git diff --git a/src/edu/berkeley/sbp/meta/MetaGrammar.java b/src/edu/berkeley/sbp/meta/MetaGrammar.java index 2077bbd..e39fd4b 100644 --- a/src/edu/berkeley/sbp/meta/MetaGrammar.java +++ b/src/edu/berkeley/sbp/meta/MetaGrammar.java @@ -121,22 +121,24 @@ public class MetaGrammar { public boolean isCompatible(Production p) { bind.as t = getBindAs(); + bind b = getBind(); + if (t != null && - (t.value().equals(p.tag) || - (t.value().equals("") && getName().equals(p.tag)))) + (t.value().equals(p.tag))) return buildSequence(p)!=null; - bind b = getBind(); - //System.out.println(_bindable.getClass().getSimpleName() + ": " + _bindable.getSimpleName()); + if (t != null && + ((t.value().equals("") && getName().equals(p.tag)))) + return buildSequence(p)!=null; if (b != null && getName().equals(p.tag)) return buildSequence(p)!=null; - bind.as n = getBindAs(); - if (n != null && - (n.value().equals(p.nonTerminal) || - (n.value().equals("") && getName().equals(p.nonTerminal)))) + if (t != null && + (t.value().equals(p.nonTerminal))) + return buildSequence(p)!=null; + if (t != null && + ((t.value().equals("") && getName().equals(p.nonTerminal)))) return buildSequence(p)!=null; - if (b != null && getName().equals(p.nonTerminal)) return buildSequence(p)!=null;