+
+ // Repeat //////////////////////////////////////////////////////////////////////////////
+
+ /** repeat zero or one times */
+ public static Repeat maybe(Element e) { return new Repeat(e, true, false, null, false); }
+ public static Repeat maybe(Element e, Object tag) { return new Repeat(e, true, false, null, false, tag); }
+ /** repeat zero or more times */
+ public static Repeat many0(Element e) { return new Repeat(e, true, true, null, false); }
+ public static Repeat many0(Element e, Object tag) { return new Repeat(e, true, true, null, false, tag); }
+ /** repeat zero or more times, separated by <tt>sep</tt> */
+ public static Repeat many0(Element e, Element sep) { return new Repeat(e, true, true, sep, false); }
+ public static Repeat many0(Element e, Element sep, Object tag) { return new Repeat(e, true, true, sep, false, tag); }
+ /** repeat one or more times */
+ public static Repeat many1(Element e) { return new Repeat(e, false, true, null, false); }
+ public static Repeat many1(Element e, Object tag) { return new Repeat(e, false, true, null, false, tag); }
+ /** repeat one or more times, separated by <tt>sep</tt> */
+ public static Repeat many1(Element e, Element sep) { return new Repeat(e, false, true, sep, false); }
+ public static Repeat many1(Element e, Element sep, Object tag) { return new Repeat(e, false, true, sep, false, tag); }
+
+ /** repeat zero or more times, matching a maximal sequence of atoms */
+ public static Repeat maximal0(Element e) { return new Repeat(e, true, true, null, true); }
+ public static Repeat maximal0(Element e, Object tag) { return new Repeat(e, true, true, null, true, tag); }
+ /** repeat one or more times, matching a maximal sequence of atoms */
+ public static Repeat maximal1(Element e) { return new Repeat(e, false, true, null, true); }
+ public static Repeat maximal1(Element e, Object tag) { return new Repeat(e, false, true, null, true, tag); }
+ /** repeat one or more times, separated by an atom <tt>sep</tt>, matching a maximal sequence */
+ public static Repeat maximal1(Element e, Element sep) { return new Repeat(e, false, true, sep, true); }
+ public static Repeat maximal1(Element e, Element sep, Object tag) { return new Repeat(e, false, true, sep, true, tag); }
+
+