For a description of the extension, see the GNAT reference manual.
An effort has been made to minimize the impact on parsing error recovery.
Basic benchmarking was performed and showed no observable performance
impact.
Move most of "ada/*" to the root directory (this makes sense, as this
repository has been dedicated to Libadalang for years), and rename
"ada/language" to "ada".
TN: T914-010
* Basically we now parse a list of elements rather than one element, which
has the benefit of:
* Allow parsing pragmas
* Allow empty files syntactically
* Allow parsing multiple bodies as part of a file
* ada/ada_parser/bodies.py: Update the field CompilationUnit.body ->
bodies to account for the fact that it is now a list
* Tests:
* Update baselines where needed
* Adapt python tests to the new tree structure
* Adapt C tests to the new tree structure
* Correct the tree_full_dump python test, which was not
printing lists anymore
Change-Id: I1112c478312ceb84fbd1605d4746ccdf11d1f277
Revamp the analysis context primitives to create/remove analysis units
so that:
* their behavior is defined in error cases
* reparsing is possible
* parsing from a memory buffer is possible
Update existing testcases to cope with these changes and add new ones to
exercise these features in the C and Python APIs.
Followup on O519-029
Change-Id: I409d63bef32cb1a920f402d7957ba8cd2668eb66