final List<LeafPattern> parsed = list(); while (tokens.current() != null) { if ("--".equals(tokens.current())) { if (tokens.current().startsWith("--")) { parsed.addAll(parseLong(tokens, options)); else if (tokens.current().startsWith("-") && !"-".equals(tokens.current())) { parsed.addAll(parseShorts(tokens, options));
final List<LeafPattern> parsed = list(); while (tokens.current() != null) { if ("--".equals(tokens.current())) { if (tokens.current().startsWith("--")) { parsed.addAll(parseLong(tokens, options)); else if (tokens.current().startsWith("-") && !"-".equals(tokens.current())) { parsed.addAll(parseShorts(tokens, options));
/** * <pre> * seq ::= ( atom [ '...' ] )* ; * </pre> */ private static List<Pattern> parseSeq(final Tokens tokens, final List<Option> options) { final List<Pattern> result = list(); // >>> while tokens.current() not in [None, ']', ')', '|'] while (!in(tokens.current(), null, "]", ")", "|")) { List<? extends Pattern> atom = parseAtom(tokens, options); if ("...".equals(tokens.current())) { atom = list(new OneOrMore(atom)); tokens.move(); } result.addAll(atom); } return result; }
/** * <pre> * seq ::= ( atom [ '...' ] )* ; * </pre> */ private static List<Pattern> parseSeq(final Tokens tokens, final List<Option> options) { final List<Pattern> result = list(); // >>> while tokens.current() not in [None, ']', ')', '|'] while (!in(tokens.current(), null, "]", ")", "|")) { List<? extends Pattern> atom = parseAtom(tokens, options); if ("...".equals(tokens.current())) { atom = list(new OneOrMore(atom)); tokens.move(); } result.addAll(atom); } return result; }
/** * <pre> * expr ::= seq ( '|' seq )* ; * </pre> */ private static List<? extends Pattern> parseExpr(final Tokens tokens, final List<Option> options) { List<Pattern> seq = parseSeq(tokens, options); if (!"|".equals(tokens.current())) { return seq; } final List<Pattern> result = (seq.size() > 1) ? list((Pattern) new Required( seq)) : seq; while ("|".equals(tokens.current())) { tokens.move(); seq = parseSeq(tokens, options); result.addAll((seq.size() > 1) ? list(new Required(seq)) : seq); } return (result.size() > 1) ? list(new Either(result)) : result; }
/** * <pre> * expr ::= seq ( '|' seq )* ; * </pre> */ private static List<? extends Pattern> parseExpr(final Tokens tokens, final List<Option> options) { List<Pattern> seq = parseSeq(tokens, options); if (!"|".equals(tokens.current())) { return seq; } final List<Pattern> result = (seq.size() > 1) ? list((Pattern) new Required( seq)) : seq; while ("|".equals(tokens.current())) { tokens.move(); seq = parseSeq(tokens, options); result.addAll((seq.size() > 1) ? list(new Required(seq)) : seq); } return (result.size() > 1) ? list(new Either(result)) : result; }
private static Required parsePattern(final String source, final List<Option> options) { final Tokens tokens = Tokens.fromPattern(source); final List<? extends Pattern> result = parseExpr(tokens, options); if (tokens.current() != null) { throw tokens.error("unexpected ending: %s", join(" ", tokens)); } return new Required(result); }
private static Required parsePattern(final String source, final List<Option> options) { final Tokens tokens = Tokens.fromPattern(source); final List<? extends Pattern> result = parseExpr(tokens, options); if (tokens.current() != null) { throw tokens.error("unexpected ending: %s", join(" ", tokens)); } return new Required(result); }
final String u = tokens.current(); if (u == null || "--".equals(u)) { throw tokens.error("%s requires argument",
final String u = tokens.current(); if (u == null || "--".equals(u)) { throw tokens.error("%s requires argument",
final String token = tokens.current();
final String token = tokens.current();
final String u = tokens.current(); if (u == null || "--".equals(u)) { throw tokens.error("%s requires argument",
final String u = tokens.current(); if (u == null || "--".equals(u)) { throw tokens.error("%s requires argument",