version 3 by Jon Ingold
Book 5 - Parser with added tracking information
Here's where we start rewriting the internals. If you're adapting IP to work with other extensions, this is where you need to look.
There are no structural or flow changes here. All we do is record how far we got on each pass through, and additional information like what we were hoping to find next, for use in making suggestions.