reentrant parser (but not for scanner)
reentrant scanner