X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FMetaGrammarBindings.java;h=4ae0393fd93655c3f044ceaaefe4b5c4459dd7d8;hp=b0b86da4b86b33be7aaaeed99290b0d3029eada2;hb=d3b6ed95cbac8aaa7efb2babad4fb22a12ff2760;hpb=fb8694140dd9736855795e64a9bd4c3d50f7f2ea diff --git a/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java b/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java index b0b86da..4ae0393 100644 --- a/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java +++ b/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java @@ -225,9 +225,9 @@ public class MetaGrammarBindings extends AnnotationGrammarBindings { } public Sequence build(Context cx, Union u, NonTerminalNode cnt) { Sequence ret = build0(cx, cnt); - for(Seq s : and) { Sequence dork = s.build(cx, u, cnt); ret = ret.and(dork); } - for(Seq s : not) { Sequence dork = s.build(cx, u, cnt); ret = ret.andnot(dork); } - u.add(ret); + for(Seq s : and) { Sequence dork = s.build(cx, null, cnt); ret = ret.and(dork); } + for(Seq s : not) { Sequence dork = s.build(cx, null, cnt); ret = ret.andnot(dork); } + if (u!=null) u.add(ret); return ret; } public Sequence build0(Context cx, NonTerminalNode cnt) { @@ -266,10 +266,6 @@ public class MetaGrammarBindings extends AnnotationGrammarBindings { public static @bind.as("Elements") Seq seq2(ElementNode[] elements) { return new Seq(elements); } public static @bind.as Seq psx(Seq s) { return s; } public static @bind.as(":") ElementNode colon(String s, ElementNode e) { return new Label(s, e); } - public static @bind.as("{") ElementNode leftBrace() { - return new Drop(new CharClass(new Range[] { new Range(CharAtom.left, CharAtom.left) })); } - public static @bind.as("}") ElementNode rightBrace() { - return new Drop(new CharClass(new Range[] { new Range(CharAtom.right, CharAtom.right) })); } public static @bind.as(")") void close(String foo) { throw new Error("not supported"); } public static @bind.as("()") ElementNode epsilon() { return new Constant(epsilon); }