X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FSequence.java;h=f4315182d654770e32ee45c8cc9017a3d17dda1e;hp=2530a211cf0a996591a4248f6ab83e447fa66579;hb=75d0fa39d405292f4b831a6d1743f2aeea01ebd4;hpb=9b031db4cefc550c82a8bb6da3b061d3790c2cdc;ds=inline diff --git a/src/edu/berkeley/sbp/Sequence.java b/src/edu/berkeley/sbp/Sequence.java index 2530a21..f431518 100644 --- a/src/edu/berkeley/sbp/Sequence.java +++ b/src/edu/berkeley/sbp/Sequence.java @@ -39,25 +39,25 @@ public abstract class Sequence extends Element implements Iterable { public static Sequence create(Element e) { return create(new Element[] { e }, 0); } /** create a sequence which drops the result of all but one of its element */ - public static Sequence create(Element[] e, int idx) { return new Singleton(e, idx); } - - /** after matching the sequence, insert a constant into the output tree */ - public static Sequence newConstantSequence(Element[] e, Object o) { return new Constant(e, o); } + public static Sequence create(Element[] e, int which) { return new Singleton(e, which); } + /** create a sequence which always evaluates to a constant result */ + public static Sequence create(Element[] e, Object result) { return new Constant(e, result); } /** - * after matching the sequence, create the specified output tree - * @param tag the tag for the output tree + * create a sequence (general form) + * @param head the head of the output tree * @param e the elements to match - * @param drops only elements of e whose corresponding boolean in drops + * @param drop only elements of e whose corresponding boolean in drops * is false will be included in the output tree - * @param unwrap if true, all children of the last child (ie - * grandchildren) are promoted to children of this node; this is very useful for matching repetitions + * @param foster if true, all children of the last child (ie + * grandchildren) are promoted to children of this + * node; this is very useful for matching repetitions **/ - public static Sequence create(Object tag, Element[] e, boolean[] drops, boolean unwrap) { - return unwrap - ? new Unwrap(e, tag, drops) - : new RewritingSequence(tag, e, drops); + public static Sequence create(Object head, Element[] e, boolean[] drop, boolean foster) { + return foster + ? new Unwrap(e, head, drop) + : new RewritingSequence(head, e, drop); } ////////////////////////////////////////////////////////////////////////////////