There was a guy here some months back working on restoring/re-engineering an Ada83 compiler (one using DIANA). I’m in the middle of reading through the documentation to implement IDL (DIANA is an instance of IDL), and interested in producing a new/updated version of DIANA. — Integrating your tree-sitter with these would give you a full frontend.
Note:
DIANA: An abstract datatype which is an attributed tree, originally produced/defined by/in/with IDL for the express purpose of storing Ada programs. — Designed to:
be source-text recoverable,
only store valid Ada programs,
be a common IR for compilers and tools, and
allow a common-core so that consumers and producers can interoperate.
(E.G. A new static analyzer or proof-system decorating the tree with custom ‘Proof_Nodes’ which could direct code generation from backends aware of these proofs, or else be ignored by code-generators ignorant of this class of nodes.)
IDL: A definition language for specifying data-structures in a language-portable manner.
I am still working in my corner on the Ada 83 compiler. It is a very complex task, but there is some progress, TEXT_IO has many usable features. I am working on type templates and DIRECT_IO. A second repository (mainly synchronised with framagit) is on github : GitHub - ViMoBr/Ada83_TLALOC · GitHub . If somebody needs information, just ask.