catala/compiler/plugins
Louis Gesbert 3649f92975 Rework resolution of module elements
This changes the `decl_ctx` to be toplevel only, with flattened references to
uids for most elements. The module hierarchy, which is still useful in a few
places, is kept separately.

Module names are also changed to UIDs early on, and support for module aliases
has been added (needs testing).

This resolves some issues with lookup, and should be much more robust, as well
as more convenient for most lookups.

The `decl_ctx` was also extended for string ident lookups, which avoids having
to keep the desugared resolution structure available throughout the compilation
chain.
2023-11-30 21:14:12 +01:00
..
api_web.ml Rework resolution of module elements 2023-11-30 21:14:12 +01:00
dune Rework module includes CLI in Catala 2023-09-27 13:14:40 +02:00
explain.ml Rework resolution of module elements 2023-11-30 21:14:12 +01:00
json_schema.ml Rework resolution of module elements 2023-11-30 21:14:12 +01:00
lazy_interp.ml Rework resolution of module elements 2023-11-30 21:14:12 +01:00
plugins.mld Remove generated files from git 2023-07-10 15:48:11 +02:00
python.ml Rework resolution of module elements 2023-11-30 21:14:12 +01:00
README.md Documentation about plugins 2022-08-09 15:00:13 +02:00

Catala compiler plugins

You want to add a customized backend for the Catala compiler but don't want to modify its source code? Thanks to dynamic linking, it is possible to do so. The advantage of creating a customized backend is the possibility to craft a generated target code that perfectly matches the naming conventions, module structure or coding style of your application.

See the online documentation for more details on how to create them, or look at the existing plugins in this directory for inspiration.