X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FMetaGrammar.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FMetaGrammar.java;h=3f2ffc77fbed41f42ec1f828d3b75ce6651ff0fe;hp=f1c707549173ada6526747694ac204292fd9e684;hb=d2559f2903cbd048ece9abfb7828d7ca10187812;hpb=74fc87dc827975ed4e9e411bb169a5f5bfb1010f diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index f1c7075..3f2ffc7 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -302,9 +302,11 @@ public class MetaGrammar extends StringWalker { public MetaClause element, separator; public boolean maximal, zero, many; public Element build(BuildContext bc) { - return maximal - ? new Repeat.Maximal(element.build(bc), zero, many, separator==null?null:separator.build(bc), null) - : new Repeat(element.build(bc), zero, many, separator==null?null:separator.build(bc), null); + return !maximal + ? new Repeat(element.build(bc), zero, many, separator==null?null:separator.build(bc), null) + : separator==null + ? new Repeat.Maximal(element.build(bc), zero, many, null) + : new Repeat.Maximal(element.build(bc), zero, many, separator.build(bc), null); } public MetaRepeat(MetaClause element, boolean maximal, MetaClause separator, boolean zero, boolean many) { this.separator = separator;