update method
Brings lines up to date with text, and returns isComplete.
With a budget, it stops once that much time is spent, after at
least one line, and tokenize continues from there.
Implementation
bool update(String text, {Duration? budget}) {
if (!identical(text, _text)) _start(text);
return tokenize(budget: budget);
}