Emile Rolley
cda3bfb3aa
feat(plugins/jsoo): format type declaration
2022-07-22 16:52:56 +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
6d224e1a41
Merge pull request #272 from AltGr/types-everywhere
...
Annotate the ASTs with type information everywhere
2022-07-20 11:07:17 +02:00
Denis Merigoux
be373f0ff5
Added primitives money_to_decimal and decimal_to_money [skip ci]
2022-07-19 11:53:09 +02:00
Denis Merigoux
05115c7541
Help OCaml's type inference
...
Needed because of constructor name confusion
2022-07-14 15:29:50 +02:00
Emile Rolley
4991350b58
feat(backend/ocaml): disambiguate OCaml record names derived from Catala struct
2022-07-12 16:12:18 +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
Emile Rolley
d82ecb5f12
fix(compiler/log): retrieve types of input and output function calls
2022-06-15 14:34:15 +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
Denis Merigoux
78e8275d5e
Adds a decimal rounding operator
2022-04-29 21:18:15 +02:00
Denis Merigoux
764edb6ef0
Refactoring finished
2022-04-26 16:06:36 +02: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
Louis Gesbert
12ec65601d
Use format strings directly in debug/error/log functions
...
This avoids many intermediate calls to e.g. `Format.asprintf`; should result in
some cases in "more correct" use of `Format`¹, avoid the computation of unused
debug strings, and make the code more readable.
¹ for `Format` to work as expected, all intermediate calls need to go through
it. Some cases of formatting to an intermediate string then printing through Format
again are still present, but this makes the situation better.
2022-03-08 13:04:27 +01:00
Alain
4ee9b71e00
to_lcalc option type printing
2022-02-21 11:58:26 +01:00
Alain
d512b27e2c
fmt
2022-02-18 15:49:23 +01:00
Alain
7e1057c541
review of lcalc
2022-02-18 15:47:54 +01:00
Denis Merigoux
cab4e5c17e
Merge branch 'master' into alain_default-option
2022-02-15 10:20:53 +01:00
Denis Merigoux
b25f64c3ae
Improve printing
2022-02-14 17:01:34 +01:00
Alain
ed2c192470
Add monomorphisation of eoptions types
...
Compilation as TAny is not enough clear to define structures in ocaml.
2022-02-07 10:58:41 +01:00
Alain
c97ab86c1c
removed un-used code
2022-02-04 16:50:40 +01:00
Denis Merigoux
a06dfbfaa5
Assets and formatting
2022-02-04 15:29:31 +01:00
Alain
08651d33af
better error message in to_ocaml conversion
2022-02-04 14:30:42 +01:00
Alain
1db649db3e
nicer internal error when Not_Found is raised inside the code generation of ocaml code.
2022-02-02 17:24:32 +01:00
Alain
df545e5761
add translate_binder
...
refactor make_bindopt
refactor make_matchopt
added make_bindmopt
remove _{i}_ printing in to_ocaml
add correct printing of handle_default_opt
add two-step translation
correct context for new variables
2021-12-07 18:57:28 +01:00
Alain
959203e595
add: error message when unary operator log is left somewhere it shouldn't
2021-12-01 15:48:58 +01:00
Alain
8d580f1db6
fix: removed ESome and ENone constructions.
2021-11-29 17:53:07 +01:00
Alain
22af2a9335
refactored transformation to remove matchopt construction
2021-11-29 17:40:30 +01:00
Denis Merigoux
7d3e381d45
Improvements with Alain during weekly meeting
2021-11-24 15:51:49 +01:00
Denis Merigoux
fb281a0d99
Formatting
2021-11-24 15:22:29 +01:00
Alain
08b38472e2
found a bug inside the match translation.
2021-11-22 15:55:21 +01:00
Alain
f75341c44f
making options default compilation target
2021-11-22 15:55:21 +01:00
Alain
6fdd739f54
saving my work somewhere
2021-11-22 15:55:21 +01:00
EmileRolley
ac47d1ff1a
refactor(compiler): minor factorization of formatting functions inside the To_ocaml module
2021-07-08 17:00:24 +02:00
EmileRolley
6169d19b1e
feat(compiler): add collection concatenation operator
2021-07-08 16:27:46 +02:00
Denis Merigoux
9ab32efcce
Added machinery for Python backend
2021-06-21 18:00:06 +02:00
Denis Merigoux
bbd50747d9
Big renaming and dir reorg
2021-06-21 11:39:06 +02:00