mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 07:51:43 +03:00
a415355a39
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. |
||
---|---|---|
.. | ||
.ocamlformat-ignore | ||
ast.ml | ||
dune | ||
fill_error_tokens.py | ||
fill_positions.ml | ||
fill_positions.mli | ||
lexer_common.ml | ||
lexer_common.mli | ||
lexer_en.cppo.ml | ||
lexer_en.mli | ||
lexer_fr.cppo.ml | ||
lexer_fr.mli | ||
lexer_pl.cppo.ml | ||
lexer_pl.mli | ||
lexer.cppo.ml | ||
parse_utils.ml | ||
parse_utils.mli | ||
parser_driver.ml | ||
parser_driver.mli | ||
parser_errors.mli | ||
parser.messages | ||
parser.mly | ||
print.ml | ||
print.mli | ||
surface.mld | ||
tokens.mly |