C is notoriously painful to parse with a parser generator because it&#x27;s not context free --- consider this statement:<p><pre><code>    foo * bar;
</code></pre>
It can&#x27;t be parsed until you know whether foo is a type or a variable --- indeed, depending on the implementation, it can&#x27;t even be tokenised correctly. So you need hooks from the symbol table back into the tokeniser&#x2F;parser. I&#x27;m not at all surprised that the author&#x27;s using a hand-written parser, as it reduces the problem space considerably.<p>(There&#x27;s a really good article which I&#x27;ve been trying to find which goes into details about all the weird parsing edge cases due to the rules about exactly when a word goes into the symbol table which I&#x27;ve been completely unable to find...)