public static Quantifier zeroOrMore(Mode mode) { return new Quantifier(mode, 0, null); }
public final int getMin() { return quantifier == null ? 1 : quantifier.getMin(); }
@Override public String toString() { try { StringBuilder sb = new StringBuilder(); toString(sb); return sb.toString(); } catch (IOException e) { throw new AssertionError(e); } }
public void testQuantifier() { new ParserTester("*").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.GREEDY)); new ParserTester("+").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.GREEDY)); new ParserTester("?").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.GREEDY)); new ParserTester("*a").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.GREEDY)); new ParserTester("+a").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.GREEDY)); new ParserTester("?a").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.GREEDY)); new ParserTester("*?").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.RELUCTANT)); new ParserTester("+?").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.RELUCTANT)); new ParserTester("??").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.RELUCTANT)); new ParserTester("*+").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.POSSESSIVE)); new ParserTester("++").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.POSSESSIVE)); new ParserTester("?+").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.POSSESSIVE)); new ParserTester("a").assertParseQuantifier(null); new ParserTester("").assertParseQuantifier(null); new ParserTester("{2}").assertParseQuantifier(Quantifier.exactly(Quantifier.Mode.GREEDY, 2)); new ParserTester("{2,}").assertParseQuantifier(Quantifier.atLeast(Quantifier.Mode.GREEDY, 2)); new ParserTester("{2,4}").assertParseQuantifier(Quantifier.between(Quantifier.Mode.GREEDY, 2, 4)); }
public void testQuantifier() { new ParserTester("*").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.GREEDY)); new ParserTester("+").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.GREEDY)); new ParserTester("?").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.GREEDY)); new ParserTester("*a").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.GREEDY)); new ParserTester("+a").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.GREEDY)); new ParserTester("?a").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.GREEDY)); new ParserTester("*?").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.RELUCTANT)); new ParserTester("+?").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.RELUCTANT)); new ParserTester("??").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.RELUCTANT)); new ParserTester("*+").assertParseQuantifier(Quantifier.zeroOrMore(Quantifier.Mode.POSSESSIVE)); new ParserTester("++").assertParseQuantifier(Quantifier.oneOrMore(Quantifier.Mode.POSSESSIVE)); new ParserTester("?+").assertParseQuantifier(Quantifier.onceOrNotAtAll(Quantifier.Mode.POSSESSIVE)); new ParserTester("a").assertParseQuantifier(null); new ParserTester("").assertParseQuantifier(null); new ParserTester("{2}").assertParseQuantifier(Quantifier.exactly(Quantifier.Mode.GREEDY, 2)); new ParserTester("{2,}").assertParseQuantifier(Quantifier.atLeast(Quantifier.Mode.GREEDY, 2)); new ParserTester("{2,4}").assertParseQuantifier(Quantifier.between(Quantifier.Mode.GREEDY, 2, 4)); }
@Override public String toString() { try { StringBuilder sb = new StringBuilder(); toString(sb); return sb.toString(); } catch (IOException e) { throw new AssertionError(e); } }
public static Quantifier atLeast(Mode mode, int value) { return new Quantifier(mode, value, null); }
public final int getMin() { return quantifier == null ? 1 : quantifier.getMin(); }
@Override public final String toString() { StringBuilder sb = new StringBuilder(); if (quantifier != null) { String q = quantifier.toString(); sb.append('<').append(q).append('>'); writeTo(sb); sb.append("</").append(q).append('>'); } else { writeTo(sb); } return sb.toString(); }
public static Quantifier between(Mode mode, int min, int max) { return new Quantifier(mode, min, max); }
@Override public final String toString() { StringBuilder sb = new StringBuilder(); if (quantifier != null) { String q = quantifier.toString(); sb.append('<').append(q).append('>'); writeTo(sb); sb.append("</").append(q).append('>'); } else { writeTo(sb); } return sb.toString(); }
public static Quantifier oneOrMore(Mode mode) { return new Quantifier(mode, 1, null); }
protected void visit(RENode.Assertion.Begin expr) throws IOException { appendable.append('^'); if (expr.getQuantifier() != null) { expr.getQuantifier().toString(appendable); } }
public static Quantifier atLeast(Mode mode, int value) { return new Quantifier(mode, value, null); }
protected void visit(RENode.Any expr) throws IOException { appendable.append('.'); if (expr.getQuantifier() != null) { expr.getQuantifier().toString(appendable); } }
public static Quantifier exactly(Mode mode, int value) { return new Quantifier(mode, value, value); }
protected void visit(RENode.Assertion.Begin expr) throws IOException { appendable.append('^'); if (expr.getQuantifier() != null) { expr.getQuantifier().toString(appendable); } }
public static Quantifier between(Mode mode, int min, int max) { return new Quantifier(mode, min, max); }
protected void visit(RENode.Assertion.End expr) throws IOException { appendable.append('$'); if (expr.getQuantifier() != null) { expr.getQuantifier().toString(appendable); } }
public static Quantifier onceOrNotAtAll(Mode mode) { return new Quantifier(mode, 0, 1); }