This is a pain in the ass. The Java code really needs replaced. I've looked at the few D parser generators, but for various reasons I think I'm going to settle on sid from the TenDRA project.

My reasons for this are multitude. Primarily, I work with one of the TenDRA maintainers who will happily support me while using sid. This requires a new language backend to be implemented for sid, but in return, we may get all this:

- "Reentrant" parser generator capable of outputting to D (I need this for a future project I'm planning, and the maintainer in question assures me sid is capable of it).
- Access to the TenDRA C grammars which are defined in terms of sid. Again I would like this for a future project.