I wrote one several years ago to parse a COBOL data division source code.
We took that parsed tokens to create a XML file and to dynamically build a user interface to test IMS transactions and to generate VB6 code to break that transaction result into XML documents.