Commit Graph

746 Commits

Author SHA1 Message Date
Christian Rinderknecht
0fdbbe0a4c Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-11-06 17:33:39 +01:00
Christian Rinderknecht
9da6d81a0f Added local test file. 2019-11-06 17:33:00 +01:00
Christian Rinderknecht
fe90246e3a Fixed the printing of some AST nodes. 2019-11-06 17:23:49 +01:00
Tom Jack
a69d084d0a Fix merge conflict 2019-11-06 07:35:15 -06:00
Christian Rinderknecht
70a9afcce2 Merge branch 'rinderknecht-dev' into 'dev'
Refactoring of Ligodity (CameLIGO) and making an AST pretty-printer

See merge request ligolang/ligo!172
2019-11-06 12:18:54 +00:00
Pierre-Emmanuel Wulfman
e741531041 Merge branch 'clean-sts-solver' into 'dev'
New typer in a separate folder along with old typer

See merge request ligolang/ligo!166
2019-11-06 11:28:03 +00:00
Suzanne Dupéron
0b7a84e949 Fixed qwerty typo + small cleanup 2019-11-05 21:52:59 +00:00
Christian Rinderknecht
bd6ce2f28c Bug fix: Some nodes were not indented. 2019-11-05 15:57:43 +01:00
John David Pressman
2aeebb8726 Add bytes arithmetic tests to CameLIGO 2019-11-04 16:58:34 -08:00
Christian Rinderknecht
351025b52d Refactoring of Ligodity (CameLIGO) and making an AST pretty-printer
- AST.ml/AST.mli:
  - The AST now distinguishes the constructors `None` and `Some` as being
    predefined, as in PascaLIGO. See type `AST.constr_pattern`.
  - I removed the nodes specific to Liquidity,
    e.g. `let%entry`, and, in particular, the natural literals
    ending with `p`. Now it should be `n`, as in `10n`.
  - I renamed the node `TAlias` to `TVar`.
  - I have applied the rule of expanding type expressions after `of` when
    those were not records.
  - The type of the argument to a data constructor is now
    `type_expr`, instead of `cartesian`.
  - I added the patterns for bytes (`PBytes`) and natural literals (`PNat`).
  - I renamed the node `Sugar` into
    `PListComp` (meaning "pattern of list comprehension").
  - Record types in CameLIGO now must have at least one field declaration.
  - Replaced the type `closing` and `opening` with one type `compound`,
    which captures only the right combinations of opening and closing.
  - Components of tuples in a selection must not be written
    between parentheses. For example, `a.b.(1).(0)` is now
    `a.b.1.0`, as in PascaLIGO.
- LexToken.mli/LexToken.mll
  - I renamed the string literal `Str` into `String`.
  - I added the tokens `C_None` and `C_Some` (to distinguish the
    constructors `None` and `Some`. See AST.ml)
  - Fixed the function `mk_sym` so it does not fail with `failwith`, but
    with `Error Invalid_symbol`.
- Lexer.mll (shared)
  - I removed the character `%` from the identifiers (used to
    support Liquidity, like `entry%point` and `match%nat`).
  - I adde to the hint on broken strings: "or insert a backslash"
    (from a Gitlab issue).
- ParToken.mly
  - I added the tokens `C_None` and `C_Some` (to distinguish the
    constructors `None` and `Some`. See AST.ml and LexToken.mll)
- Parser.mly
  - Fixed the order of declarations in the AST (it was reversed).
  - I removed syntax support for Liquidity.
  - I added user-defined constructor applications to irrefutable
    patterns (the ones afer a `let`), even though only the type
    checker can decide that they are truly irrefutable because they
    are the only constructors of their types.
  - I added natural numbers and bytes to patterns.
  - Access of tuple components do not require parentheses now, like
    `a.b.1.0`.
  - I refactored the semantic actions.
  - I added the empty sequence `begin end`.
- ParserLog.ml/ParserLog.mli
  - I added a pretty-printer for the AST (with source locations).
- ParserMain.ml
  - The CLI for the pretty-printer is now `--verbose=ast`.
  - The old CLI `--verbose=ast` is now `--verbose=ast-tokens`.
- ligodity.ml (simplifier)
  - I removed the constructions of sets, lists and maps with
    `Set [...]`, `List [...]` and `Map [...]`, as there are already
    better ways (that is, more like the OCaml's way), like
    `Set.literal [...]` and `Map.literal [...]`. (The case for lists
    was entirely redundant with the rest of the language as it is.)
  - Everywhere there is now a non-empty list of elements, I made a
    change. In particular, I removed a corner case ("let without
    binding"), thanks to more precise OCaml types for non-empty
    lists.
  - I ported all the changes to the AST above.
- region.ml (vendors)
  - I changed the method `compact` so the end-line is not repeated
    if it is the same as the start line: this is even more compact. I
    use this in the new pretty-printer for the AST (see above)
- I updated all the CameLIGO contracts.
2019-11-04 23:51:47 +01:00
John David Pressman
aec572fc20 [LIGO-168] Add the while loop to CameLIGO 2019-11-04 19:06:18 +00:00
Suzanne Dupéron
4325ba7ee4 Merge branch 'clean-sts-solver' of gitlab.com:ligolang/ligo into clean-sts-solver 2019-11-04 18:44:09 +00:00
Suzanne Dupéron
40b318eff6 Rename 4-typer to 4-typer-old (part 2: make changes) 2019-11-04 18:40:49 +00:00
Suzanne Dupéron
f41625ceb3 Rename 4-typer to 4-typer-old (part 1: move files) 2019-11-04 18:39:56 +00:00
galfour
9fe5d821c3 Merge branch 'dev' into clean-sts-solver 2019-11-04 16:32:32 +01:00
Tom Jack
c969f306af Eliminate dead lambdas 2019-11-02 18:43:46 -05:00
Tom Jack
e30b7faa9d Mini_c: Remove T_deep_closure and D_function 2019-11-02 18:43:46 -05:00
Tom Jack
cccbd424a8 Implement Mini_c.Free_variables 2019-11-02 18:43:46 -05:00
Tom Jack
ba7a83d0f7 Deal with upstream MBytes changes 2019-11-02 17:54:33 -05:00
Suzanne Dupéron
865cf80c77 Tests pass again, using the old typer 2019-11-01 09:48:09 -04:00
Suzanne Dupéron
45347e3e88 Bring back copy of the old typer (part 2: changes) 2019-10-31 18:19:01 -04:00
Suzanne Dupéron
d57a87a3ea Moving new typer to separate folder 2019-10-31 17:43:44 -04:00
Suzanne Dupéron
5c3e1ad642 Hack for E_constant with loops shouldn't be necessary in new typer, thanks to typeclasses? 2019-10-31 17:19:01 -04:00
Suzanne Dupéron
1e06c24325 Merge branch 'dev' of gitlab.com:ligolang/ligo into clean-sts-solver 2019-10-31 17:18:09 -04:00
Suzanne Dupéron
dce15a79c6 WIP on understanding where in the AST we need the subst. 2019-10-31 13:21:05 -04:00
Lesenechal Remi
b9d32ddf4e add bytes_pack 2019-10-31 17:39:07 +01:00
Rémi Lesenechal
0423a704ec Merge branch 'feature/signature_type' into 'dev'
add signature type

See merge request ligolang/ligo!164
2019-10-31 16:36:23 +00:00
Lesenechal Remi
f341527aa6 add signature type 2019-10-31 16:46:07 +01:00
Tom Jack
58638c6a05 Merge branch 'feature/hex' into 'dev'
Add hex michelson output, use enums for format options

See merge request ligolang/ligo!162
2019-10-31 15:39:03 +00:00
Tom Jack
76ecd56e3d Merge branch 'feature/babylon-optimizer' into 'dev'
Update optimizer for Babylon

See merge request ligolang/ligo!158
2019-10-31 15:17:00 +00:00
Tom Jack
fd03d577e4 Support --michelson-format in all commands producing Michelson 2019-10-31 09:50:51 -05:00
Pierre-Emmanuel Wulfman
770bdda9df commenting a little bit the typesystem 2019-10-30 19:35:35 +01:00
Suzanne Dupéron
c0397f68a0 Wrap type names with a constructor Type_name, so that merlin does not think that all strings are type names 2019-10-30 12:50:19 -04:00
John David Pressman
750605cee4 Merge branch 'dev' of gitlab.com:ligolang/ligo into test/cameligo-test-parity 2019-10-29 22:06:42 -07:00
John David Pressman
27b7527f18 Add test for CameLIGO set fold 2019-10-29 21:33:48 -07:00
John David Pressman
85345387d0 Add tuple tests to CameLIGO 2019-10-29 20:55:36 -07:00
John David Pressman
2ff178543f Add more operations to CameLIGO set tests 2019-10-29 20:33:18 -07:00
Suzanne Dupéron
3f0b9346a5 More but not enough of the fold. Filled in holes with failwith, need to implement enough that it passes a test. 2019-10-29 20:14:42 -04:00
John David Pressman
c09116211f Merge branch 'feature/cameligo-negative-op' into 'dev'
[LIGO-172] Add negative operator to CameLIGO

See merge request ligolang/ligo!161
2019-10-29 18:12:17 +00:00
John David Pressman
f0f4c683f2 Add more complex negative operator test 2019-10-29 10:07:07 -07:00
John David Pressman
dce98c06ec Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/cameligo-negative-op 2019-10-29 09:59:37 -07:00
John David Pressman
102ffda7c3 Make negative operator test pass 2019-10-29 09:28:20 -07:00
Lesenechal Remi
a140e12394 add test for nested for collection loops (not supported yet) 2019-10-29 16:32:28 +01:00
Lesenechal Remi
402d849cec use intermediary tuple access to get key and value for maps. add tests. 2019-10-29 15:43:00 +01:00
Lesenechal Remi
fd901548af add more tests 2019-10-29 11:57:15 +01:00
Lesenechal Remi
c288f3c81e simplify the simplifier and now find the free variables with a expression_fold 2019-10-29 11:56:21 +01:00
Lesenechal Remi
e86c92bc3b improving simplifier 2019-10-29 11:41:59 +01:00
Lesenechal Remi
ba00db2b4c add self_ast_simplified fold_expression 2019-10-29 10:43:38 +01:00
Suzanne Dupéron
735bd8e668 Implementing subst over the AST 2019-10-29 01:55:53 -04:00
John David Pressman
ec3f836605 Add test for several function parameters in CameLIGO 2019-10-28 22:07:00 -07:00
John David Pressman
c004fd24cd Add option and boolean match tests to CameLIGO 2019-10-28 22:01:31 -07:00
John David Pressman
f62481fb0a Add list match test to CameLIGO 2019-10-28 21:38:29 -07:00
Lesenechal Remi
e77f3e4903 empty for collection loop 2019-10-28 20:52:14 +01:00
Lesenechal Remi
37570c6a40 clean test 2019-10-28 20:52:14 +01:00
Lesenechal Remi
2ced2e784e add doc 2019-10-28 20:52:14 +01:00
Lesenechal Remi
e16eac77a6 fixes for loop on map.
Untested because of issue with deep tuple access (LIGO-131 LIGO-134)
An error message is in the simplifier
2019-10-28 20:52:14 +01:00
Lesenechal Remi
1a035f9713 tests for sets 2019-10-28 20:52:14 +01:00
Lesenechal Remi
b71309bfa2 proper error message for deep accesses in loops of collection body 2019-10-28 20:52:14 +01:00
Lesenechal Remi
c7056d200d merging with dev 2019-10-28 20:52:14 +01:00
Lesenechal Remi
5a77b08aa7 cleaning & documenting 2019-10-28 20:52:14 +01:00
Lesenechal Remi
7eed9b1856 test passing ! 2019-10-28 20:52:14 +01:00
Lesenechal Remi
a3deccf352 changing the name of the lambda to 'arguments' make its arguments available 2019-10-28 20:52:14 +01:00
Lesenechal Remi
164e88e818 remove shadowing of lambda name over the constant name 2019-10-28 20:52:14 +01:00
Lesenechal Remi
d651bfb3a3 remove misplaced 'skip' 2019-10-28 20:52:14 +01:00
Lesenechal Remi
0cf7471441 prepend the body of the lambda with let_in's 2019-10-28 20:52:14 +01:00
Lesenechal Remi
7f7f19854a WIP : make test a bit easier 2019-10-28 20:52:14 +01:00
Lesenechal Remi
91d92e048d special case for pascaligo generated LIST/SET/MAP_FOLD 2019-10-28 20:52:14 +01:00
Lesenechal Remi
70502f62cb fix the way lambda arguments are accessed 2019-10-28 20:52:14 +01:00
Lesenechal Remi
db79b6b9da select op_name from collection key word 2019-10-28 20:52:14 +01:00
Lesenechal Remi
79de96136d Collection for translation without type annotation on record 2019-10-28 20:52:14 +01:00
Lesenechal Remi
730c130fb3 merge step and down reemoval
WIP

WIP
2019-10-28 20:52:14 +01:00
Lesenechal Remi
536b5648c8 some cleaning 2019-10-28 20:52:14 +01:00
Lesenechal Remi
1d3d57c7c5 not complete for collect tryout 2019-10-28 20:52:14 +01:00
Lesenechal Remi
3058a57c62 cleaning and better tests 2019-10-28 20:52:14 +01:00
Lesenechal Remi
b7961fc8ec cleaning 2019-10-28 20:52:14 +01:00
Lesenechal Remi
d8e44476ba First version for ForInt loops 2019-10-28 20:52:14 +01:00
Christian Rinderknecht
2c4183f008 Merge branch 'feature/cameligo-bitwise-operators' into 'dev'
[LIGO-177] Add bitwise operators to CameLIGO

See merge request ligolang/ligo!160
2019-10-28 18:13:54 +00:00
John David Pressman
c7e4f3f651 Remove lxor, land, and lor from reserved words 2019-10-28 09:18:16 -07:00
Suzanne Dupéron
dcf5a975d4 More of subst 2019-10-28 01:10:26 -04:00
Suzanne Dupéron
174c028406 Fixing issues in the new typer 2019-10-27 23:24:21 -04:00
John David Pressman
cae0dfb1aa Change names to the standard library names for the functions in OCaml 2019-10-27 12:05:34 -07:00
Tom Jack
0191d8b0ed Replace "mtz" with "mutez" 2019-10-27 11:50:24 -05:00
Tom Jack
6956e8751d Add hex michelson output, use enums for format options 2019-10-26 12:57:22 -05:00
Tom Jack
076c245724 Merge branch 'get-contract-address' into 'dev'
Typecheck address argument to get_contract

See merge request ligolang/ligo!159
2019-10-26 13:33:23 +00:00
Suzanne Dupéron
1dc690bbba Bugfix: only one propagator was called. Now they are all (both of them so far) called in turn. 2019-10-25 22:30:20 -04:00
John David Pressman
b3993d0db9 Add failing negative operator 2019-10-25 17:24:12 -07:00
John David Pressman
8cfa583d55 Add more string tests to CameLIGO 2019-10-25 16:33:31 -07:00
John David Pressman
ea661247b6 Add bitwise operators to CameLIGO
Right now they're defined as '.bor' and '.band' because of a glitch
in CameLIGO's parser where 'X.Y' leads to a parse error if Y is a
keyword or reserved word in CameLIGO.
2019-10-25 16:12:54 -07:00
Rémi Lesenechal
5a5c3a8dd4 Merge branch 'feature/clean-big-map' into 'dev'
Feature/clean big map

See merge request ligolang/ligo!145
2019-10-25 21:30:09 +00:00
Tom Jack
ef05b47dc6 Typecheck address argument to get_contract 2019-10-25 11:27:55 -05:00
Tom Jack
afbf2ba2db Less stupid way to combine adjacent drops 2019-10-25 00:42:31 -05:00
Tom Jack
7c99affd4b Organize prims by their strangeness 2019-10-25 00:00:39 -05:00
Tom Jack
dae4f58297 Combine adjacent DROP 2019-10-24 23:58:21 -05:00
Tom Jack
9ae39bab97 Fix (latent?) Babylon bug in self_michelson pass 2019-10-24 23:58:15 -05:00
John David Pressman
0eb2b73afa Add CameLIGO test function utilizing multiple subroutines 2019-10-24 15:27:26 -07:00
John David Pressman
99dfd18dea Add explanatory comment to annotation.ligo 2019-10-24 14:44:07 -07:00
John David Pressman
790dc6c370 Merge branch 'test/cameligo-boolean-and' into test/cameligo-test-parity 2019-10-24 09:14:12 -07:00
John David Pressman
0bf37a2e21 Fix boolean tests for CameLIGO 2019-10-24 09:13:31 -07:00
Tom Jack
7958508e14 Merge branch 'feature/some-tests' into 'dev'
More tests and a few operations

See merge request ligolang/ligo!26
2019-10-24 13:03:39 +00:00
Christian Rinderknecht
c0f4aaf0c7 Fixed the regression on case clauses (blocks were removed). 2019-10-24 10:33:22 +02:00
Christian Rinderknecht
4a9150f560 WIP: Fixing a regression (blocks in case clauses as intructions). 2019-10-24 10:33:22 +02:00
John David Pressman
2aa201553c Add test for the if conditional in CameLIGO 2019-10-23 20:29:32 -07:00
John David Pressman
ddc5b8e36d Add failing boolean operator test 2019-10-23 18:29:49 -07:00
John David Pressman
2566ebc7d0 Add arithmetic tests for CameLIGO 2019-10-23 17:53:26 -07:00
Suzanne Dupéron
c4e996d5aa Fixed module issue, thanks Christian 2019-10-23 12:17:18 -04:00
Suzanne Dupéron
535c291b3f blabla 2019-10-23 10:45:48 -04:00
Suzanne Dupéron
10362426aa blabla 2019-10-23 10:41:36 -04:00
Tom Jack
e2ea89cf87 Move tests, remove operators 2019-10-23 09:38:45 -05:00
Christian Rinderknecht
4730df6ea1 Merge branch 'rinderknecht-dev' into 'dev'
Forbidding empty patches (records, maps, sets)

See merge request ligolang/ligo!148
2019-10-23 10:06:26 +00:00
John David Pressman
1f50cc8f57 Remove PascaLIGO set_size 2019-10-22 20:24:05 -07:00
John David Pressman
c4cc4fcba9 Add set size op for CameLIGO and PascaLIGO 2019-10-22 19:28:13 -07:00
Christian Rinderknecht
eae3348d51 I forbade empty patches (parser). Fixed AST pretty-printer (PascaLIGO).
Changed accordingly the simplifier: the dead code for the error about
empty record patches is no long.
2019-10-23 00:35:29 +02:00
Suzanne Dupéron
79967e9067 Hit a module problem in OCaml. 2019-10-22 08:50:21 -04:00
Lesenechal Remi
e6ee915f1e updating tests (we don't need the big_map to be in a pair anymore) 2019-10-22 12:23:48 +02:00
Lesenechal Remi
2a2c708b54 adding Big_map.* operators for cameligo 2019-10-22 12:23:48 +02:00
Lesenechal Remi
cefac0d8e7 add big_map injection 2019-10-22 12:23:48 +02:00
Lesenechal Remi
5d040220c0 WIP: add test 2019-10-22 12:23:48 +02:00
Lesenechal Remi
23993a4488 clean big_map tests 2019-10-22 12:23:48 +02:00
Christian Rinderknecht
9ad0859a4c Merge branch 'feature/pascaligo-remove-case-as-expression' into 'dev'
Feature/pascaligo add conditional as an expression

See merge request ligolang/ligo!144
2019-10-22 08:42:59 +00:00
Christian Rinderknecht
fa30b7d87d Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-22 10:38:32 +02:00
John David Pressman
48515b9f3b Add explanatory comment to string concatenation test 2019-10-21 16:40:40 -07:00
John David Pressman
8f799321d6 Add string concatenation support to CameLIGO 2019-10-21 15:46:26 -07:00
Christian Rinderknecht
312dc65950 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-21 21:42:52 +02:00
John David Pressman
97f2a44a24 Merge branch 'feature/pascaligo-expr-fun' into 'dev'
[LIGO-150] Add blockless functions to PascaLIGO

See merge request ligolang/ligo!143
2019-10-20 08:46:15 +00:00
John David Pressman
09230df60a Remove kwd_expr 2019-10-19 10:55:39 -07:00
John David Pressman
daad15c57d Write blockless function test and make it pass 2019-10-19 10:46:24 -07:00
John David Pressman
ec67d37f20 Gabriel wants to see the code 2019-10-19 09:11:18 -07:00
John David Pressman
6e0173a9a7 Fix type error when where blockfun types eat regions 2019-10-18 17:46:20 -07:00
Lesenechal Remi
6b55bf3630 cleaning 2019-10-18 17:44:10 +02:00
Lesenechal Remi
85fe8d2018 using the proper entry point in the test.. 2019-10-18 17:44:10 +02:00
Lesenechal Remi
080b25a3bd WIP: add test. still have two ECond implementation, none of them pass the test 2019-10-18 17:44:10 +02:00
Christian Rinderknecht
d95f345dbf First attempt at adding conditionals as expressions.
Warning: The simplifier is not done yet.
2019-10-18 17:44:10 +02:00
Lesenechal Remi
bec3419936 cleaning 2019-10-18 14:47:04 +02:00
Lesenechal Remi
71548f8c7c using the proper entry point in the test.. 2019-10-18 14:42:36 +02:00
Lesenechal Remi
b721a19b00 WIP: add test. still have two ECond implementation, none of them pass the test 2019-10-18 14:32:58 +02:00
Christian Rinderknecht
704c744ace First attempt at adding conditionals as expressions.
Warning: The simplifier is not done yet.
2019-10-18 13:52:26 +02:00
Gabriel Alfour
62e6b1d469 Merge branch 'feature/babylon' into 'dev'
upgrade to babylon

See merge request ligolang/ligo!141
2019-10-18 07:56:36 +00:00
John David Pressman
2bffba379d Remove anonymous records 2019-10-17 22:34:38 -07:00
John David Pressman
35a59a0867 Add parser tokens, guru meditation on why the AST types don't work 2019-10-17 21:33:45 -07:00
John David Pressman
8997155a57 Rough draft of single-expr function syntax 2019-10-17 20:50:41 -07:00
Christian Rinderknecht
e53d4035d0 Removed corner case that could not be triggered in PascaLIGO simplifier. 2019-10-17 18:46:40 +02:00
Christian Rinderknecht
36d9858e97 Removed sub-blocks from PascaLIGO. 2019-10-17 18:33:58 +02:00
Lesenechal Remi
b60ce38b68 commenting back 2019-10-17 17:33:43 +02:00
Lesenechal Remi
c9bcfc3ab0 higher order function test, pass two closure one calling the other as function arg 2019-10-17 17:33:29 +02:00
Lesenechal Remi
9f0b61659e we don't need to check for closures in function arguments 2019-10-17 17:18:10 +02:00
galfour
27be6cfcba use apply for closures 2019-10-17 16:34:02 +02:00
galfour
8a4b9695e7 use dig/dug for get/set 2019-10-17 15:48:24 +02:00
galfour
56269231b3 upgrade to babylon 2019-10-17 11:45:27 +02:00
Suzanne Dupéron
81ab0267f5 cleanup 2019-10-16 22:19:32 -04:00
Christian Rinderknecht
00016d09bb I removed the definition of procedures.
Note: This immediately removes some unsupported cases of the
simplifier, pertaining to the definition of procedures.
2019-10-16 15:39:08 +02:00
Christian Rinderknecht
1299ecac6b Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-16 12:00:40 +02:00
Christian Rinderknecht
157e24ff08 Fixed documentation.
There was an error in the syntax of tuple projection (no parentheses
are needed, in fact).

Another issue was a wrong Markdown layout for lists (my fault).
2019-10-16 11:50:31 +02:00
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