X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FRepeat.java;h=25581b2e91aef3533c908a96c473c5fb336896ff;hp=0ea201d68ca3adc71a56d9e2be71f4cebb8590a4;hb=0c8e6b67673f47003a92c496a9d005ab7d5354fa;hpb=9b031db4cefc550c82a8bb6da3b061d3790c2cdc diff --git a/src/edu/berkeley/sbp/meta/Repeat.java b/src/edu/berkeley/sbp/meta/Repeat.java index 0ea201d..25581b2 100644 --- a/src/edu/berkeley/sbp/meta/Repeat.java +++ b/src/edu/berkeley/sbp/meta/Repeat.java @@ -1,3 +1,5 @@ +// 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.*; @@ -16,13 +18,21 @@ public class Repeat extends Union { protected Repeat(final Element e, boolean zeroOkay, boolean manyOkay, final Element separator, boolean maximal, Object tag) { this(e, zeroOkay, manyOkay, separator, maximal, tag, null); } 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); + super(e + +(!manyOkay + ? "?" + : (zeroOkay + ? (maximal ? "**" : "*") + : (maximal ? "++" : "+"))) + +(separator==null + ? "" + : ("/"+separator)), + true); if (zeroOkay && !manyOkay) { - add(Sequence.create().followedBy(follow)); - add(Sequence.create(e).followedBy(follow)); - return; - } - if (zeroOkay) { + // FIXME + add(Sequence.create(tag, new Element[] { }, null, false).followedBy(follow)); + add(Sequence.create(tag, new Element[] { e }, null, false).followedBy(follow)); + } else if (zeroOkay) { add(Sequence.create(tag, new Element[] { }, null, false).followedBy(follow)); //add(new Sequence.Constant.Empty()); // FUGLY