static int fullPhraseCache_longestPhraseLength(FullPhraseCache cache, LS tok) { if (cache == null || tok == null) ret -1; int idx = 1, longest = -1; if (nempty(cache.phrases)) longest = idx; while (idx < l(tok)-1) { ifdef fullPhraseCache_longestPhraseLength_debug print("longest=" + longest + ", idx=" + idx + ", phrases=" + cache.phrases + ", next token= " + quote(tok.get(idx))); endifdef cache = cache.byFirstWord.get(tok.get(idx)); if (cache == null) break; if (nempty(cache.phrases)) longest = idx; idx += 2; } ret longest; } static int fullPhraseCache_longestPhraseLength(FullPhraseCache cache, S s) { if (cache == null || s == null) ret -1; ret fullPhraseCache_longestPhraseLength(cache, javaTokNPunctuation_cached(s)); }