Louis Gesbert
7e0d24efd2
Make all supertypes use ('a, 't) gexpr as parameter instead of naked_gexpr
2022-08-29 11:29:24 +02:00
Louis Gesbert
5e9c3d630e
Same treatment for typ
and marked_typ
2022-08-29 11:29:24 +02:00
Louis Gesbert
be58610061
Rename marked_expr -> expr, expr -> naked_expr throughout
...
Since the marked kind is used throughout, this should be more clear
2022-08-29 11:29:23 +02:00
Louis Gesbert
01cc957b3b
Used shared_ast
for scopelang expressions
2022-08-26 11:31:14 +02:00
Louis Gesbert
54eee2edea
Rationalise the tuple / enum types
...
This will allow to unify with types used earlier in the
pipeline (`Scopelang.Ast.typ`).
It seems cleaner! But some areas may warrant a later clean-up, in particular
handling of options and their types in the backends, or possible name conflicts
of structs/enums with built-in types when printing.
2022-08-23 15:48:06 +02:00
Louis Gesbert
576e0fb3ff
Factorise AST printers
...
Note that there were significant differences between the two printers (see the test diff!). Overall the `dcalc` one seemed newer so that's what I took, with only the required additions from `lcalc` (exceptions, raise and catch)
2022-08-22 19:28:27 +02:00
Louis Gesbert
8e7f65d204
Split Shared_ast.Expr of scope and program functions
2022-08-22 19:28:27 +02:00
Louis Gesbert
4bb49c14f1
Simplify some type aliases
2022-08-22 19:28:27 +02:00
Louis Gesbert
06dbab74d2
reformat
2022-08-22 19:28:27 +02:00
Louis Gesbert
2b6ee8dd4b
Leverage the shared AST: big cleanup (part I)
2022-08-22 19:28:21 +02:00
Louis Gesbert
988e5eff1c
Split the shared AST into a separate lib
2022-08-22 19:16:28 +02:00
Louis Gesbert
0b0e774d1c
More factorisation, in particular for variables
2022-08-12 17:18:06 +02:00
Emile Rolley
ba620fca28
ocamlformat: new break-infix rule
2022-08-05 10:55:48 +02:00
Emile Rolley
d85812109c
refactor(compiler): remove the camomile dependency due to the new Utils.String_common module based on Ubase
2022-08-05 10:55:45 +02:00
Louis Gesbert
a569589193
Small improvements to the Python and OCaml pretty-printers
2022-08-04 20:43:39 +02:00
Denis Merigoux
4845196b5b
Add source positions in all backends exceptions
2022-07-29 18:42:14 +02:00
Denis Merigoux
974c2b8d58
Fix bug in Python backend
2022-07-28 15:02:43 +02:00
Denis Merigoux
8d3e283669
Fix some bugs of JSOO plugin
2022-07-28 15:02:43 +02:00
Denis Merigoux
fa55a83fb4
Merge branch 'master' into 290-jsoo-wrapper-plugin
2022-07-22 17:54:51 +02:00
Emile Rolley
3dcf856ec6
refactor(cli): add Cli.call_unstyled
2022-07-22 16:52:56 +02:00
Emile Rolley
0c180e12f9
refactor(runtimes): add runtime_ocaml and runtime_jsoo in the catala package
2022-07-22 16:52:56 +02:00
Denis Merigoux
dc00ce8957
Merge branch 'master' into aides_logement
2022-07-22 16:49:01 +02:00
Denis Merigoux
522deb50c2
Factorizing Dcalc.program
2022-07-22 15:49:57 +02:00
Denis Merigoux
dcf80f4bec
Adding first_day_of_month and last_day_of_month
2022-07-21 14:14:04 +02:00
Denis Merigoux
58cb48fb28
Merge remote-tracking branch 'origin/master' into aides_logement
2022-07-20 11:20:00 +02:00
Denis Merigoux
be373f0ff5
Added primitives money_to_decimal and decimal_to_money [skip ci]
2022-07-19 11:53:09 +02:00
Louis Gesbert
7485c7f2ce
Reformat
2022-07-11 17:42:34 +02:00
Louis Gesbert
4eb5933ad0
Porting the interpreter to the marked AST
2022-07-11 17:42:30 +02:00
Louis Gesbert
513647cd32
AST simplification: remove redundant annotations
...
The AST structures track annotations (e.g., at the moment, source code
position information) in a lot of places. This patch tidies up a bit and
removes some duplication, ensuring a single level of annotation wrapping
at each AST recursion level.
This will be important when adding type information in these
annotations, because there will be consitency constraints to be ensured
and duplication is a likely source of mistakes.
2022-07-11 16:51:54 +02:00
Louis Gesbert
af0ac95682
Propagate renaming of Pos.mark*
into module Marked
...
this patch is just a bunch of `sed` commands
```shell
cd compiler
sed -i 's/Pos.marked/Marked.pos/g' *.ml* **/*.ml*
sed -i 's/Pos.unmark/Marked.unmark/g' *.ml* **/*.ml*
sed -i 's/Pos\.get_position/Marked.get_mark/g' *.ml* **/*.ml*
sed -i 's/Pos\.same_pos_as/Marked.same_mark_as/g' *.ml* **/*.ml*
sed -i 's/Pos\.map_under_mark/Marked.map_under_mark/g' *.ml* **/*.ml*
sed -i 's/Pos\.mark/Marked.mark/g' *.ml* **/*.ml*
sed -i 's/Pos\.compare_marked/Marked.compare/g' *.ml* **/*.ml*
```
2022-07-11 16:51:54 +02:00
Louis Gesbert
f17875f90e
Formatting: some other personal preferences
2022-05-11 16:25:49 +02:00
Louis Gesbert
74c5629153
Formatting: reduce extra match-case indentation
...
2 is plenty enough, esp. for nested matches :)
2022-05-11 16:25:20 +02:00
Louis Gesbert
fa3693d813
Formatting: disable deprecated "smart" fun-decl option
2022-05-11 16:22:56 +02:00
Denis Merigoux
c7b84ca2d0
Merge pull request #244 from CatalaLang/c_backend
...
Bringing structure to the Lcalc AST
2022-05-05 14:22:26 +02:00
Romain PRIMET
75c67525d3
Merge remote-tracking branch 'upstream/master' into extract_py_runtime
2022-05-02 11:31:43 +02:00
Denis Merigoux
78e8275d5e
Adds a decimal rounding operator
2022-04-29 21:18:15 +02:00
Denis Merigoux
d79e6c974d
Fix last bugs
2022-04-26 16:22:47 +02:00
Denis Merigoux
764edb6ef0
Refactoring finished
2022-04-26 16:06:36 +02:00
Romain PRIMET
5397de576c
update generated catala import instruction
2022-04-21 09:57:18 +02:00
Denis Merigoux
48b324c165
More comments
2022-04-04 18:12:19 +02:00
Denis Merigoux
25977de151
Prettify Scalc
2022-03-21 14:58:54 +01:00
Denis Merigoux
cdac6de9fe
Implement the round money builtin
2022-03-17 12:30:14 +01:00
Denis Merigoux
5bd66142a6
Big reformatting
...
ocamlformat 0.19.0 -> 0.20.1
100 -> 80 columns per line
Reestablished @emilerolley's smart fun break
2022-03-08 15:03:14 +01:00
Denis Merigoux
09dd02c8a0
Python backend works with exceptions avoided
...
Few bugs in Lcalc->Scalc fixed
2022-02-25 12:30:34 +01:00
Denis Merigoux
21c73edfc9
Link to modules in the docs
2022-02-14 18:27:29 +01:00
Denis Merigoux
1cec4b0721
Pretty-printer for scalc
2022-02-14 18:22:26 +01:00
Denis Merigoux
b25f64c3ae
Improve printing
2022-02-14 17:01:34 +01:00
Denis Merigoux
5c6a43da57
Fixed compilation to examples
...
Had to rename fields of allocations familiales because of a stupid record field confusion in OCaml
2022-02-07 18:38:31 +01:00
Denis Merigoux
6cf1b768d2
Fix bug in Python backend producing unreachable code
2022-02-01 15:41:53 +01:00
Denis Merigoux
d2977b48ce
Documentation pass
2022-01-19 10:54:16 +01:00
Emile Rolley
397b0e1d7c
fix(build/doc): remove warnings due to .ml* files
2022-01-02 14:53:51 +01:00
EmileRolley
6169d19b1e
feat(compiler): add collection concatenation operator
2021-07-08 16:27:46 +02:00
Denis Merigoux
0d54b39aa9
Logging in Python OK
2021-06-26 18:04:36 +02:00
Denis Merigoux
e38dc4c728
Various bugfixing and improvements for the Python backend
2021-06-25 00:16:21 +02:00
Denis Merigoux
95b34937a6
Switch to use Python enums as a tag for tagged unions
2021-06-24 21:55:20 +02:00
Denis Merigoux
fbf60b89bf
Fix lenght type mismatch
2021-06-24 21:32:09 +02:00
Denis Merigoux
0481181f92
Put mypy typing under CI
2021-06-24 18:18:25 +02:00
Denis Merigoux
817b1785df
Python translation working but still buggy
2021-06-24 17:50:08 +02:00
Denis Merigoux
015776270d
Compilation passing from lcalc to scalc
2021-06-24 14:52:51 +02:00
Denis Merigoux
eb9c75f394
Making progress into translation
2021-06-23 17:47:34 +02:00
Denis Merigoux
46717b0440
Compiling blocks to SCalc
2021-06-22 18:16:47 +02:00
Denis Merigoux
1313183353
Defining a new intermediate representation
2021-06-22 16:01:57 +02:00