Implement incremental lexing.
The contract is that * UPDATE-SYNTAX notes the latest possible position that is known to be valid. * UPDATE-SYNTAX-FOR-DISPLAY, within the display bounds, attempts to revalidate the previous lex if possible, or relex if not. After UPDATE-SYNTAX-FOR-DISPLAY has finished, the entirety of the remaining lexemes are known valid (all the rest have been deleted). This may be wrong: it may be that, since lexing takes essentially no time at all, the whole buffer should be relexed each time.
Showing with 29 additions and 21 deletions