boolean (final Processor<? super WordOccurrence> processor, final CharSequence tokenText, int from, int to, final WordOccurrence.Kind kind, WordOccurrence occurrence) { // This code seems strange but it is more effective as Character.isJavaIdentifier_xxx_ is quite costly operation due to unicode int index = from; ScanWordsLoop: while (true) { while (true) { if (index == to) break ScanWordsLoop; char c = tokenText.charAt(index); if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || (Character.isJavaIdentifierStart(c) && c != '$')) { break; } index++; } int index1 = index; while (true) { index++; if (index == to) break; char c = tokenText.charAt(index); if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) continue; if (!Character.isJavaIdentifierPart(c) || c == '$') break; } if (occurrence == null) occurrence = new WordOccurrence(tokenText,index1, index, kind); else occurrence.init(tokenText,index1, index, kind); if (!processor.process(occurrence)) return false; } return true; }