Commit Graph

1227 Commits

Author SHA1 Message Date
Alain
9c76b34afc removed assert false 2021-12-08 12:58:21 +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
177a2149ac handle_opt 2021-12-07 16:03:15 +01:00
Denis Merigoux
2732a87ca1
Fix CLI doc 2021-12-02 09:19:35 +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
ac7df6cdd7 add: implementation of generic operator without the need of rewriting each one
add: error when using an operator not in the right place when using --avoid_empty
2021-12-01 15:48:18 +01:00
Alain
0dfac8210e fix invariant correction within ErrorOnEmpty 2021-12-01 15:43:19 +01:00
Alain
86fa2ea7fa correct bindlib utilization (cont) 2021-12-01 15:42:37 +01:00
Alain
3f8bc482f3 add refine iota transformation in lcalc 2021-12-01 15:42:01 +01:00
Alain
5f86837428 correct use of bindlib in the translation 2021-12-01 11:17:16 +01:00
Alain
be166eb479 add lazy implementation of handle_default_opt in runtime 2021-12-01 10:17:05 +01:00
Alain
fd8ff75079 renamed transform -> visitor_map 2021-12-01 10:12:00 +01:00
Alain
76f5e6115c changing signature -- cont 2021-11-30 18:05:30 +01:00
Denis Merigoux
604fbbf2bf
Stub of changing signature 2021-11-30 16:52:33 +01:00
Denis Merigoux
c3bde49194
Merge branch 'master' into alain_default-option 2021-11-30 16:52:19 +01:00
Denis Merigoux
536dde9834
Formatting + CI + etc 2021-11-30 16:27:47 +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
Alain
cf43e3d87c add generic identity optimization helper
peephole transform using generic transformation
add iota reduction as an optimization
2021-11-29 17:40:13 +01:00
Denis Merigoux
82865c48da
Fix #162 2021-11-29 10:36:33 +01:00
Denis Merigoux
4137641c8c
Better error message 2021-11-28 13:16:21 +01:00
Denis Merigoux
d1b75b047b
Give a name to every rule and def, label or not 2021-11-28 13:09:44 +01:00
Denis Merigoux
5619113ac4
Remove code duplication 2021-11-28 12:46:49 +01:00
Denis Merigoux
166baf42af
Error when duplicate labels 2021-11-28 12:28:30 +01:00
Denis Merigoux
a06cbe8614
Fix literate programming problems 2021-11-26 18:07:46 +01:00
Alain
c2db3a40c6 ref: use of built-in match instead of matchopt (wip) 2021-11-26 17:10:31 +01:00
Alain
3bc71e8c43 modification to take into account the prevous commit 2021-11-25 18:55:23 +01:00
Alain
fcdaa21d54 add utilities that replace to deal with options 2021-11-25 17:27:06 +01:00
Alain
7ec067c6ec added mockup of eoption in the ocaml runtime 2021-11-25 17:27:03 +01:00
Alain
3d2f9635e9 add marking in the position utils. This replace the internal-based model to create new positions 2021-11-25 17:26:13 +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
949df1cd33 the translation executes correctly, but the result is totally unreadable 2021-11-24 11:01:45 +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
53b40121ad should be ok, without handling the types 2021-11-22 15:55:21 +01:00
Alain
0f5fde2c5a advancing 2021-11-22 15:55:21 +01:00
Alain
41a8961285 tentative, trying something else 2021-11-22 15:55:21 +01:00
Alain
a24a4ab6df starting to work on type inference 2021-11-22 15:55:21 +01:00
Alain
6fdd739f54 saving my work somewhere 2021-11-22 15:55:21 +01:00
Denis Merigoux
29f12aa3cb
Building a JS version of the Catala compiler 2021-11-12 10:07:13 +01:00
Denis Merigoux
8c0694ba15
Fixes #101 2021-11-12 09:43:23 +01:00
Denis Merigoux
22cd03c466
Bumping version numbers and fixing 0.5.0 build 2021-11-07 11:00:46 +01:00
Denis Merigoux
485d093b7e
Bump Catala version number 2021-11-07 01:38:17 +01:00
Denis Merigoux
1d0ef3cf70
Better error message and correctly format desugaring.ml 2021-11-06 23:16:58 +01:00
Denis Merigoux
56baf91923
Remove prefixes to each line in messages, keep only first line 2021-11-06 23:04:12 +01:00
Denis Merigoux
2c0e8a7864
x10 performance on Catala compilation & interpretation
Cleaner rewriting of main let-binding chaining procedure from Scopelang to Dcalc
Removed costly unboxing in DCalc.Ast.make_let_in seemed to do the trick
2021-10-28 15:24:39 +02:00
Denis Merigoux
a271d96b3a
Remove glitch in HTML literate output 2021-10-25 10:12:42 +02:00
Emile Rolley
9aaa614410 refactor(parser): add the new catala-metadata markup 2021-10-01 10:01:25 +02:00
Denis Merigoux
b72d8e09ee
Restore typechecking version of CGI example 2021-09-28 12:01:08 +02:00
Louis Gesbert
dc026d0a7f I was still unhappy with the remaining duplication
that and the double-matching with different kinds of regexps; it should be more
robust now.
2021-08-20 14:23:10 +02:00
Louis Gesbert
dfb358993c Small fix 2021-08-19 20:41:34 +02:00
Louis Gesbert
98aed4187a Further factorise decimals parsing 2021-08-19 20:32:23 +02:00
Louis Gesbert
e431e194de Factorise lexer translations 2021-08-19 18:26:06 +02:00
Denis Merigoux
7cbb4a9149
Merge pull request #138 from AltGr/lexer-refactor
Cleanup the lexer, and refactor for more generic directives
2021-08-19 12:12:53 +02:00
Denis Merigoux
b56299f3d3
Switch ocamlformat to 0.19.0 2021-08-19 11:35:56 +02:00
Louis Gesbert
fdcdefd4d0 Fix parser conflict
`LAW_TEXT` tokens are now returned one per line, so we need an associativity
rule to correctly aggregate them.
2021-08-19 11:25:32 +02:00
Louis Gesbert
9cb3a405d8 Fix lexing of money tokens
- The polish lexer was wrongly adapted from the american one: the code to trim
  the prefix `$` char was kept instead of trimming the postfix `PLN`
- Anyway the regex isn't enforced to match until the end of input so trimming
  postfix units is not needed
- And the trimming for `€` was wrong anyway, it assumed `€` is only 1 char long
  in utf8
2021-08-19 11:25:32 +02:00
Louis Gesbert
3b5c4c17cd Resync the three lexers
We'll need to factorise that better in the not-too-far future: there was already
a discrepancy between en and fr; and this won't scale if we keep adding
languages.
2021-08-19 11:25:32 +02:00
Louis Gesbert
b31bee71ad Cleanup the lexer, and refactor for more generic directives 2021-08-18 18:23:08 +02:00
EmileRolley
923a90b883 syntax(compiler): remove an @EmileRolley's note 2021-07-09 19:44:55 +02:00
EmileRolley
ac47d1ff1a refactor(compiler): minor factorization of formatting functions inside the To_ocaml module 2021-07-08 17:00:24 +02:00
EmileRolley
731513a003 refactor(compiler): factorize formatters inside prints modules 2021-07-08 16:36:53 +02: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
Denis Merigoux
fffd0ffb63
Working the way into the Python backend 2021-06-22 14:55:43 +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