Round-trip engineering is a necessity for compiler compilers like Yacc that allow or require “bottom-design surgery” of action code to be articulated independently of the “top design mutation” of BNF or EBNF grammar. I had addressed it by creating an “assembly-line archiving” scheme that could maintain intermediate “digestion” or “meta-design” states between top design and bottom design. I produced “manufacturing scripts” in Perl to stage the Meld editor and other multipane Linux editors for end-to-end reconcilation of design changes from any design state (top, bottom, or in between).
Having this necessity with RecDescent, Yacc, and Bison I applied a GUI-controlled architecture as an IDE superstructure called GAEMY
Two versions of GAEMY have been implemented in Ubuntu Linux, and I plan to extend this design into an IDE called MetaGram, which will be used to shepherd Bison, RecDescent, and DParser, among others.
The planned use of MetaGram will be to produce translators and spiritext compilers for various MetaCalculus dialects, including its NeoFortran dialects (interoperable as G95 generators), and “wrapper translators” for MC dialects of Python and other so-called dynamic languages.