- 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);