if (attemptRecordingMatch()) {
throw new IllegalStateException(); // we failed before so we must fail again
}
// in order to be able to apply fixes we need to wrap the input buffer with a mutability wrapper
inputBuffer = buffer = new MutableInputBuffer(inputBuffer);
do {
performErrorReportingRun();
} while (!fixError(errorIndex));