Suzanne Dupéron
851132528d
auto-generated folds: have a distinct input and output type for the state
2020-05-25 21:49:00 +01:00
Suzanne Dupéron
ee5e484bf4
Use the auto-generated comparators as the implementations for the typeclass-like requirements for comparison functions
2020-05-25 20:42:16 +01:00
Suzanne Dupéron
008f228ed7
Hide the intermediate functions from PP_generic's signature
2020-05-25 20:42:16 +01:00
Suzanne Dupéron
92069077df
Auto-generated comparator for AST_typed
2020-05-25 20:42:16 +01:00
Suzanne Dupéron
9a017e5f63
ADT generator: Fixes LIGO-656 Generated fold_maps are unusable because some collection types need extra info (e.g. sets need a comparison operator for their elements)
2020-05-25 20:42:16 +01:00
Suzanne Dupéron
b2d80e0154
Rename src/stages/4-ast_typed/types.ml (part 1: does not build)
2020-05-25 20:42:16 +01:00
Jev Björsell
7db2c24bd3
update example.ts, generate-deploy-script.ts, and load-state.ts to support default generateDeployScript values for examples
2020-05-25 18:47:50 +00:00
Christian Rinderknecht
b97d2d4000
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-25 20:31:19 +02:00
Christian Rinderknecht
320e31cb41
* [ligo pretty-print foo.mligo] works.
...
* [ligo pretty-print foo.religo] is a transpiler (for now) and needs
more work.
* Renamed functions *_ast into *_cst. One day, module AST should be
renamed CST for clarity and consistency.
2020-05-25 20:29:48 +02:00
Edmond Lee
22b0c9ec46
add default values generateDeployScript values to example contracts
2020-05-25 10:12:41 -07:00
Christian Rinderknecht
041a48bc7b
[PascaLIGO] Fixed the build of ParserMain.exe.
2020-05-25 16:04:35 +02:00
Pierre-Emmanuel Wulfman
41d1f5e1b0
fix 2 missing loc in cameligo simplifier EProj et ETuple
2020-05-25 15:43:57 +02:00
Christian Rinderknecht
2d88d2145e
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-25 15:15:27 +02:00
Christian Rinderknecht
7992a4e507
Added cased to test the pretty-printer.
2020-05-25 12:42:19 +02:00
Christian Rinderknecht
6a3dab69a2
Exported pretty-printing function for CameLIGO and ReasonLIGO (transpiler).
2020-05-25 12:37:30 +02:00
Christian Rinderknecht
36cecfb019
* Renamed AST.TStringLiteral into AST.TString
...
* Fixed parsing of "begin let x = e1 in e2; e3 end"
2020-05-20 16:36:44 +00:00
galfour
0199f3e448
produce I_LAMBDA instead of I_PUSH directly for functions
2020-05-19 23:53:55 +02:00
Pierre-Emmanuel Wulfman
ea306bf685
Merge branch 'fix/srcloc_different_constructor' into 'dev'
...
FIX/Solve two bug with location
See merge request ligolang/ligo!627
2020-05-19 21:49:23 +00:00
Pierre-Emmanuel Wulfman
e04918047c
Merge branch 'fix/srloc_in_mini-c' into 'dev'
...
fix/Add srcloc in mini-c
See merge request ligolang/ligo!582
2020-05-19 21:37:40 +00:00
Pierre-Emmanuel Wulfman
85dc95dc7b
solve to bug with location
2020-05-19 18:53:20 +02:00
Sander
7f32937d6d
Merge branch 'interop-doc' into 'dev'
...
Interop docs
See merge request ligolang/ligo!537
2020-05-19 15:49:09 +00:00
Sander
a0f8bd941e
Interop docs
2020-05-19 15:49:09 +00:00
Jev Björsell
e6e1bc5876
Merge branch 'contract/F1.2_example' into 'dev'
...
TZIP-12: FA1.2 example contract
See merge request ligolang/ligo!600
2020-05-19 15:28:02 +00:00
Pierre-Emmanuel Wulfman
0f7fde19f5
Merge branch 'fix/region_simplifier' into 'dev'
...
fix/keep region information in the cameligo simplifier
See merge request ligolang/ligo!617
2020-05-18 14:32:42 +00:00
Pierre-Emmanuel Wulfman
fdb7697806
Merge branch 'fix/comparable-pair' into 'dev'
...
Allow comparison of "comparable pair"
See merge request ligolang/ligo!616
2020-05-18 14:32:36 +00:00
Pierre-Emmanuel Wulfman
551bf176fe
add srcloc in mini-c
2020-05-18 15:47:59 +02:00
Pierre-Emmanuel Wulfman
6c8b76b3de
add verbatim in lexer and parser
2020-05-18 13:28:31 +02:00
Pierre-Emmanuel Wulfman
7244b91c45
fix/keep region information in the simplifier
2020-05-15 18:28:24 +02:00
Pierre-Emmanuel Wulfman
0ccc637c9b
Allow comparison of "comparable pair" (left is a simple comparable type, right is a comparable type)
2020-05-15 17:25:23 +02:00
Christian Rinderknecht
937bc99738
Finished second version based on test contracts.
2020-05-15 16:32:30 +02:00
Christian Rinderknecht
f3ed135926
More fixes to the pretty-printer.
2020-05-15 00:44:15 +02:00
Christian Rinderknecht
ec0a0dbd01
More pretty-printing.
2020-05-14 21:09:14 +02:00
Christian Rinderknecht
44c85daee4
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-13 21:02:17 +02:00
Christian Rinderknecht
85aa1a21d1
Some expressions remain to be pretty-printed.
...
Fixed a bug in the semantic action of the parser for record updates.
2020-05-13 21:01:27 +02:00
Pierre-Emmanuel Wulfman
7bcf46d3bc
Merge branch 'refactoring_mini-c_type' into 'dev'
...
Refactor Mini-c types for conformity with the other stage
See merge request ligolang/ligo!598
2020-05-13 11:01:20 +00:00
Christian Rinderknecht
262f34f214
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-12 19:25:30 +02:00
Christian Rinderknecht
8c0275b42c
Tuples of types are pretty-printed now.
2020-05-12 19:25:02 +02:00
Suzanne Dupéron
673fb67c1c
Added test case from GitLab issue
2020-05-09 22:05:54 +01:00
Gabriel Alfour
da5b9c1612
Remove erroneous comment
2020-05-09 20:15:33 +00:00
galfour
98d49959b7
add a pass to recompute environments
2020-05-09 13:21:19 +02:00
Christian Rinderknecht
546856e14a
Fixed ParserLog. First complete version of the pretty-printer.
2020-05-08 19:01:51 +02:00
Christian Rinderknecht
2b96bbbdc3
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-08 19:00:57 +02:00
Christian Rinderknecht
f1c444da22
A bit more nodes added.
2020-05-07 20:26:47 +02:00
Lesenechal Remi
9eeac11628
some environment cleanup
2020-05-07 16:30:06 +02:00
Christian Rinderknecht
736860611f
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-07 15:41:33 +02:00
Christian Rinderknecht
a1c5b471fe
More cases added.
2020-05-07 11:11:16 +02:00
Pierre-Emmanuel Wulfman
e0be6fc36f
done
2020-05-05 17:24:03 +02:00
Rémi Lesenechal
77b5e15088
Merge branch 'feature/fix-michelson-pair-detection' into 'dev'
...
now check the label to detect michelson pairs
Closes #183
See merge request ligolang/ligo!602
2020-05-05 14:47:09 +00:00
Lesenechal Remi
c54d650a2a
now check the label to detect michelson pairs
2020-05-05 15:21:28 +02:00
Rémi Lesenechal
cadd0d66a9
Merge branch 'feature/quickfix-uncapitalize-michelson-or' into 'dev'
...
uncapitalize micheslon_or's %-annotations
See merge request ligolang/ligo!601
2020-05-05 12:40:00 +00:00
Lesenechal Remi
7bbfa9ff97
uncapitalize micheslon_or's %-annotations
2020-05-04 18:22:39 +02:00
Suzanne Dupéron
38af497cc3
Merge branch 'feature/adt-generator-promote-until-clean' into 'dev'
...
Adt generator : promote until-clean
See merge request ligolang/ligo!597
2020-05-04 15:19:05 +00:00
Rémi Lesenechal
29de1278b4
Merge branch 'feature/converter-generation' into 'dev'
...
michelson layout converters
Closes #74
See merge request ligolang/ligo!585
2020-05-04 13:45:26 +00:00
Pierre-Emmanuel Wulfman
ddb2eac6ca
add test
2020-05-04 15:14:56 +02:00
Pierre-Emmanuel Wulfman
426a1b6620
adding ReasonLigo contract
2020-05-04 15:12:44 +02:00
Rémi Lesenechal
51c043b7cb
Merge branch 'feature/new-typer-3' into 'dev'
...
Add a reason string explaining why constraints are added by the typer
See merge request ligolang/ligo!596
2020-05-04 13:08:00 +00:00
Lesenechal Remi
5891a6f4cc
'convert_from_left_comb' and 'convert_from_right_comb' for sum types
2020-05-04 14:19:04 +02:00
Pierre-Emmanuel Wulfman
059a566d4b
add PascaLigo contract
2020-05-04 13:39:44 +02:00
Christian Rinderknecht
66aea1b8d1
Added more cases.
2020-05-04 12:34:42 +02:00
Christian Rinderknecht
0aa69ed35b
Fixed last commit (renaming of TStringLiteral, adding --pretty)
2020-05-03 10:40:11 +02:00
Lesenechal Remi
8fdf9a8b95
fix weird bug in matching cases
2020-05-02 15:41:50 +02:00
Lesenechal Remi
0a44a22cac
'michelson_or_right_comb' and 'michelson_or_left_comb' type operators
2020-05-02 15:41:02 +02:00
Lesenechal Remi
8e3230bf29
'Layout.convert_to_right_comb' and 'Layout.convert_to_left_comb' for sum types
2020-05-02 15:38:58 +02:00
Lesenechal Remi
b54bcb8db7
rename 'michelson_right/left_comb' to 'michelson_pair_right/left_comb'
2020-05-02 15:38:58 +02:00
Lesenechal Remi
fb2f3e89e7
replace field name 'decl_position' by 'field_decl_pos'
2020-05-02 15:35:50 +02:00
Lesenechal Remi
1f6bc4fc6b
convert_from for pairs/record
2020-05-02 15:35:50 +02:00
Lesenechal Remi
9d200a1b56
michelson_right_comb and michelson_left_comb type operators
2020-05-02 15:35:50 +02:00
Lesenechal Remi
3333742037
Converters for michelson types
2020-05-02 15:30:10 +02:00
Christian Rinderknecht
f4b9261104
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint
2020-05-01 20:34:34 +02:00
Christian Rinderknecht
2667c10990
* Renamed [TStringLiteral] as [TString].
...
* LexToken.mll for CameLIGO: Fixed printing of "Str"
into "String".
* Added CLI option --pretty to call the pretty-printer from
ParserMain.
* Use the package Terminal_size to try to determine the width
of the terminal where the source is pretty-printed.
2020-05-01 20:32:48 +02:00
Pierre-Emmanuel Wulfman
716751553e
add cameligo contract
2020-04-30 18:52:32 +02:00
Christian Rinderknecht
82b3d634c1
Merge branch 'parser-promote-generated-error-files' into 'dev'
...
Promote generated error files by dune.
See merge request ligolang/ligo!427
2020-04-30 09:48:23 +00:00
Pierre-Emmanuel Wulfman
62f97e2f7f
replace type_value by type_expresion end expression' by
...
expression_content for conformity
2020-04-30 11:22:56 +02:00
Pierre-Emmanuel Wulfman
8d59389f7d
review
2020-04-30 09:39:49 +02:00
Pierre-Emmanuel Wulfman
2c62f9d32e
remove match_bool from the ast
2020-04-30 09:39:49 +02:00
Suzanne Dupéron
2372f30ed3
ADT generator: promote until-clean
2020-04-29 21:36:55 +01:00
Suzanne Dupéron
057bd19ca7
Add a reason string explaining why constraints are added by the typer
2020-04-29 21:36:50 +01:00
Suzanne Dupéron
4587862da7
Fix in new typer: propagator for break_ctor was too permissive
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
cf492f03cb
Solve T_arrow vs. TC_arrow bug by removing TC_arrow
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
9b1e66622a
Functor for applying a fold over any ADT node (e.g. generate all print
...
functions in one go)
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
94b9404d1b
Union-Find: function to extract the list of partitions
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
dfb82aa479
improve printer: constructors with no arguments
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
40474dcc68
printer: use boxes
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
c8f3bb4f04
improve printer: Var name
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
164a32a9b2
ADT generator: missing dependency
2020-04-29 21:33:07 +01:00
Suzanne Dupéron
0580f21896
moved core and solver types to the AST, removed functor hell (Map, Set, UnionFind)
2020-04-29 21:32:50 +01:00
Suzanne Dupéron
12cbc9ca07
Prepare ADT generator for new error monad
2020-04-29 21:07:40 +01:00
Suzanne Dupéron
a0b450a34d
Merge branch 'balsoft/nix' into 'dev'
...
Add nix as a build system
See merge request ligolang/ligo!535
2020-04-29 20:05:07 +00:00
edb3fce642
Add nix as a build system
...
* Dynamically linked executables (ligo-bin)
* Statically linked executables (ligo-static)
* Docker (ligo-docker)
* deb package (ligo-deb)
* webide (ligo-editor)
* webide docker (ligo-editor-docker)
* website (ligo-website)
2020-04-29 19:40:04 +01:00
Pierre-Emmanuel Wulfman
e467642f14
review
2020-04-29 19:31:38 +02:00
Pierre-Emmanuel Wulfman
92d741f5f8
Add bool in default environment
2020-04-29 19:31:37 +02:00
Pierre-Emmanuel Wulfman
7bcf706fcc
wip
2020-04-29 19:27:17 +02:00
Christian Rinderknecht
6ce6ebfec3
Simplified the interface of the lexer by not exporting the scanner
...
[init] (which reads the BOM, if any).
2020-04-28 21:17:34 +02:00
Christian Rinderknecht
de7864a500
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@michelson
2020-04-28 19:26:39 +02:00
Christian Rinderknecht
005b7fd69b
Finished refactoring of lexer.
2020-04-28 19:26:31 +02:00
Pierre-Emmanuel Wulfman
5c61bfaa95
Merge branch 'fix/arbitrary_procesion_for_numerals' into 'dev'
...
Arbitrary Precission for numerals in Ligo
See merge request ligolang/ligo!594
2020-04-28 15:12:38 +00:00
Tom Jack
56fe3b6021
Don't dip for the second var either
2020-04-28 12:00:54 +02:00
Tom Jack
94c35e15dd
Don't dip for vars after the second
2020-04-28 12:00:08 +02:00
Tom Jack
b05e7ef613
Less dippy fold
2020-04-28 11:59:32 +02:00
Tom Jack
710f1699a6
Less dippy constants
2020-04-28 11:58:47 +02:00
Tom Jack
0895467f74
Less dippy application
2020-04-28 11:57:47 +02:00
Pierre-Emmanuel Wulfman
6b00a60986
done
2020-04-27 16:41:24 +02:00
Christian Rinderknecht
9618a48848
Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@michelson
2020-04-25 20:51:33 +02:00
Christian Rinderknecht
f3777b4af8
The preprocessor library depends now on the kinds of comments
...
instead of a closed set of languages. I also removed the offsets:
I simply use the current region to determine whether the
preprocessing directie starts at the beginning of a line. I also
removed scanning line indicators, to make the lexer simpler.
LexToken.mll: Moved the function [check_right_context] that
checks stylistic constraints from Lexer.mll to
LexToken.mll. While this triplicates code (as CameLIGO, PascaLIGO
and ReasonLIGO share the same constraints), the benefit is that
Lexer.mll becomes more generic and the signature for the TOKEN
module is simpler (no more exporting predicates, except for
EOF). In accordance with the change of the preprocessor, the
lexers and parsers for LIGO now depend on the kind of comments,
not a fixed set of syntaxes. This gives more versatility when
adding a new language: only the kinds of its comments are needed,
although Lexer.mll and Preproc.mll may have to be modified if
they do not already know the comment delimiters, for example line
comments starting with #.
****************************************************************
BUG: The exceptions coming from LexToken.mll when a stylistic
constraint is broken in [LexToken.check_right_context] are not
caught yet.
****************************************************************
Lexer.mll: I moved out as much as I could from the header into a
new module LexerLib. The aim is to make it easy to reuse as much
as possible of the lexer machinerie, when it cannot be used as
is.
2020-04-24 21:06:18 +02:00
Pierre-Emmanuel Wulfman
8dfc8a0469
reorder generated variable in for_each
2020-04-23 18:01:07 +02:00
Pierre-Emmanuel Wulfman
30f2581f8b
done
2020-04-23 17:53:10 +02:00
Pierre-Emmanuel Wulfman
ca3549bdee
Merge branch 'optim/nested_record_update' into 'dev'
...
Optimize transpilation of nested record update
See merge request ligolang/ligo!510
2020-04-23 10:01:47 +00:00
Christian Rinderknecht
0e452ffbf1
Merge branch 'small-reasonligo-record-punning-improvement' into 'dev'
...
Make it possible to pun the first argument of a record.
See merge request ligolang/ligo!570
2020-04-22 17:13:01 +00:00
Tom Jack
c58e3220a7
fix bad sed
2020-04-22 12:04:21 -05:00
Tom Jack
b47b5b1c37
s/expression_eq/equal_variables/ to match the behavior
2020-04-22 11:44:57 -05:00
Pierre-Emmanuel Wulfman
2a8edb53da
reduce expression_eq to equal variable
2020-04-22 11:42:53 -05:00
Pierre-Emmanuel Wulfman
1cbadbc7cf
add expression_eq in ast_typed
2020-04-22 11:42:52 -05:00
Pierre-Emmanuel Wulfman
79f2df2314
optim for record
2020-04-22 11:41:33 -05:00
Tom Jack
1fbbc09313
promote (until-clean) (only *) ?
2020-04-22 11:38:40 -05:00
Pierre-Emmanuel Wulfman
3cb72f8ec2
add test
2020-04-22 15:05:33 +02:00
Pierre-Emmanuel Wulfman
c46210b656
fix order
2020-04-22 15:04:12 +02:00
Sander Spies
eafbe83151
Also promote ParErr.ml
2020-04-22 11:50:46 +02:00
Sander Spies
bd8cf09f9e
Promote generated error files by dune.
2020-04-22 11:50:46 +02:00
Tom Jack
f67bd010c4
Treat transaction environment operators as impure
2020-04-22 10:30:57 +02:00
Pierre-Emmanuel Wulfman
54dadc33d6
move Var.reset_counter () to run_ligo
2020-04-21 18:06:19 +02:00
Pierre-Emmanuel Wulfman
0bf6d09e85
reset Var counter at the begening of cli run
2020-04-21 18:06:17 +02:00
Tom Jack
8066e4df26
Allow to failwith an int (or nat)
2020-04-21 15:35:41 +00:00
Tom Jack
5df005f4b7
Add print-mini-c --optimize=entrypoint
to print optimized mini_c
2020-04-21 13:28:39 +00:00
Lesenechal Remi
5323475097
empty string singleton is not annotated anymore
2020-04-20 20:21:49 +02:00
Pierre-Emmanuel Wulfman
173a0c4031
Replace function that returns result by function that returns option
2020-04-20 17:39:36 +02:00
Lesenechal Remi
5622b52a36
updating tests
2020-04-19 15:20:02 +02:00
Lesenechal Remi
5bed9dadef
WIP: michelson_pair
2020-04-19 15:18:46 +02:00
Lesenechal Remi
e94f445a51
michelson_or custom layout and annotations
2020-04-19 15:18:46 +02:00
Lesenechal Remi
5d35aaec58
add fold for ast_core
2020-04-19 15:18:46 +02:00
Tom Jack
f2a23029bd
Always inline variable-for-variable lets in Self_mini_c
2020-04-16 14:18:35 -05:00
Tom Jack
6acf91a3f2
Perform basic eta contraction in Self_mini_c
2020-04-16 14:17:30 -05:00
Suzanne Dupéron
8848226b85
Merge branch 'bugfix-url-errors' into 'dev'
...
Fix link to docs in error message, closes LIGO-547
Closes LIGO-547
See merge request ligolang/ligo!573
2020-04-15 17:22:32 +00:00
Pierre-Emmanuel Wulfman
7a18cbd8fc
Merge branch 'srcloc_for_types' into 'dev'
...
Add srcloc for Types
See merge request ligolang/ligo!562
2020-04-15 16:41:27 +00:00
Suzanne Dupéron
f547caa80f
Fix link to docs in error message, closes LIGO-547
2020-04-15 18:04:43 +02:00
Pierre-Emmanuel Wulfman
7c29b075bb
add srcloc for types
2020-04-15 17:38:42 +02:00
Sander Spies
2a24290ed0
Fix error messages.
2020-04-15 17:25:32 +02:00
Pierre-Emmanuel Wulfman
9796cd2e8f
for loop have a optional step parameter
2020-04-15 17:25:31 +02:00
Sander Spies
990ae0e3a8
Make it possible to pun the first argument of a record.
2020-04-14 21:15:12 +02:00
Suzanne Dupéron
b7c3e77c82
Remove trailing whitespace while parsing in ADT generator
2020-04-14 17:11:50 +02:00
Sander Spies
422623ce1e
Fix build.
2020-04-14 13:13:07 +02:00
Sander Spies
3e447c40b7
Merge
2020-04-14 13:11:44 +02:00
Suzanne Dupéron
741bfcf9b4
Merge branch 'feature/new-typer-rough-cleanup' into 'dev'
...
Rough cleanup of the new typer
See merge request ligolang/ligo!561
2020-04-14 11:10:26 +00:00
Christian Rinderknecht
f8c16e5764
Merge branch 'reasonligo-record-improvement' into 'dev'
...
Add support for record expressions of only one field.
See merge request ligolang/ligo!553
2020-04-14 11:01:11 +00:00
Christian Rinderknecht
5f4c5299d8
Merge branch 'more-api' into 'dev'
...
More api documentation improvements
See merge request ligolang/ligo!548
2020-04-14 10:53:11 +00:00
Sander Spies
2b82a74d93
Merge
2020-04-14 10:32:12 +02:00
Suzanne Dupéron
9e21123de0
Generic PP: use PPF, split test for parentheses to separate fold
2020-04-13 23:10:01 +02:00
Suzanne Dupéron
22fce03844
Improve a typer print
2020-04-13 23:10:01 +02:00
Suzanne Dupéron
1f0ab67baa
Moved new typer's wrap module to a separate file
2020-04-13 23:10:01 +02:00
Suzanne Dupéron
93063d8c70
More cleanup new of the typer
2020-04-13 23:10:01 +02:00
Suzanne Dupéron
1b710bd952
Very rough cleanup new of the typer
2020-04-13 23:10:01 +02:00