Mark, just to clarify, when you say "recursive descent" parser, do you mean a hand written parser, or a table driven LL1 grammar parser. I am just assuming the first, but some of the questions about "reusing the grammar" puzzled me.