+
+ public static class Maximal extends Repeat {
+ public Maximal(final Element e, boolean zeroOkay, boolean manyOkay, final Atom separator, Object tag) {
+ super(e, zeroOkay, manyOkay, separator, true, tag);
+ if (zeroOkay && separator != null)
+ throw new RuntimeException("cannot create a maximal repetition of zero or more items with a separator (yet): " + this);
+ for(Sequence s : this)
+ s.follow = (Atom)separator.complement();
+ }
+ public Maximal(final Atom e, boolean zeroOkay, boolean manyOkay, Object tag) {
+ super(e, zeroOkay, manyOkay, null, true, tag);
+ for(Sequence s : this)
+ s.follow = (Atom)e.complement();
+ }
+ }
+