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;