@Override boolean apply(final ParseContext ctxt) { int at = ctxt.at; CharSequence src = ctxt.characters(); int matchLength = pattern.match(src, at, src.length()); if (matchLength < 0) { ctxt.missing(name); return false; } ctxt.next(matchLength); ctxt.result = null; return true; } @Override public String toString() {
@Override boolean apply(ParseContext ctxt) { int from = ctxt.at; if (!outer.apply(ctxt)) return false; ScannerState innerState = new ScannerState( ctxt.module, ctxt.characters(), from, ctxt.at, ctxt.locator, ctxt.result); ctxt.getTrace().startFresh(innerState); innerState.getTrace().setStateAs(ctxt.getTrace()); return ctxt.applyNested(inner, innerState); } @Override public String toString() {