Commit Graph

644 Commits

Author SHA1 Message Date
Christian Rinderknecht
15937a2459 Bug fixing in the AST pretty-printer and new syntax for iterators.
I added a type annotation for the variable iterating a
collection, which is also now marked as "map", "set" or "list".

I fixed and refactored the pretty-printer for the AST.
2019-10-16 01:11:54 +02:00
Christian Rinderknecht
27564426da Bug fixes and finished AST pretty-printer.
ParserLog: Finished the AST pretty-printer.
ParserMain: The CLI "ast" is now "ast-tokens" and the new "ast"
calls the AST pretty-printer.
Bug: Added nat literals as patterns.
AST: Removed unary constructor TupleInj.
Parser and simplifier:
  - The rule "cartesian" is now properly stratified.
  - Parenthesised expressions now correctly create EPar nodes.
2019-10-15 21:03:46 +02:00
John David Pressman
b80f16eb34 Merge branch 'feature/pascaligo-set-deep-rm' into 'dev'
[LIGO-139] Add deep set removal to PascaLIGO

See merge request ligolang/ligo!136
2019-10-15 14:47:17 +00:00
John David Pressman
6f5e88c93c Make failing deep set removal test pass 2019-10-14 18:59:16 -05:00
John David Pressman
0b8c0dad3f Add failing deep set removal test to contracts 2019-10-14 18:58:42 -05:00
John David Pressman
8a9a72b673 Merge branch 'dev' of gitlab.com:ligolang/ligo into gardening/code-comments 2019-10-14 16:31:57 -07:00
Tom Jack
ed69c858a8 Use right folds 2019-10-14 14:05:35 -05:00
John David Pressman
c4babe60d8 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/pascaligo-map-patch 2019-10-14 11:34:26 -07:00
John David Pressman
93b5a068b5 Add deep map patch test 2019-10-14 10:19:18 -07:00
Christian Rinderknecht
89971f31d0 Forgot to commit the change in the simplifier. 2019-10-13 20:15:50 +02:00
Christian Rinderknecht
f634d36b76 Refactorings for PascaLIGO.
- I aligned the names of the tokens in common with Ligodity.
  - I removed the "down" and "step" clauses in loops.
  - Note: the stratification of the rule "pattern" in the
    previous commit has the pleasant effect to remove a call
    to "corner_case" in function "simpl_case" of the
    file "2-simplify/pascaligo.ml".
  - Added more cases to the pretty-printer of the AST.
2019-10-13 19:51:01 +02:00
Christian Rinderknecht
f795f1216a Bug fixing in the lexers and the parser. Started AST pretty-printer.
LexToken, AST: Tiny refactoring.

Bug: Added the making of the AST node PBytes.

Parser: The rule "pattern" was not properly stratified (the
constructor "PCons" was always produced, even when no consing was
done (now a fall-through to "core_pattern").

Bug: When sharing the lexers between Ligodity and Pascaligo, a
regression was introduced with the lexing of symbols. Indeed,
symbols specific to Ligodity (like "<>") and
Pascaligo (like "=/=") were scanned, but the
function "LexToken.mk_sym" for each only accepted their own,
yielding to an assertion to be invalidated. Fix: I created an
error "sym_err" now to gracefully handle that situation and
provide a hint to the programmer (to wit, to check the LIGO
syntax in use).

WIP: Started to write pretty-printing functions for the nodes of
the AST.

CLI: The option "--verbose=ast" now calls that function instead
of printing the tokens from the AST. When the pretty-printer is
finished, the option for printing the tokens will likely
be "--verbose=ast-tokens".
2019-10-12 23:42:26 +02:00
Christian Rinderknecht
d7baebdb2f Merge branch 'feature/pascaligo-set-patch' into 'dev'
[LIGO-127] Add set patch functionality to PascaLIGO

See merge request ligolang/ligo!127
2019-10-12 20:35:14 +00:00
John David Pressman
b304772928 Change set patch to use left fold 2019-10-12 12:38:05 -07:00
John David Pressman
5070ded5b9 Add complex path traversal to map patch 2019-10-11 17:26:28 -07:00
John David Pressman
3d053cd073 Refactor map patch so that it uses fewer assignments 2019-10-11 15:44:16 -07:00
Suzanne Dupéron
38f9b0ba0b tests build (but fail when running, as expected) 2019-10-11 17:22:43 -04:00
Suzanne Dupéron
3bbb8bfd8b Fixed merge issues with new merge of dev 2019-10-11 17:01:28 -04:00
Suzanne Dupéron
5a58559edc Merge remote-tracking branch 'origin/dev' into HEAD 2019-10-11 16:59:45 -04:00
Tom Jack
c2a3fd473c Fix test 2019-10-11 15:27:41 -05:00
Tom Jack
b64f82dff7 Add failing test 2019-10-11 15:24:46 -05:00
John David Pressman
62377135c4 Add empty map patch test 2019-10-11 13:23:29 -07:00
Tom Jack
c5361c57d4 Simplify a bit 2019-10-11 15:10:11 -05:00
Tom Jack
e672d10029 Expose tez mod tez, too 2019-10-11 14:54:22 -05:00
John David Pressman
d947f3b462 Change set patch to chain calls and only use one assignment 2019-10-11 12:38:00 -07:00
Tom Jack
d87d0aab73 Expose tez/tez division 2019-10-11 14:35:23 -05:00
Suzanne Dupéron
9e2c057edb dune build passes, but not dune build @ligo-test. Threaded the typechecker's state in a bunch of places where it's likely not needed, because I don't know which parts are entrypoints and which parts are intermediate functions, and the role of the state between program fragments is not yet 100% clear to me. 2019-10-11 15:21:28 -04:00
John David Pressman
58b8e537e4 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/pascaligo-set-patch 2019-10-11 09:02:45 -07:00
Tom Jack
f06161ea42 Merge branch 'feature/dry-run-sender-source' into 'dev'
Accept fake values for SENDER/SOURCE in dry-run

See merge request ligolang/ligo!130
2019-10-11 15:09:16 +00:00
Suzanne Dupéron
1356159281 WIP on integrating typer with the bin / CLI, fixed last API change 2019-10-11 04:08:12 -04:00
John David Pressman
49ffe00466 Remove unsupported_map_patch error in PascaLIGO simplifier 2019-10-10 18:35:39 -07:00
John David Pressman
c181ec1cac Upload rough draft of map patch functionality with test
Right now I'm concerned that the way this generates the code is inefficient, in particular this line:

`in ok @@ (access_path, key', value', loc)`

Since the comments [on my code for the set patch](https://gitlab.com/ligolang/ligo/merge_requests/127)
warned that repeated generation of the access path is a bad idea(?). In any case this does work, so
it's something I can improve on.
2019-10-10 18:26:28 -07:00
John David Pressman
0de17f4b57 Add empty set patches, add test for empty set patches 2019-10-10 13:35:38 -07:00
Suzanne Dupéron
2a39aa2949 Revert "Builds (commented out a few issues, just to check that there are no compilation errors left)"
This reverts commit 581babb459.
2019-10-10 03:55:15 -04:00
Suzanne Dupéron
581babb459 Builds (commented out a few issues, just to check that there are no compilation errors left) 2019-10-10 03:55:08 -04:00
Suzanne Dupéron
acfbd7eb15 Nearly builds, only one small API change and integration errors left 2019-10-10 03:52:43 -04:00
John David Pressman
c82076281f Add test for set patch functionality
Resolves LIGO-127
2019-10-09 23:13:25 -07:00
Suzanne Dupéron
4fa54dd2c1 More progress on merging new typer and new dev 2019-10-10 01:23:55 -04:00
John David Pressman
2f60c85aa8 Add rough draft of set patch functionality 2019-10-09 17:08:58 -07:00
Rémi Lesenechal
dfe6f144bb Merge branch 'feature/unsupported-deep-map-ops' into 'dev'
fix unsupported deep_map assignements and remove. add tests

See merge request ligolang/ligo!125
2019-10-09 19:57:17 +00:00
Tom Jack
e8afba9581 Accept fake values for SENDER/SOURCE in dry-run 2019-10-09 12:08:02 -05:00
Christian Rinderknecht
cbaac2d124 Merge branch 'rinderknecht-dev' into 'dev'
Printing of tokens from the AST is now done in a Buffer.t

See merge request ligolang/ligo!128
2019-10-09 16:18:04 +00:00
Christian Rinderknecht
bcf73d01bf Printing of tokens from the AST is now done in a Buffer.t 2019-10-09 16:07:13 +02:00
Lesenechal Remi
8c29dc6df3 cleaning (using name return by simpl_path which is equivalent) 2019-10-09 11:54:48 +02:00
Lesenechal Remi
54662db2f6 use simpl_projection to build accessor 2019-10-09 11:54:48 +02:00
Lesenechal Remi
d59cd771c9 fix unsupported deep_map assignements and remove. add tests 2019-10-09 11:54:48 +02:00
Suzanne Dupéron
5de98259dc Trying to merge new typer and new dev 2019-10-09 00:51:29 -04:00
Suzanne Dupéron
a0461d0622 Renamed 2019-10-08 18:46:55 -04:00
John David Pressman
f990dc8a0f Merge branch 'dev' of gitlab.com:ligolang/ligo into gardening/code-comments 2019-10-08 13:46:25 -07:00
Sander
8dfb2a967f Merge branch 'feature/pascaligo-remove-simplify' into 'dev'
Add test for PascaLIGO remove syntax which appears to work

See merge request ligolang/ligo!126
2019-10-08 19:35:09 +00:00
John David Pressman
88de350264 Add test for PascaLIGO remove syntax which appears to work 2019-10-08 11:54:49 -07:00
Christian Rinderknecht
a4ad62ad16 Merge branch 'rinderknecht-dev' into 'dev'
Made  big_map a keyword, like map.

See merge request ligolang/ligo!124
2019-10-08 11:37:31 +00:00
Christian Rinderknecht
1362fbae9e Made big_map a keyword, like map. 2019-10-08 12:24:56 +02:00
John David Pressman
7cf75c54c8 Untested rough draft of pascaligo set removal 2019-10-07 21:41:36 -07:00
Tom Jack
4a5e41faa4 Resolve mli merge conflict 2019-10-07 13:56:48 -05:00
Christian Rinderknecht
6f414a8ad2 Merge branch 'feature/unsupported_ass_None' into 'dev'
Feature/unsupported_ass_none

See merge request ligolang/ligo!118
2019-10-07 16:31:19 +00:00
Christian Rinderknecht
9c1be8f3a3 Merge branch 'feature/unsupported-string-catenation' into 'dev'
feature/unsupported_string_catenation

See merge request ligolang/ligo!120
2019-10-07 16:30:39 +00:00
Christian Rinderknecht
76b4fa3f47 Merge branch 'rinderknecht-dev' into 'dev'
Gardening for Ligodity and update of the documentation of PascaLIGO.

See merge request ligolang/ligo!119
2019-10-07 15:44:36 +00:00
Lesenechal Remi
44767c4b8e Simplifier now emit CONCAT constant 2019-10-07 17:16:03 +02:00
Tom Jack
36ec771adf Remove singleton inductive type 2019-10-07 16:54:28 +02:00
Tom Jack
e2c831a231 Simplify more 2019-10-07 16:54:28 +02:00
Tom Jack
1c2c6cbc43 Delete unused NoneExpr 2019-10-07 16:54:28 +02:00
Tom Jack
3a14ef26ef Simplify? 2019-10-07 16:54:28 +02:00
Lesenechal Remi
3a3cfa341a cleaning 2019-10-07 16:54:28 +02:00
Lesenechal Remi
08a3e08f57 add a new T_constant in ast_simplified and ast_typed 2019-10-07 16:54:28 +02:00
Lesenechal Remi
1401d03d62 Parser patch from Christian 2019-10-07 16:54:28 +02:00
Christian Rinderknecht
ff9584c7b7 Gardening. 2019-10-07 16:37:33 +02:00
Pierre-Emmanuel Wulfman
59cb210b83 Interface for Ocaml code 2019-10-07 14:18:32 +00:00
John David Pressman
0207d1f88f Add .mli for SAST pretty printer with minimal comments 2019-10-04 15:33:50 -07:00
Georges Dupéron
0e5c9802ec More tests with lambdas 2019-10-04 16:47:01 -04:00
Georges Dupéron
606f7ca907 More tests, integration of some of the operators 2019-10-04 16:47:01 -04:00
Georges Dupéron
8c37fe355d test: contract for mligo version of the example on the website 2019-10-04 16:33:59 -04:00
John David Pressman
fcfbbcb9c1 Delete dead code and add .mli docs to simplify/pascaligo.ml 2019-10-03 15:32:16 -07:00
John David Pressman
c2489fd310 ocamldoc-ify Markup.mli 2019-10-03 14:07:12 -07:00
John David Pressman
30d25ee247 Convert top comment in LexToken.mli to ocamldoc comment 2019-10-03 13:59:53 -07:00
John David Pressman
211d5ea37f Add explanation of AST relationship to Parser.mly to AST.mli 2019-10-03 13:42:33 -07:00
John David Pressman
51e6c441f2 Add documentation for pascaligo parser interface as .mli 2019-10-03 13:32:43 -07:00
John David Pressman
e3c581ff02 Fix typo in transpiler.ml explanation 2019-10-03 11:47:09 -07:00
John David Pressman
b02c241a01 Add short explanation to transpiler.ml 2019-10-03 11:37:07 -07:00
Lesenechal Remi
c1845c2bfe Only look at arg.type_value instead of arg.content 2019-10-03 18:35:11 +02:00
Lesenechal Remi
4e333836cb ignore closure error in subexpression of argument 2019-10-03 15:36:06 +02:00
Lesenechal Remi
962a98da75 emmit a t_function when no variables are captured 2019-10-03 10:21:09 +02:00
Lesenechal Remi
6fbe43d28a Check for closure when applying a function and update tests 2019-10-02 18:31:15 +02:00
Lesenechal Remi
a7565145d5 add map_expression function in self_mini_c pass helpers 2019-10-02 18:31:15 +02:00
Lesenechal Remi
ae882c39ef Variable name gardening 2019-10-02 18:31:15 +02:00
Lesenechal Remi
2840eb7414 Treat env element expression as deep_closure only if they are lambda 2019-10-02 18:31:15 +02:00
Sander Spies
ccfe58efb8 Fix lexer 2019-10-01 07:51:10 +02:00
Georges Dupéron
c1ca3184af WIP: fixing the build errors 2019-09-29 18:28:19 -04:00
Georges Dupéron
2b5b23f266 WIP: fixing the build errors + missing non-merged code 2019-09-29 18:25:02 -04:00
galfour
81569b9c54 add subst 2019-09-29 18:52:38 +02:00
Georges Dupéron
74a09c5ba6 WIP: cleaning up some TODOs 2019-09-29 00:06:28 +01:00
Georges Dupéron
4dbd2d5873 revert indentation change 2019-09-29 00:05:54 +01:00
Georges Dupéron
fc80c627fd WIP : instantiation of foralls in some cases 2019-09-28 20:26:02 +01:00
Pierre-Emmanuel Wulfman
271a524920 WIP; commenting 2019-09-28 20:10:30 +01:00
Pierre-Emmanuel Wulfman
e4e77da97c add change for typer.ml 2019-09-28 01:56:09 +02:00
Rémi Lesenechal
6850d21650 Feature/ligo 100 map tests 2019-09-27 15:52:40 +00:00
Christian Rinderknecht
889a4d643d Forgot to fully resolved conflict due to removal of keyword fail. 2019-09-27 17:08:07 +02:00
Christian Rinderknecht
8257c5e6fe Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-27 17:07:36 +02:00
Sander
5bcf3cae6e Refactor Ligodity parser to use shared parser. 2019-09-27 13:33:25 +00:00
Pierre-Emmanuel Wulfman
f657c71753 Merge done and repo build with no error 2019-09-27 14:55:09 +02:00
Christian Rinderknecht
81868ca3b2 Merge branch 'rinderknecht-dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-09-27 14:36:59 +02:00
Christian Rinderknecht
814a37b477 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-27 14:35:47 +02:00
Christian Rinderknecht
e5e9fb8e2f Merge branch 'dev' into 'rinderknecht-dev'
# Conflicts:
#   src/passes/1-parser/pascaligo/AST.ml
#   src/passes/1-parser/pascaligo/AST.mli
#   src/passes/1-parser/pascaligo/ParToken.mly
2019-09-27 11:47:59 +00:00
Christian Rinderknecht
fa4a7cecdf Removed entrypoint. Added back missing error message (string cat). 2019-09-27 13:44:29 +02:00
Gabriel Alfour
0c6f233507 Merge branch 'feature/auto-field-annotations' into 'dev'
Generate field annotations for sum/record

See merge request ligolang/ligo!78
2019-09-27 07:34:51 +00:00
Gabriel Alfour
ebf699cde7 Merge branch 'feature/failwith-typed' into 'dev'
Feature/failwith typed

See merge request ligolang/ligo!98
2019-09-26 20:25:46 +00:00
Tom Jack
6fc1b6430b Add a little bit of tez tests, fix cameligo lexer bug 2019-09-26 13:31:37 -05:00
galfour
7974469159 remove fail 2019-09-26 19:30:17 +02:00
galfour
ef2f6060d5 deprecate fail 2019-09-26 19:13:25 +02:00
galfour
08809f8a5d type failwith 2019-09-26 19:01:07 +02:00
galfour
e0e5228254 failwith test 2019-09-26 18:47:46 +02:00
galfour
c4a4942b09 minor merge 2019-09-26 11:39:35 -05:00
Tom Jack
09496ce4ca Generate field annotations for sum/record 2019-09-26 11:39:35 -05:00
Tom Jack
be201a5109 Lose another opam battle 2019-09-26 10:59:18 -05:00
Christian Rinderknecht
68ff421b7d Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-26 17:11:08 +02:00
Christian Rinderknecht
ca1471612f Merge branch 'pascaligo-tests' into 'dev'
Add Pascaligo tests for not kwd, (commented out) procedure and for loop

See merge request ligolang/ligo!95
2019-09-26 15:09:37 +00:00
Christian Rinderknecht
10469818c1 Removed entrypoint and storage as keywords.
Bug fix: `n-1` was scanned as `n` and `-1`, which was rejected by
a style constraint.

I removed useless style constraints in the lexer.

I removed dead code in `pascaligo.ml`.

I added my first draft for the reference manual of PascaLIGO: DO
NOT EDIT. Edit the website instead.

About the bug fix: This was an awkward attempt at rejecting at
lexing time negative integer literals whose sign is separated
from the digits, like `- 1`. The fix was simple: remove the
`integer` regular expression and use `natural`.
2019-09-26 16:35:16 +02:00
Tom Jack
389cbdbded Hotfix: display errors, fix mystery fail 2019-09-26 06:01:09 -05:00
Tom Jack
8a96e38f04 More failure tests, fix mligo assert 2019-09-25 20:15:21 -05:00
Tom Jack
a521c01115 some michelson optimizations 2019-09-25 20:15:19 -05:00
Tom Jack
a2240e0649 Merge branch 'feature/stderr' into 'dev'
Print errors to stderr, exit 1

See merge request ligolang/ligo!66
2019-09-26 00:56:55 +00:00
Tom Jack
8a04ee8097 Fix bug for compile-parameter and compile-storage 2019-09-25 13:40:32 -05:00
galfour
be75fd4830 fixed minor bug 2019-09-25 17:21:44 +02:00
galfour
87bbdad553 fix stuff 2019-09-25 10:49:14 +02:00
John David Pressman
9bb0d3aa9f Disable tests for procedures and for loops, which are unsupported 2019-09-24 16:20:52 -07:00
John David Pressman
ada8a2b703 Add (commented out) for loop test & working procedure test
Also clean up typo in unsupported for loop error message
2019-09-24 15:47:04 -07:00
John David Pressman
a8def8c269 Add test for boolean not 2019-09-24 12:18:07 -07:00
galfour
e6ac10f0ce switch from tz to mtz 2019-09-24 14:29:18 +02:00
galfour
f72593ae85 add set literals 2019-09-24 14:00:43 +02:00
galfour
b6ee28d704 add map literals in cameligo 2019-09-24 13:54:34 +02:00
galfour
ac449d2cb3 test List.iter and List.map in cameligo 2019-09-24 10:54:14 +02:00
galfour
9c3c40c9ef add set fold 2019-09-24 00:26:39 +02:00
galfour
c4752c5935 add map fold 2019-09-23 23:46:47 +02:00
galfour
b41b676eb8 add list fold 2019-09-23 23:33:25 +02:00
Tom Jack
c07f0633cd Print errors to stderr, exit 1 2019-09-23 09:54:53 -07:00
galfour
fed4891840 Merge branch 'dev' into refactor/everything 2019-09-23 16:40:51 +02:00
galfour
96fd0b4660 yay 2019-09-22 23:39:52 +02:00
galfour
37836f9512 adding option 2019-09-22 22:44:50 +02:00
galfour
720ef99c69 solve conflict 2019-09-22 22:17:28 +02:00
John David Pressman
0cfb40f54d Add purpose comments to some test contracts
Add comments explaining what a contract is/does/tests to the top of several PascaLIGO test contracts, as part of evaluating what parts of the syntax are and aren't currently tested.
2019-09-21 14:59:48 -07:00
galfour
9fb65e71e8 more lists 2019-09-21 11:30:41 +02:00
galfour
ad79188c4f add list pattern matching 2019-09-21 09:12:00 +02:00
Lesenechal Remi
8978c5c4d7 Print expresion in error message to ease further debugging 2019-09-20 21:33:14 +02:00
Lesenechal Remi
ea6f51bd55 CLI checked, compile-storage and dry-run
Add a '--bigmap' option to the CLI. This way all the maps in the AST are transformed to bigmaps
2019-09-20 21:33:14 +02:00
Lesenechal Remi
b653996aae Big_map support
Add big_map case in the uncompiler which takes the original big_map and apply the returned diff

Add input_to_value option which compiles input expressions to mini_c.values
2019-09-20 21:33:14 +02:00
Lesenechal Remi
304184bcd3 Bla 2019-09-20 21:33:14 +02:00
Lesenechal Remi
c7cfce2bf7 Remove merge comments 2019-09-20 21:33:14 +02:00
Lesenechal Remi
e5b4d37af8 add E_big_map case in Ast 2019-09-20 21:33:14 +02:00
Lesenechal Remi
a9f7bb39e4 add tests for big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
1c281ac079 merge operations syntax for map with big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
e930dc00c4 some check on starage for big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
25e3ab8e5d big map can be looked up 2019-09-20 21:33:14 +02:00
Lesenechal Remi
4fec6f1624 naively connects big_map to the transpiler 2019-09-20 21:33:14 +02:00
galfour
dc9294bbcc add options in cameligo 2019-09-20 20:38:04 +02:00
galfour
66efff631d add micheline 2019-09-20 18:56:55 +02:00
galfour
9a7c3ee54d Merge branch 'dev' into refactor/everything 2019-09-20 17:51:43 +02:00
galfour
1b901b1c25 Merge branch 'dev' into refactor/everything 2019-09-20 17:50:47 +02:00
galfour
2a90be292c more formats 2019-09-20 11:59:44 +02:00
galfour
e3179bd7c7 tests pass again 2019-09-19 12:59:07 +02:00
galfour
6fe48ff6ad more working 2019-09-19 08:29:31 +02:00
galfour
015e197183 back on track 2019-09-19 01:34:37 +02:00
galfour
b619fa1f17 further down the road 2019-09-18 18:49:33 +02:00
galfour
d8b7a12c69 more refactoring 2019-09-15 13:12:19 +02:00
galfour
5566095e49 more stuff 2019-09-11 13:56:39 +02:00
galfour
715812b2c3 more modifications 2019-09-10 15:19:15 +02:00
galfour
cdfffcf8ec more refactoring 2019-09-10 12:42:49 +02:00
John David Pressman
1cda8ca097 Merge branch 'fix-ci' into 'dev'
Try to fix CI again

See merge request ligolang/ligo!71
2019-09-10 02:38:18 +00:00
Tom Jack
c867a4c4d4 Remove dune-project files 2019-09-09 13:59:08 -07:00
galfour
d187317c32 move contracts 2019-09-09 11:47:42 +02:00
Tom Jack
e0b5910627 Try to fix CI again 2019-09-08 12:37:11 -07:00
galfour
0fb37e9d3f adding list cons 2019-09-08 12:34:29 +02:00
galfour
cb1aa44ff4 moving stuff around 2019-09-08 12:17:24 +02:00
Gabriel Alfour
dec2ffd2ed Merge branch 'feature/add-hashes' into 'dev'
add hashes and support for bytes

See merge request ligolang/ligo!69
2019-09-07 17:04:07 +00:00
galfour
6713160530 add hashes and support for bytes 2019-09-07 18:42:59 +02:00
galfour
25b07af6ae merge dev conflict 2019-09-07 16:54:08 +02:00
Georges Dupéron
644d90be6d Fix CI and Makefile (WIP) 2019-09-06 17:27:09 +02:00
galfour
f831793fbd y e s s s 2019-09-05 15:21:01 +02:00
Christian Rinderknecht
4b4698d1f0 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-08-29 17:27:36 +02:00
Christian Rinderknecht
57b1d39b6e New contract in CameLIGO, based on the tutorial. (Not called from the CI.) 2019-08-29 17:25:35 +02:00
Christian Rinderknecht
3f47bb2e85 Recording as miscellaneous the old way to do series of items. 2019-08-29 17:09:43 +02:00
Christian Rinderknecht
95b2111a8b Left factoring of productions to get closer to LL. 2019-08-29 17:08:23 +02:00
Christian Rinderknecht
fbbff496c7 Cosmetics. 2019-08-29 17:07:23 +02:00
Christian Rinderknecht
f99bd0d1df More rewrites of the grammar for stream parsing.
Fixed code in the internal documentation of PascaLIGO.
2019-08-29 17:06:16 +02:00
Sander
b04a988a7e Separate parts of Pascaligo into a shared parser library 2019-08-29 14:54:06 +00:00
Tom Jack
faf3bbc061 Fix unpack_closure 2019-08-21 07:34:39 -07:00
Tom Jack
7afa8a9cdb Test closures more 2019-08-21 07:34:34 -07:00
galfour
31a2a96810 fixed last bug 2019-08-21 11:41:57 +02:00
galfour
af588933f4 add closures 2019-08-21 10:28:27 +02:00
Tom Jack
bd987613d5 This stuff is now unused 2019-08-20 16:33:23 -07:00
Tom Jack
31591f1669 Comment out tests needing closure (TODO) 2019-08-20 16:33:23 -07:00
Tom Jack
d53f0058c6 Various compiler fixes 2019-08-20 16:33:23 -07:00
galfour
de96a04681 simplifying compiler 2019-08-20 22:51:16 +02:00
Christian Rinderknecht
fddce3257a First draft of the PascaLIGO parser using streams. 2019-08-04 18:03:54 +02:00
Christian Rinderknecht
ce31bc2572 Fixes. 2019-08-04 18:02:56 +02:00
Christian Rinderknecht
6c818567fa Fixed comment. 2019-07-31 14:43:04 +02:00
Christian Rinderknecht
5bc43fa430 Changed the definition of the compound constructs so they use "option". 2019-07-31 10:45:19 +02:00
Christian Rinderknecht
50c99ff71d I added more transformations. 2019-07-31 10:24:57 +02:00
Christian Rinderknecht
bf50102810 Fixed expressions annotated with types (they are now allowed everywhere). 2019-07-30 14:24:26 +02:00
Christian Rinderknecht
6a0948a6ac Fixed regression. Enabled type annotations for all expressions
(between parentheses).

The error was to use COMMA to separate instructions in a block, instead of SEMI (semicolons), as before. This is corrected here.
2019-07-30 11:27:32 +02:00
Christian Rinderknecht
9e6bff4741 Renamings. Additions. 2019-07-29 12:33:02 +02:00
Christian Rinderknecht
25437f5ed5 Fixed some rules. 2019-07-29 12:31:10 +02:00
Christian Rinderknecht
100bf1119a First rewrites of the PascaLIGO grammar to make it suitbale for stream
parsing.
2019-07-26 17:47:16 +02:00
Christian Rinderknecht
9b34b13e15 Replacing map_injection by injection(Map,binding). 2019-07-26 16:23:12 +02:00
Christian Rinderknecht
295f94a09a Further streamlining PascaLIGO and Ligodity parsers. 2019-07-25 16:11:33 +02:00
Christian Rinderknecht
2a44e0f084 Merge branch 'dev' into 'rinderknecht-dev'
# Conflicts:
#   src/contracts/website2.ligo
#   src/simplify/pascaligo.ml
2019-07-25 10:33:07 +00:00
Christian Rinderknecht
fe2c56aedb Miscellanea. 2019-07-24 15:43:51 +02:00
Christian Rinderknecht
dc4f14d469 Parsing the command line by calling [EvalOpt.read], not a side-effect. 2019-07-24 15:41:52 +02:00
Christian Rinderknecht
d2f4d00011 Refactored module EvalOpt by removing useless command line options. 2019-07-24 14:34:26 +02:00
Pierre-Emmanuel Wulfman
7414893cd5 FIX - typo in error message in ast_simplified/combinator.ml 2019-07-24 09:35:22 +00:00
galfour
88261fd5e2 Merge branch 'dev' into feature/better-error-messages 2019-07-21 11:58:09 +02:00
galfour
d7a16c47c1 add iterators for maps 2019-07-20 16:42:34 +02:00
galfour
564a4df145 add map to lists ; fix error with lists 2019-07-20 16:18:50 +02:00
galfour
9dd8e63cbf add iter for set and lists 2019-07-20 13:46:42 +02:00
galfour
33101820ec add set tests 2019-07-19 14:35:47 +02:00
galfour
5c3d801c78 add bitwise arithmetic and string arithmetic tests 2019-07-19 12:42:01 +02:00
galfour
7b9d861a34 type new operators 2019-07-19 12:13:09 +02:00
galfour
4b6a58907d get rid of useless units ; make compiler.ml less brittle 2019-07-18 15:19:25 +02:00
galfour
25566bc3fe selection of environment can be done both ways 2019-07-18 13:04:13 +02:00
Christian Rinderknecht
685c25de9a First import of my first designs for a front-end generator for Ligodity. 2019-07-14 16:41:52 +02:00
Galfour
6e3209fa4f add manual tests; change display of errors; minor refactorings 2019-06-28 12:05:04 +00:00
Christian Rinderknecht
6d3679290d Fixed typo in comment. 2019-06-27 10:32:07 +02:00
Tom Jack
7492657790 Update Pascaligo parentheses in docs 2019-06-24 08:42:06 -07:00
Christian Rinderknecht
2f6e17c837 I fixed the heterogeneity in parentheses around constructors in
patterns.
2019-06-24 08:42:06 -07:00
Christian Rinderknecht
77a55172ef I fixed the heterogeneity in parentheses around constructors in
patterns.
2019-06-13 16:57:40 +02:00
Georges Dupéron
ded9c4f58f Fix auto-detection of syntax, use a polymorphic variant to ensure all functions were updated. 2019-06-13 01:56:03 +02:00
Galfour
a3e6016758 Merge branch 'dev' into feature/dry-run-bin 2019-06-12 20:49:36 +00:00
Matej Šima
072d753e91 Merge branch 'feature/more-operators' into 'dev'
Feature/more operators

See merge request ligolang/ligo!32
2019-06-12 20:34:16 +00:00
Galfour
8f03e537cd Merge branch 'dev' into feature/dry-run-bin 2019-06-12 20:02:39 +00:00
Galfour
07f7af5286 Merge branch 'dev' into feature/more-operators 2019-06-12 19:56:45 +00:00
Galfour
fa5ac47d8f add amount option 2019-06-12 19:13:06 +00:00
Galfour
4c833fc7a3 add one cameligo test 2019-06-12 18:41:29 +00:00
Matej Šima
69f867edee Merge branch 'feature/auto-detect-syntax' into 'dev'
Auto-detect syntax based on file extension

See merge request ligolang/ligo!27
2019-06-12 13:23:52 +00:00
Matej Šima
c2d7678f9a Merge branch 'feature/dry-run-bin' into 'dev'
fix dry-run ; add features to the bin

See merge request ligolang/ligo!30
2019-06-12 09:18:54 +00:00
Georges Dupéron
fdfb00b7a6 Distinguish parameter and storage arguments in --help 2019-06-12 01:28:38 +02:00
Georges Dupéron
6bb5a0f731 Auto-detect syntax based on file extension 2019-06-12 01:12:37 +02:00
Galfour
a75c0ac061 fix dry-run ; add features to the bin 2019-06-11 17:57:07 +00:00
Christian Rinderknecht
582e95f9a8 Enabled user-defined constant constructors in expressions. 2019-06-11 17:10:27 +02:00
Galfour
8c934a6fd8 more operators in the pipeline 2019-06-11 00:52:09 +00:00
Galfour
b512bf31bb add more operators 2019-06-10 22:17:01 +00:00
Galfour
3f8b3fef87 Merge branch 'feature/dry-run-bin' into dev 2019-06-10 22:09:20 +00:00
Galfour
7b9e3b6699 add dry-run to the bin commands 2019-06-10 22:08:56 +00:00
Georges Dupéron
3583d067cc Merge branch '8-reporting-of-error-messages' into 'dev'
Fixed regression (empty lists in Ligodity)

See merge request ligolang/ligo!25
2019-06-10 20:22:29 +00:00
Christian Rinderknecht
37c2152fca Fixed the regression introducted by the previous commit (disallowing empty lists). 2019-06-10 19:59:22 +02:00
Christian Rinderknecht
53314c2c0c Removed "assert" as reserved. Enabled terminating ";" in lists. 2019-06-10 15:19:42 +02:00
Galfour
985eff44a9 more keywords ; add support for sets ; remove assert from keywords 2019-06-10 09:58:16 +00:00
Galfour
f4fc06ce72 some more operators 2019-06-10 01:41:02 +00:00
Galfour
10461764fb add dry-run in cli 2019-06-09 12:08:37 +00:00
Georges Dupéron
b2ec459b08 Added types for mligo map instructions 2019-06-07 15:16:48 +02:00
Christian Rinderknecht
4d121602eb Merge branch '8-reporting-of-error-messages' of gitlab.com:ligolang/ligo into 8-reporting-of-error-messages 2019-06-07 12:48:33 +02:00
Christian Rinderknecht
a8e344c24e Added test for Matej. 2019-06-07 12:48:21 +02:00
Georges Dupéron
743098ecbd added test calling a function with ligo 2019-06-07 11:19:56 +02:00
Galfour
346a6fdbc4 hide compiler errors; fix ligodity's over-eager tuplification 2019-06-06 21:06:33 +00:00
Galfour
a4f895882f more error messages; various fixes 2019-06-06 20:49:36 +00:00
Georges Dupéron
0e36d63ec4 more tests, improved error messages 2019-06-06 20:58:08 +02:00
Galfour
1aff86d464 Merge branch 'dev' into 8-reporting-of-error-messages 2019-06-06 17:37:49 +00:00
Galfour
0fea1c6d78 improve bin pretty printing of errors 2019-06-06 17:37:46 +00:00
Christian Rinderknecht
bff14309e4 Predefined values for Ligodity. Added a few more tests for Ligodity. 2019-06-06 18:40:05 +02:00
Galfour
019d4311ab binary hotfix 2019-06-06 09:30:29 +00:00
Georges Dupéron
dbe4282659 missing files in failwith and guess_string tests, oops. 2019-06-05 20:07:38 +02:00
Georges Dupéron
08626f749c "Guess the string" contract 2019-06-05 19:21:16 +02:00
Georges Dupéron
a0624614ee expect_eq_n: also test 1 (to check the cases 0, 1, many) 2019-06-05 19:21:15 +02:00
Georges Dupéron
02785aa754 Added failwith to camligo 2019-06-05 19:21:15 +02:00
Georges Dupéron
da4e3e5b80 improved --help docs 2019-06-05 19:21:15 +02:00
Georges Dupéron
347774e42b Improved error messages 2019-06-05 19:21:15 +02:00
Christian Rinderknecht
0e01353c7d Finished upgrading the error reporting for Pascaligo. 2019-06-05 17:51:06 +02:00
Georges Dupéron
e0228f352c fix build (my bad) 2019-06-05 14:26:01 +02:00
Georges Dupéron
64e848b2de structured errors for ast_typed/misc.ml 2019-06-05 11:48:33 +02:00
Georges Dupéron
24db060dae Use internal_assertion_fail instead of the simple_error that are just assertions 2019-06-05 11:38:59 +02:00
Georges Dupéron
1750895a65 removed simple_fail from ast_typed/misc.ml 2019-06-05 10:52:41 +02:00
Galfour
1ccaef23fb Merge branch '8-reporting-of-error-messages' of gitlab.com:ligolang/ligo into 8-reporting-of-error-messages 2019-06-05 06:43:45 +00:00
Galfour
1fa727061b add test hierarchy 2019-06-05 06:43:33 +00:00
Christian Rinderknecht
358b2fda83 Merge branch '8-reporting-of-error-messages' of gitlab.com:ligolang/ligo into 8-reporting-of-error-messages 2019-06-04 16:12:39 +02:00
Christian Rinderknecht
97dd2db4b8 I forbade local entry points in Pascaligo (meaningless).
I refactored the projections in Ligodity (AST), so they have the
same name and types as in Pascaligo, which will ease the creation
of module CommonErrors in a file.
2019-06-04 16:12:17 +02:00
Georges Dupéron
22f930b531 locations in error messages in typer.ml where possible 2019-06-04 14:24:24 +02:00
Christian Rinderknecht
8562586bbd Merge branch '8-reporting-of-error-messages' of gitlab.com:ligolang/ligo into 8-reporting-of-error-messages 2019-06-04 13:45:26 +02:00
Christian Rinderknecht
4f60f23769 Finished changing the error reporting. 2019-06-04 13:45:21 +02:00
Galfour
44d6f31a1d Merge branch '8-reporting-of-error-messages' of gitlab.com:ligolang/ligo into 8-reporting-of-error-messages 2019-06-04 08:21:24 +00:00
Galfour
388c5e6a09 errorm messages for the transpiler 2019-06-04 08:21:13 +00:00
Georges Dupéron
987d65f227 Structured error messages for typer (still needs to print srclocs) 2019-06-04 03:27:29 +02:00
Christian Rinderknecht
fd3460c890 Added more newly styled error message triggering. 2019-06-03 19:23:40 +02:00
Georges Dupéron
8ada684e34 More structured errors 2019-06-03 19:00:00 +02:00
Georges Dupéron
eee4367df9 More structured errors 2019-06-03 17:50:16 +02:00
Christian Rinderknecht
963507ddc0 Fixed the "end of stream" in the Ligodity parser. Started replacing
new error reporting in ligodity.ml.
2019-06-03 17:43:25 +02:00
Georges Dupéron
c2643f5b4c Use structured errors in typer 2019-06-03 16:09:31 +02:00
Georges Dupéron
0e484f5bc1 Started matching errors in typechecker 2019-06-03 14:56:29 +02:00
Galfour
0e17e8b274 minor fixes 2019-06-03 12:23:46 +00:00
Galfour
b65c9ca67f fix cli 2019-06-03 11:07:24 +00:00
Galfour
8c81432281 modify trace; oldify multifix 2019-06-03 10:33:13 +00:00
Galfour
a7298dc16d fix cli.ml 2019-06-01 11:51:49 +00:00
Galfour
6febd855c4 fix ligodity; add it to the bin; add source locations; merge 2019-06-01 11:29:31 +00:00
Galfour
8d6f19ac6c very unstable state 2019-06-01 08:37:43 +00:00
Galfour
055bee804e fix ligodity issues 2019-05-31 22:03:06 +00:00
Galfour
320d0c1a72 various refactorings to prepare tests; tests for ligodity don't pass 2019-05-31 19:56:51 +00:00
Galfour
009b0331e9 add cameligo to the cli 2019-05-29 22:13:04 +00:00
Galfour
79af0abab3 propagate source-code locations to ast_typed 2019-05-28 17:02:40 +00:00
Galfour
5b42d72e41 propagate source code locations from ligodity 2019-05-28 16:34:53 +00:00
Galfour
79b88ab4ba Merge branch 'master' of gitlab.com:ligolang/ligo 2019-05-28 15:47:29 +00:00
Gabriel Alfour
9059c3c2f1 Merge branch 'rinderknecht-dev' into 'master'
Added simplifications of Ligodity for lambdas, sequences and conditionals.

See merge request ligolang/ligo!5
2019-05-28 15:47:16 +00:00
Galfour
c32ace3afc propagate source code locations 2019-05-28 15:36:14 +00:00
Christian Rinderknecht
af8e9bd238 Added simplifications of Ligodity for lambdas, sequences and
conditionals.

Enabled in parser a type annotation on lambda parameter, and
lifted the existing type annotation in patterns to become that
type annotation.
2019-05-28 17:00:43 +02:00
Galfour
50868302c6 minor rewriting; add docs 2019-05-28 10:46:22 +00:00
Christian Rinderknecht
28b84e1e65 Fixed the translation of let-in. 2019-05-24 19:31:39 +02:00
Georges Dupéron
a0936d8eb5 Moved repository to ligolang namespace 2019-05-24 11:36:39 +02:00
Galfour
0b6f0e03be add basic doc in operators/operators.ml 2019-05-23 15:43:30 +00:00
Galfour
a852f4997c rewrote operators 2019-05-23 12:16:12 +00:00
Galfour
6ee5aff962 merge and fix 2019-05-23 07:49:06 +00:00
Galfour
c69c98c7fa Merge branch 'master' of gitlab.com:gabriel.alfour/ligo 2019-05-23 06:49:21 +00:00
Galfour
c085dae123 remove annotations from ast_simplified; make annotation expression explicit; locally very limited propagation of constraints in binding cases 2019-05-23 06:22:58 +00:00
Christian Rinderknecht
193febc83e Merge branch 'master' of gitlab.com:gabriel.alfour/ligo 2019-05-22 19:38:40 +02:00
Christian Rinderknecht
24a1068dd4
Refactoring of the parser and AST so "let" constructs bind
exactly one variable. (Unfinished)

Fixed minor error in error printing in Lexer.

Added test in ParseMain.ml on --verbose=parser.
2019-05-22 19:38:09 +02:00
Galfour
9d873c382b remove statements from everywhere (very atomic commit) 2019-05-22 00:46:59 +00:00
Christian Rinderknecht
331b11dcca
Refactored the AST and fixed the symlinks. 2019-05-20 21:42:11 +02:00
Galfour
46d07c55ea remove statements from mini_c 2019-05-20 16:26:55 +00:00
Galfour
2a091edbc0 transpile to mini_c expressions 2019-05-20 16:17:26 +00:00
Galfour
e48a5fde28 preparing removal of statements in Mini_c 2019-05-20 08:38:38 +00:00
Galfour
2dd7e2668c merge 2019-05-17 17:55:46 +00:00
Galfour
97adaad836 preparations for statements removal 2019-05-17 17:36:57 +00:00
Georges Dupéron
c773fe61ce revert let_in as lambda and add let_in 2019-05-17 19:14:00 +02:00
Galfour
ccdbd5bbd0 fix 2019-05-17 16:18:03 +00:00
Galfour
a94bf665f3 Merge branch 'master' of gitlab.com:gabriel.alfour/ligo 2019-05-17 16:06:57 +00:00
Galfour
21f09da759 remove environment from transpilation of expressions 2019-05-17 16:03:41 +00:00
Christian Rinderknecht
6028cd9abd
I enabled constant data constructors. I added more to the documentation. 2019-05-17 16:29:22 +02:00
Christian Rinderknecht
90a9e1a783 In the process of optimising immediate applications as let-in [Broken]. 2019-05-16 18:17:27 +02:00
Christian Rinderknecht
3c46b99202 Merge branch 'master' of gitlab.com:gabriel.alfour/ligo 2019-05-16 10:58:29 +02:00
Christian Rinderknecht
37c9d1ff64
Added mini-documentation of internals. Fixing links after change of
git repository.
2019-05-16 10:18:05 +02:00
Galfour
4e76b5344d add last expressions in mini_c 2019-05-16 08:12:53 +00:00
Galfour
32ecf8cfca add expression constructions to mini_c 2019-05-15 22:00:18 +00:00
Galfour
df1916a1b9 normalizing renaming 2019-05-15 21:05:09 +00:00
Galfour
1029f42aac minor renamings 2019-05-15 18:28:25 +00:00
Galfour
7a5130f51f remove environments from mini_c 2019-05-15 18:16:28 +00:00
Georges Dupéron
d433dd85fc Add module aliases and dependencies 2019-05-15 17:21:12 +02:00
Georges Dupéron
da87f9ca86 Add implicit open of Simple_utils in ligodity 2019-05-15 17:10:57 +02:00
Christian Rinderknecht
c60329ef78 Fixed the build (which I broke, sorry). 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
3d9775edb3 More rewrites. [Still not compiling.] 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
af8d1083b7 Eased the translation from Ligodity AST to Liquidity AST.
More precisely,

  * I commented out the operator "@" on lists in Ligodity (it can
    be implemented as a function, as a workaround).

  * I removed the parallel "let" construct (hence the "and" keyword).

  * I renamed the type "field_assignment" into "field_assign", in
    order to match Pascaligo AST.

  * The reading of the command-line options is now done by
    calling the function [EvalOpt.read], instead of an ugly
    side-effect when loading the binary of the module. Options
    are now found in a record of type [EvalOpt.options].

  * I added support in the Ligodity lexer for #include CPP
    directives.
2019-05-15 16:05:03 +02:00
Christian Rinderknecht
fdf7704a7c Fixed the type for ECall. 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
bb5dadca55 Modifying pascaligo.ml to become ligodity.ml [BROKEN]. 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
7de4a1802a Additions and refactoring so the AST gets even closer to that of PAscaligo.
* Added type annotations for expressions.
* Added bytes.
* Changed the AST for function calls
* Changed the AST for constructor applications
2019-05-15 16:05:03 +02:00
Christian Rinderknecht
011ae44b54 Finished narrowing the gap between Ligodity AST and Pascaligo AST. 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
0796567aee Further reducing the distance from Ligodity AST to Pascaligo AST. 2019-05-15 16:05:03 +02:00
Christian Rinderknecht
dcbfbf781d Extended lib_utils/pos.ml{i}. First import of Ligodity. (No "simplify" yet.) 2019-05-15 16:04:37 +02:00
Georges Dupéron
22b331dbed Added tests to build, fixed some unused variables. 2019-05-15 15:17:04 +02:00
Galfour
3c6af09b21 fix warning; fix error in tests 2019-05-15 11:44:05 +00:00
Georges Dupéron
c43570a82d Move into src/; add vendors/ subfolder, add CI script. 2019-05-14 17:53:44 +02:00