Don't create a namespace context unless we need one - performance tweak provided by Gunther Laure
Use boost::unordered_set for the String pool rather than my rather rubbish std::list.  Much quicker.  Patch provided by Gunther Laure