/** * Returns a successful parse result at the current position. * * @param value the value of the parse result */ public Success success(Object value) { return success(value, position); }
@Override public Result parseOn(Context context) { return context.success(null); }
/** * Returns a successful parse result at the current position. * * @param value the value of the parse result */ public Success success(Object value) { return success(value, position); }
@Override public Result parseOn(Context context) { return context.success(null); }
@Override public Result parseOn(Context context) { String buffer = context.getBuffer(); int start = context.getPosition(); int stop = start + size; if (stop <= buffer.length()) { String result = buffer.substring(start, stop); if (predicate.test(result)) { return context.success(result, stop); } } return context.failure(message); }
@Override public Result parseOn(Context context) { String buffer = context.getBuffer(); int start = context.getPosition(); int stop = start + size; if (stop <= buffer.length()) { String result = buffer.substring(start, stop); if (predicate.test(result)) { return context.success(result, stop); } } return context.failure(message); }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { return result; } else { return context.success(otherwise); } }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { return result; } else { return context.success(otherwise); } }
@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); }
@Override public Result parseOn(Context context) { String buffer = context.getBuffer(); int position = context.getPosition(); if (position < buffer.length()) { char result = buffer.charAt(position); if (matcher.test(result)) { return context.success(result, position + 1); } } return context.failure(message); }
@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); }
@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 (max == UNBOUNDED || elements.size() < max) { Result result = delegate.parseOn(current); if (result.isFailure()) { return current.success(elements); } elements.add(result.get()); current = result; } return current.success(elements); }
@Override public Result parseOn(Context context) { String buffer = context.getBuffer(); int position = context.getPosition(); if (position < buffer.length()) { char result = buffer.charAt(position); if (matcher.test(result)) { return context.success(result, position + 1); } } 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 (max == UNBOUNDED || elements.size() < max) { Result result = delegate.parseOn(current); if (result.isFailure()) { return current.success(elements); } elements.add(result.get()); current = result; } return current.success(elements); }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { return context.success(result.get()); } else { return result; } }
@Override public Result parseOn(Context context) { Result result = delegate.parseOn(context); if (result.isSuccess()) { return context.success(result.get()); } else { return result; } }
@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) { 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; } } }