from rsc:
The most common failure mode for a bad split function is an infinite loop
generating empty tokens at EOF. Programs that used to 'work' now hang. I saw
this a couple times updating Google code. Should we make the Scanner
implementation count empty tokens at EOF and panic if it sees 100 or something
like that?