void () { if (isEof()) { error(myExpectedMessage != null ? myExpectedMessage : LangBundle.message("unexpected.eof")); return; } TokenParser parser = findParser(); if (parser == null) { error(myExpectedMessage != null ? myExpectedMessage : LangBundle.message("unexpected.token")); return; } myStartMarker = mark(); while (!isEof()) { int startOffset = myBuilder.getCurrentOffset(); if (!parser.parseToken(this)) break; assert startOffset < myBuilder.getCurrentOffset() : "Endless loop on " + getTokenType(); parser = findParser(); if (parser == null) break; } myStartMarker.drop(); }