catala/compiler/surface
Louis Gesbert a415355a39 Rework the AST Gadt to allow merging of different ASTs
The phantom polymorphic variant qualifying AST nodes is reversed:
- previously, we were explicitely restricting each AST node to the passes where it belonged using a closed type (e.g. `[< dcalc | lcalc]`)
- now, each node instead declares the "feature" it provides using an open type (e.g. `[> 'Exceptions ]`)
- then the AST for a specific pass limits the features it allows with a closed type

The result is that you can mix and match all features if you wish,
even if the result is not a valid AST for any given pass. More
interestingly, it's now easier to write a function that works on
different ASTs at once (it's the inferred default if you don't write a
type restriction).

The opportunity was also taken to simplify the encoding of the
operators, which don't need a second type parameter anymore.
2023-03-30 15:30:08 +02:00
..
.ocamlformat-ignore Workaround some ocamlformat crashes 2022-05-11 16:21:07 +02:00
ast.ml Add date rounding option within scopes 2023-03-16 16:55:55 +01:00
dune Rework the AST Gadt to allow merging of different ASTs 2023-03-30 15:30:08 +02:00
fill_error_tokens.py Big renaming and dir reorg 2021-06-21 11:39:06 +02:00
fill_positions.ml Rename utils to catala_utils 2022-11-28 16:38:09 +01:00
fill_positions.mli Big reformatting 2022-03-08 15:03:14 +01:00
lexer_common.ml Add all missing parser error messages 2023-02-13 10:51:42 +01:00
lexer_common.mli Rename utils to catala_utils 2022-11-28 16:38:09 +01:00
lexer_en.cppo.ml Collection syntax: re-add combined filter+map 2022-12-19 15:17:17 +01:00
lexer_en.mli Big reformatting 2022-03-08 15:03:14 +01:00
lexer_fr.cppo.ml Collection syntax: re-add combined filter+map 2022-12-19 15:17:17 +01:00
lexer_fr.mli Big reformatting 2022-03-08 15:03:14 +01:00
lexer_pl.cppo.ml Collection syntax: re-add combined filter+map 2022-12-19 15:17:17 +01:00
lexer_pl.mli Big reformatting 2022-03-08 15:03:14 +01:00
lexer.cppo.ml Fix literate output of dates 2023-03-21 16:59:34 +01:00
parse_utils.ml Big reformatting 2022-03-08 15:03:14 +01:00
parse_utils.mli Big reformatting 2022-03-08 15:03:14 +01:00
parser_driver.ml Rename utils to catala_utils 2022-11-28 16:38:09 +01:00
parser_driver.mli Rename utils to catala_utils 2022-11-28 16:38:09 +01:00
parser_errors.mli Big reformatting 2022-03-08 15:03:14 +01:00
parser.messages Add date rounding option within scopes 2023-03-16 16:55:55 +01:00
parser.mly Update parser error message 2023-03-16 17:20:13 +01:00
print.ml Add support for paths in the parser 2023-01-16 12:09:23 +01:00
print.mli Big reformatting 2022-03-08 15:03:14 +01:00
surface.mld Documentation pass 2022-01-19 10:54:16 +01:00
tokens.mly Add all missing parser error messages 2023-02-13 10:51:42 +01:00