Faced with the documentation system requirements outlined in the last episode (The Beast Documentation Quest (2)) it took a while to figure that there really was no single documentation tool fulfilling all the needs outlined. So writing a new documentation tool for the Beast project looked like the only viable solution. I wasn't ready to start out rolling a new full fledged C++ parser though... Fortunately, Doxygen includes an XML generation back-end, that will dump all the C/C++ structure after the parsing stage, including comments, into a set of XML files. Unfortunately it unconditionally preprocesses the source code comments. So it required some trickery to circumvent complaints about unknown or invalidly used Doxygen macros when combined with a newly developed macro processor... To get the macro processor going, i wrote a recursive descend parser for "@macro{arguments} more text\n"-style constructs in Python. Added up a syntax facility for new macro definitions, an algorithm to detect and generate s
More
Support this project and others with 1-click micro-donations
