X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FProduction.java;h=5da0bcae1d364476c05d9967b76bace4a6da048a;hp=08588d9c3e953cb9bbbbc699d8ee06a20caa9c9a;hb=5ae7d4fd7c53dab6df9aae2e42579efabf66f49e;hpb=1b5d6cf8ab6963d50c168c9daeb7887b45a343ea diff --git a/src/edu/berkeley/sbp/meta/Production.java b/src/edu/berkeley/sbp/meta/Production.java index 08588d9..5da0bca 100644 --- a/src/edu/berkeley/sbp/meta/Production.java +++ b/src/edu/berkeley/sbp/meta/Production.java @@ -11,10 +11,13 @@ import java.io.*; public class Production { public String tag; + public String nonTerminal; public boolean[] drops; public Element[] elements; - public String nonTerminal; public int count = 0; + + public String tag() { return tag==null ? nonTerminal : tag; } + public Production(String tag, Element[] elements, boolean[] drops) { this(tag, tag, elements, drops); } public Production(String tag, String nonTerminal, Element[] elements, boolean[] drops) { this.tag = tag; @@ -106,9 +109,9 @@ public class Production { } if (_bindable.isAnnotationPresent(bind.raw.class)) - return Sequence.rewritingSequence(new Tree.RawBindingFunctor(_bindable.createBinding()), elements, drops); + return Sequence.rewritingSequence(new Tree.RawBindingFunctor(tag(), _bindable.createBinding()), elements, drops); int[] map = buildSequence(_bindable); - return Sequence.rewritingSequence(new Tree.BindingFunctor(_bindable.createBinding()), elements, drops); + return Sequence.rewritingSequence(new Tree.BindingFunctor(tag(), _bindable.createBinding()), elements, drops); } }