AdaCore / uwrap

1 stars 0 forks source link

UWrap

UWrap is a tool aimed at processing tree structures, identifying patterns and generating another tree structure as a result. The main use case currently implemented and documented is to process an Ada source tree generated by libadalang in order to either generate various kind of messages and analysis, or to wrap it around another Ada source file. This can be used in particular to wrap a thin binding generated by -fdump-ada-specs to a thicker binding.

Documentation

NOTE ON THE CURRENT STAGE OF THE DOCUMENTATION

Since it was initially written, many elements of the language have evolved (although the fundamental concepts have not changed). The current documentation is not up to date and describes syntactically and sometimes semantically incorrect structures. The testsuite, however, is up to date and can be used as a reference.

Full documentation is currently work in progress. However, a tutorial is available to provide basic concepts from a user point of view.

Build

To build UWrap, you will need a recent version of the GNAT Ada compiler, as well as Langkit and Libadalang.

To make the project, you will first need to build its two dependencies lang_template and lang_test, and properly set the path:

cd lang_test
make
cd ../lang_template
make
cd ..
source env.sh
gprbuild

This will create the uwrap executable under obj/. Note that this executable needs to stay here, as it expects specific files under ../include.