Denis Merigoux
efa7cec4c1
Merge pull request #315 from AltGr/ast-factorisation
...
Factorise ASTs (between dcalc and lcalc)
2022-08-16 11:42:51 +02:00
Louis Gesbert
0b0e774d1c
More factorisation, in particular for variables
2022-08-12 17:18:06 +02:00
Louis Gesbert
ebf97a0995
Pass-specific literals
2022-08-12 16:55:32 +02:00
Louis Gesbert
b5579cde3d
Generalise the expressions between dcalc and lcalc
...
The huge benefit of this approach is that almost no changes are needed and we get compatible types between dcalc and lcalc, allowing to deduplicate a few functions.
It might not be the best in the long run: there are still benefits in factorising small parts of the AST as suggested in #157 , and this forces a central AST definition that makes the nanopass-like approach a bit less legible.
Still, I think it's a step in the right direction and it doesn't really lock us in keeping to use the big GADT (as the minimal cascade of changes show).
2022-08-12 16:55:30 +02:00
Denis Merigoux
038e6068e6
Small improvements to housing benefits
2022-08-10 18:13:07 +02:00
Denis Merigoux
3a3c08ba7c
Fix LegiFrance link generation
2022-08-10 10:52:46 +02:00
Denis Merigoux
228b6c830a
Fix line numbers in LaTeX and HTML with leading comments in code
2022-08-10 10:45:49 +02:00
Denis Merigoux
a77fa65f9c
Documentation about plugins
2022-08-09 15:00:13 +02:00
Louis Gesbert
f35f18b295
Add local 'let in' bindings
2022-08-09 12:17:31 +02:00
Denis Merigoux
03e598128a
Bumping version number
2022-08-08 17:26:07 +02:00
Denis Merigoux
d03d82a0e7
Correctly count columns
2022-08-08 17:25:08 +02:00
Denis Merigoux
4d465b33b4
Helpful error message when trying to interpret a scope with arguments
2022-08-06 13:35:17 +02:00
Emile Rolley
f30dc376fd
doc(compiler): add information about the html generation logic + complete the doc of the Utils module
2022-08-05 19:03:59 +02:00
Emile Rolley
70672088fa
nitpick: String_common.is_uppercase renamed in String_common.is_uppercase_ascii
2022-08-05 18:18:06 +02:00
Emile Rolley
eacc4dcc90
fix(html): sanitize href of line links in code blocks
2022-08-05 10:55:48 +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
Emile Rolley
03aebf7f1c
feat(backends/html): improve the code generation with ToC and details tags
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
Louis Gesbert
922126b5cd
Improve api_web pretty-printer
2022-08-04 17:36:50 +02:00
Louis Gesbert
e63860de4b
Disable ocamlformat on api_web
2022-08-04 17:36:50 +02:00
Louis Gesbert
bc8eda581c
Add a script generating static builds
...
We have an obvious limitation: static builds won't support plugins. We
could resort to the classic method and do normal builds but on an old
distrib to dodge compatibility issues.
That would still be compatible with statically linking the more specific
libs, like e.g. z3.
2022-08-03 19:04:14 +02:00
Louis Gesbert
c964495c59
Generate website assets through dune
2022-08-03 19:04:13 +02:00
Louis Gesbert
1dbcc31599
Shell script tweaks
2022-08-03 19:03:27 +02:00
Louis Gesbert
0abbb3e29b
Syntax: tweak priority of 'set contains elt'
...
(the other way around was creating a conflict !)
2022-08-02 10:02:03 +02:00
Emile Rolley
2da94b88c2
fix(compiler): use Plugin.extension instead of the hardcoded ".ml" one
2022-08-01 10:28:38 +02:00
Emile Rolley
1a6934b538
feat(build): add the generation of json schemas to the build workflow
2022-07-29 18:47:42 +02:00
Emile Rolley
21af0c8c04
refactor(compiler): split web plugin into api_web and json_schema + factorize some util functions
2022-07-29 18:42:47 +02:00
Emile Rolley
26663f227d
fix(plugins/web): fix enum payload + retrieve all required types
2022-07-29 18:42:47 +02:00
Emile Rolley
ae3852fa12
feat(plugins/web): generate minimal working JSON schema from a given scope
2022-07-29 18:42:41 +02:00
Emile Rolley
599126a7ce
feat(plugins/web): retrieve required types definitions from scope input
2022-07-29 18:42:41 +02:00
Emile Rolley
32ec53d918
refactor(plugins): jsoo -> web
2022-07-29 18:42:41 +02:00
Emile Rolley
6ce6ea8afc
refactor(plugins): add scope as argument for the apply function
2022-07-29 18:42:41 +02:00
Emile Rolley
8e3fd34424
refactor(plugins/jsoo): encode Catala date in JS string object instead of date
2022-07-29 18:42:41 +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
d91ed27e28
The JS version of the housing benefits computation is working!
2022-07-28 15:02:43 +02:00
Emile Rolley
4f828c300e
fix(jsoo): fix the translating of TUnit and TDuration to JSOO types
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
Louis Gesbert
3987e446e9
Add polish translation for new "contains" keyword
2022-07-28 10:34:37 +02:00
Louis Gesbert
6d41818e0a
Change syntax for set membership predicate
...
Before: `ELEMENT in SET`; now: `SET contains ELEMENT`
Using the `in` keyword was causing conflicts and blocking #203 .
Current proposal has `contient` for the French syntax, and is untranslated (`contains`) for Polish.
2022-07-27 14:34:58 +02:00
Louis Gesbert
922b77abc7
Cli: allow standard option --color=always|never|auto
to control styling
2022-07-27 10:42:35 +02:00
Denis Merigoux
d17ac0bc39
More nitpicks
2022-07-22 18:04:16 +02:00
Denis Merigoux
fa55a83fb4
Merge branch 'master' into 290-jsoo-wrapper-plugin
2022-07-22 17:54:51 +02:00
Emile Rolley
d9045499c0
refactor(french_law/ocaml): refactor the api_web.ml
2022-07-22 17:01:33 +02:00
Emile Rolley
231f327efb
feat(jsoo): v1 jsoo plugin
2022-07-22 16:52:56 +02:00
Emile Rolley
ad0efd3447
refactor(ocaml): wrap enum type inside their own module like struct ones
2022-07-22 16:52:56 +02:00
Emile Rolley
3ab5129572
feat(jsoo): add conversion fun generation (except mutiple cons args)
2022-07-22 16:52:56 +02:00
Emile Rolley
677ff92ae6
feat(utils): add File.ocamlformat_file_opt
2022-07-22 16:52:56 +02:00
Emile Rolley
5f27334bec
feat(jsoo): gen conv functions from and to jsoo type
2022-07-22 16:52:56 +02:00