A lot of developers consider that a language is only as good as the tooling that accompanies it. Ada has been conceived as a language pretty well amenable to tooling, yet the tooling offer besides AdaCore's is not very extensive, at least when compared to other languages like Java, despite the existence of the ASIS project (Ada Semantic Interface Specification).
One of Libadalang's aims is to help solve that by providing an easy way to build new Ada-aware tools. Libadalang is a library that allows the user to query information about Ada code, including: Syntactic information. Query the token stream, the syntax tree, find syntax patterns, etc. Semantic information, such as which declaration an identifier references, the type of expressions, all references to a declaration, etc.
In addition, one of the aims is to allow the users to modify the trees, and propagate the changes to the source.
This talk will go over what Libadalang can already do today, how it differs from ASIS, future plans for the library, and potential exciting use cases.
Speakers: Raphaƫl Amiard Pierre-Marie De Rodat