catala/compiler/plugins
Louis Gesbert 209be6b758 Improve integration of marks into the main AST
Two interdependent changes here:
1. Enforce all instances of Shared_ast.gexpr to use the generic type for marks.
   This makes the interfaces a tad simpler to manipulate: you now write
   `('a, 'm) gexpr` rather than `('a, 'm mark) gexpr`.
2. Define a polymorphic `Custom` mark case for use by pass-specific annotations.
   And leverage this in the typing module
2023-05-17 17:37:00 +02:00
..
api_web.ml Rework and normalise the Marked interface 2023-05-17 17:37:00 +02:00
dune Add experimental lazy interpreter as a plugin 2023-04-14 16:56:57 +02:00
json_schema.ml Rework and normalise the Marked interface 2023-05-17 17:37:00 +02:00
lazy_interp.ml Improve integration of marks into the main AST 2023-05-17 17:37:00 +02:00
plugins.mld feat(build): add the generation of json schemas to the build workflow 2022-07-29 18:47:42 +02:00
python.ml Rename utils to catala_utils 2022-11-28 16:38:09 +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.