As far as I can tell, parser generators are harder to use and understand than recursive descent parsers because they involve feeding an abstract spec of your language into a tool designed for <i>any</i> language whereas a recursive descent parser involves creating a tool more or less specific to your language.<p>Now, it seems to me that being easier to use and understand is an inherent advantage - I can&#x27;t see how easier to understand doesn&#x27;t make bugs easier to understand and so-forth.<p>Moreover, constructing a recursive descent parser involves understanding and transforming your language, an exercise which can also discover ambiguities and give a &quot;deeper&quot; understanding as well. It&#x27;s hard for me to see Bison commands + code fragments as the ultimate in illumination concerning one&#x27;s language&#x27;s properties.