X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FGrammarAST.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FGrammarAST.java;h=66e832320af0a84119af556d5bc30d4a35bb74a8;hp=1c1ef3de09dfb6302742049d243cee5e80c35fae;hb=6e1e10e87fe8cab7c604c38c230900806bc4bb90;hpb=fec264a3cce7bb2f0016343c86c3cc63d7321eac diff --git a/src/edu/berkeley/sbp/meta/GrammarAST.java b/src/edu/berkeley/sbp/meta/GrammarAST.java index 1c1ef3d..66e8323 100644 --- a/src/edu/berkeley/sbp/meta/GrammarAST.java +++ b/src/edu/berkeley/sbp/meta/GrammarAST.java @@ -465,6 +465,7 @@ public class GrammarAST { if (ret == null) throw new RuntimeException("unknown nonterminal \""+nonTerminal+"\""); return ret; } + public String getFieldName() { return StringUtil.uncapitalize(nonTerminal); } } /** a literal string */ @@ -537,6 +538,7 @@ public class GrammarAST { public boolean isDropped(Context cx) { return _e.isDropped(cx); } public Atom toAtom(Context cx) { return _e.toAtom(cx); } public Element build(Context cx, NonTerminalNode cnt, boolean dropall) { return _e.build(cx, cnt, dropall); } + public String getFieldName() { return _e.getFieldName(); } } /** a backtick node indicating that, when building the AST, the node's children should be inserted here */ @@ -561,6 +563,7 @@ public class GrammarAST { private class LabelNode extends ElementNodeWrapper { public final String label; public LabelNode(String label, ElementNode e) { super(e); this.label = label; } + public String getFieldName() { return label; } } //////////////////////////////////////////////////////////////////////////////