catala/compiler/shared_ast
Louis Gesbert 9d07015864 Unify runtime error handling
- Clearly distinguish Exceptions from Errors. The only catchable exception
  available in our AST is `EmptyError`, so the corresponding nodes are made less
  generic, and a node `FatalError` is added

- Runtime errors are defined as a specific type in the OCaml runtime, with a
  carrier exception and printing functions. These are used throughout, and
  consistently by the interpreter. They always carry a position, that can be
  converted to be printed with the fancy compiler location printer, or in a
  simpler way from the backends.

- All operators that might be subject to an error take a position as argument,
  in order to print an informative message without relying on backtraces from
  the backend
2024-04-26 18:31:26 +02:00
..
boundList.ml Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
boundList.mli Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
definitions.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
dune Fix most doc errors 2023-06-02 17:17:45 +02:00
expr.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
expr.mli Unify runtime error handling 2024-04-26 18:31:26 +02:00
interpreter.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
interpreter.mli Move global options of Cli to their own module 2024-03-19 15:18:35 +01:00
operator.ml Message: further simplification 2024-04-10 19:26:23 +02:00
operator.mli Fix most doc errors 2023-06-02 17:17:45 +02:00
optimizations.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
optimizations.mli Improve integration of marks into the main AST 2023-05-17 17:37:00 +02:00
print.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
print.mli Unify runtime error handling 2024-04-26 18:31:26 +02:00
program.ml Add externals to scalc, working test with Python backend 2024-02-26 14:56:43 +01:00
program.mli Add externals to scalc, working test with Python backend 2024-02-26 14:56:43 +01:00
qident.ml Add some helper functions in a wrapper Map module 2023-07-12 11:51:15 +02:00
qident.mli Some commented code cleanup and clarifications 2023-06-19 16:36:09 +02:00
scope.ml Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
scope.mli Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
shared_ast.ml Generalise the definition of lists of nested binders 2024-02-09 18:33:41 +01:00
shared_ast.mld Fix most doc errors 2023-06-02 17:17:45 +02:00
type.ml Formatting 2024-02-01 17:22:42 +01:00
type.mli Define Type.Map 2024-02-01 10:10:25 +01:00
typing.ml Unify runtime error handling 2024-04-26 18:31:26 +02:00
typing.mli Support for direct tuple member access 2024-04-13 09:37:03 +02:00
var.ml Fixes related to environments and lookups 2023-08-31 18:31:48 +02:00
var.mli Fixes related to environments and lookups 2023-08-31 18:31:48 +02:00