2020-07-09 14:54:40 -04:00
|
|
|
UWrap
|
|
|
|
|
=====
|
|
|
|
|
|
2021-01-11 10:25:28 -07:00
|
|
|
UWrap is a tool aimed at processing tree structures, identifying patterns and
|
2020-07-09 14:54:40 -04:00
|
|
|
generating another tree structure as a result. The main use case currently
|
|
|
|
|
implemented and documented is to process an Ada source tree generated by
|
2021-01-11 10:25:28 -07:00
|
|
|
libadalang in order to either generate various kind of messages and analysis,
|
2020-07-09 14:54:40 -04:00
|
|
|
or to wrap it around another Ada source file. This can be used in particular
|
2021-01-11 10:25:28 -07:00
|
|
|
to wrap a thin binding generated by -fdump-ada-specs to a thicker binding.
|
2020-07-09 14:54:40 -04:00
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
|
=============
|
|
|
|
|
|
2020-08-20 12:56:58 -04:00
|
|
|
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.
|
|
|
|
|
|
2020-07-09 14:54:40 -04:00
|
|
|
Full documentation is currently work in progress. However, a
|
2020-07-09 14:56:05 -04:00
|
|
|
[tutorial](https://github.com/AdaCore/uwrap/tree/master/documentation/tutorial) is
|
2020-07-09 14:54:40 -04:00
|
|
|
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](https://github.com/AdaCore/langkit) and [Libadalang](https://github.com/AdaCore/libadalang).
|
|
|
|
|
|
|
|
|
|
To make the project, you will first need to build its two dependencies
|
|
|
|
|
lang_template and lang_test, and properly set the path:
|
|
|
|
|
|
|
|
|
|
~~~sh
|
|
|
|
|
cd lang_test
|
|
|
|
|
make
|
|
|
|
|
cd ../lang_template
|
|
|
|
|
make
|
|
|
|
|
cd ..
|
2020-08-31 11:10:06 +02:00
|
|
|
source env.sh
|
2020-07-09 14:54:40 -04:00
|
|
|
gprbuild
|
|
|
|
|
~~~
|
2020-07-09 14:56:05 -04:00
|
|
|
|
|
|
|
|
This will create the uwrap executable under obj/. Note that this executable needs
|
|
|
|
|
to stay here, as it expects specific files under ../include.
|