I didn't check what it was used for.  I just realized that the pointer was always valid for the lifetime of the tokens.
It was expensive to store (especially if the path is longer, in which case it goes on the heap).

If it really isn't needed though, saving that extra pointer is worth it.
I'm currently looking at replacing pc with iterators, but I can remove this variable later.