@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { Token token = new Token(context.getBuffer(), context.getPosition(), result.getPosition(), result.get()); return result.success(token); } else { return result; } }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isFailure()) { return result; } if (result.getPosition() == result.getBuffer().length()) { return result; } return result.failure(message, result.getPosition()); }
@Override public String toString() { return super.toString() + ": " + message; } }
@Override public Result parseOn(Context context) { Context current = context; List<Object> elements = new ArrayList<>(); while (elements.size() < min) { Result result = delegate.parseOn(current); if (result.isFailure()) { return result; } elements.add(result.get()); current = result; } while (true) { Result stop = limit.parseOn(current); if (stop.isSuccess()) { return current.success(elements); } else { if (max != UNBOUNDED && elements.size() >= max) { return stop; } Result result = delegate.parseOn(current); if (result.isFailure()) { return stop; } elements.add(result.get()); current = result; } } }
} else if (value == '&') { Result result = ENTITY.parseOn(context.success(null, position)); if (result.isSuccess() && result.get() != null) { output.append(input, start, position); output.append((char) result.get()); position = result.getPosition(); start = position; } else {
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { String flattened = context.getBuffer() .substring(context.getPosition(), result.getPosition()); return result.success(flattened); } else { return result; } }
/** * Tests if the {@code input} can be successfully parsed. */ public boolean accept(String input) { return parse(input).isSuccess(); }
@Override public Result parseOn(Context context) { Context current = context; List<Object> elements = new ArrayList<>(parsers.length); for (Parser parser : parsers) { Result result = parser.parseOn(current); if (result.isFailure()) { return result; } elements.add(result.get()); current = result; } return current.success(elements); }
VersionGrammarParser parser = new VersionGrammarParser(def); Result parseResult = parser.parse(versionPattern); if (parseResult.isSuccess()) { return parseResult.get(); } else { String msg = String.format("cannot parse version using pattern: %s\nparsing failure: %s", versionPattern, parseResult.getMessage() ); throw new VersionCalculationException(msg);
@Override public Result parseOn(Context context) { Result leftResult = consume(left, context); Result delegateResult = delegate.parseOn(leftResult); if (delegateResult.isFailure()) { return delegateResult; } Result rightResult = consume(right, delegateResult); return rightResult.success(delegateResult.get()); }
/** * Returns a character predicate that matches the provided pattern. */ static CharacterPredicate pattern(String pattern) { return PatternParser.PATTERN.parse(pattern).get(); }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isFailure()) { return context.success(null); } else { return context.failure(message); } }
@Override public Result parseOn(Context context) { Context current = context; List<Object> elements = new ArrayList<>(); while (elements.size() < min) { Result result = delegate.parseOn(current); if (result.isFailure()) { return result; } elements.add(result.get()); current = result; } while (true) { Result stop = limit.parseOn(current); if (stop.isSuccess()) { return current.success(elements); } else { if (max != UNBOUNDED && elements.size() >= max) { return stop; } Result result = delegate.parseOn(current); if (result.isFailure()) { return stop; } elements.add(result.get()); current = result; } } }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { String flattened = context.getBuffer() .substring(context.getPosition(), result.getPosition()); return result.success(flattened); } else { return result; } }
@Override public Result parseOn(Context context) { Result result = null; for (Parser parser : parsers) { result = parser.parseOn(context); if (result.isSuccess()) { return result; } } return result; }
@Override public Result parseOn(Context context) { Context current = context; List<Object> elements = new ArrayList<>(parsers.length); for (Parser parser : parsers) { Result result = parser.parseOn(current); if (result.isFailure()) { return result; } elements.add(result.get()); current = result; } return current.success(elements); }