+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
package edu.berkeley.sbp.meta;
import edu.berkeley.sbp.util.*;
import edu.berkeley.sbp.*;
protected Repeat(final Element e, boolean zeroOkay, boolean manyOkay, final Element separator, boolean maximal, Object tag, Atom follow) {
super(e+(!manyOkay ? "?" : (zeroOkay ? (maximal ? "**" : "*") : (maximal ? "++" : "+")))+(separator==null?"":("/"+separator)), true);
if (zeroOkay && !manyOkay) {
- add(Sequence.newEmptySequence().followedBy(follow));
- add(Sequence.newSingletonSequence(e).followedBy(follow));
+ add(Sequence.create().followedBy(follow));
+ add(Sequence.create(e).followedBy(follow));
return;
}
if (zeroOkay) {
- add(Sequence.newRewritingSequence(tag, new Element[] { }, null).followedBy(follow));
+ add(Sequence.create(tag, new Element[] { }, null, false).followedBy(follow));
//add(new Sequence.Constant.Empty());
// FUGLY
- add(Sequence.newSingletonSequence(many1(e, separator, tag)).followedBy(follow));
+ add(Sequence.create(many1(e, separator, tag)).followedBy(follow));
} else {
- add(Sequence.newRewritingSequence(tag, new Element[] { e }, null).followedBy(follow));
+ add(Sequence.create(tag, new Element[] { e }, null, false).followedBy(follow));
if (separator==null)
- add(Sequence.newUnwrapSequence(new Element[] { e, Repeat.this }, tag, new boolean[] { false, false }).followedBy(follow));
+ add(Sequence.create(tag, new Element[] { e, Repeat.this }, new boolean[] { false, false }, true).followedBy(follow));
else
- add(Sequence.newUnwrapSequence(new Element[] { e, separator, Repeat.this }, tag, new boolean[] { false, true, false }).followedBy(follow));
+ add(Sequence.create(tag, new Element[] { e, separator, Repeat.this }, new boolean[] { false, true, false }, true).followedBy(follow));
}
}