I had the (mis)fortune to write a Fortran parser for a company in Ireland (Piercom as was) that created an LLVM like technology back in the late 1990’s. The original intent of this technology was to semi-automate modular code to object oriented code. e.g. from COBOL to C++.
Instead, the main market was y2k analysis. This was a big issue for customers who used VMS and the DEC compiler infrastructure. While not legacy at the time, most of the code was written by those that automated early, so codebases changed as the fashion and people changed. Version control, if it existed, used RCS.
DEC compilers at the time allowed you to create programs from sources in C, FORTRAN, COBOL etc, and compile them into a single binary.
So the Fortran compiler front end that i wrote created an AST that was put into a DOM alongside a DOM from all of the other source files an the various languages, and analyzed for code and information flow with other tools.
So i learned to hate Fortran, especially Fortran77, with a passion unrivaled except probably by anyone else who has to hand roll a Fortran77 lexer in flex. Remember in fortran spaces are for wimps, predefining variables is a bad habit, and using variable names that do not clash with what should be a reserved word is so last century.
I seem to remember something like this as valid parsable code. dododo=10,do,do docontinue
Well there is is. My shame revealed for all with eyes to see.