Commit Graph

530 Commits

Author SHA1 Message Date
Lesenechal Remi
f27f8c10d1 For collection loop: also capture variable in logical blocks
Also, the iterated element/s are appended tot he list of local declaration
2019-11-21 11:28:32 +01:00
Pierre-Emmanuel Wulfman
cdb36167f9 remove rope 2019-11-20 17:27:32 +01:00
John David Pressman
eb85595818 Add is_nat operator to CameLIGO 2019-11-20 12:48:55 +00:00
John David Pressman
598fbf96ed Add is_nat operator to PascaLIGO 2019-11-20 12:48:55 +00:00
John David Pressman
4270cc0d22 [LIGO-229] Change ordering of collection operation args 2019-11-20 12:16:31 +00:00
Tom Jack
e9319b518c Merge branch 'fix-dev' into 'dev'
Fix semantic merge conflict in test and parser

See merge request ligolang/ligo!205
2019-11-20 00:07:21 +00:00
Tom Jack
1a3909affd Fix semantic merge conflict in test and parser 2019-11-19 17:19:26 -06:00
Rémi Lesenechal
5aada38d5d Merge branch 'feature/tests-catch-failwith-and-pack' into 'dev'
Test framework catch failwith and pack

See merge request ligolang/ligo!203
2019-11-19 23:18:07 +00:00
Lesenechal Remi
725176a59d allow to pack message (aka lambda of type unit -> operation list) 2019-11-19 23:27:43 +01:00
Tom Jack
863dfbb39d Merge branch 'feature/get-entrypoint' into 'dev'
Add `get_entrypoint`...

See merge request ligolang/ligo!184
2019-11-19 22:27:12 +00:00
John David Pressman
9b0eb636fb Properly typed multi-variable binding simplification
Thanks for the help Sanders. :)
2019-11-19 21:13:52 +00:00
Lesenechal Remi
f7d6a5ea58 allow to catch failwith's in our tests 2019-11-19 15:38:23 +01:00
Rémi Lesenechal
f0655eab28 Pascaligo for collection loops: take locally declared variable into account 2019-11-19 13:25:48 +00:00
John David Pressman
bbcacc253b Merge branch 'feature/pascaligo-anon-functions' into 'dev'
Feature/pascaligo anon functions

See merge request ligolang/ligo!201
2019-11-19 08:33:54 +00:00
John David Pressman
e1a05a27c5 Remove vestigial commented-out code 2019-11-18 23:45:26 -08:00
Matej Sima
5ba34b3ac3 Updated docs with blockless & anonymous functions, added variable mutation disclaimer, updated landing page pascaligo example. 2019-11-19 01:44:36 +01:00
galfour
63822e0430 test anon function 2019-11-18 18:44:15 +01:00
Tom Jack
723201ce5e Add get_entrypoint... 2019-11-18 09:28:20 -06:00
galfour
ddc4b7b7a5 add anon functions; remove pre-block declarations; update tests 2019-11-18 16:10:48 +01:00
Lesenechal Remi
91e245ef70 Fix issue with nested collection loop where inner loop iterated elements were shadowing outer loop iterated element 2019-11-18 14:14:54 +01:00
galfour
5422049dba Merge branch 'dev' into feature/more-applications-pascaligo 2019-11-18 09:53:57 +01:00
Lesenechal Remi
e689d3d3b7 more doc 2019-11-15 20:05:35 +01:00
Lesenechal Remi
683bc0a72b fix problems with nested for collection loop 2019-11-15 20:05:35 +01:00
Tom Jack
a73ede31e7 Work around upstream in-place update 2019-11-15 10:02:22 -06:00
galfour
d0efbd9f92 add and test more ways to do function application in pascaligo 2019-11-14 20:13:15 +01:00
Tom Jack
5b60109606 Improve purity test for dead code elimination 2019-11-13 14:05:22 -06:00
John David Pressman
3675aed76d Merge branch 'dev' of ssh://gitlab.com/ligolang/ligo into feature/pascaligo-balance 2019-11-12 17:16:07 -08:00
Pierre-Emmanuel Wulfman
29a86ad411 Fix: deep access 2019-11-12 17:07:09 +00:00
John David Pressman
273ec8c280 Add ability to access balance to PascaLIGO 2019-11-12 08:01:18 -08:00
Pierre-Emmanuel Wulfman
f91de985d0 remove 'Access_Map' 2019-11-12 14:28:58 +00:00
Rémi Lesenechal
73919e3a5c Merge branch 'rinderknecht-dev' into 'dev'
Removing the type annotation for variables iterating over collections.

See merge request ligolang/ligo!178
2019-11-07 11:23:31 +00:00
Christian Rinderknecht
02f58ee212 I removed the annotation for the variable that iterates over collections.
for x in set s block { ... } // now
for x : t in set s block { ... } // before
2019-11-06 20:12:25 +01:00
John David Pressman
7c291158c2 Finish balance operator and add test for CameLIGO 2019-11-06 11:08:18 -08:00
Christian Rinderknecht
759978393a Merge branch 'rinderknecht-dev' into 'dev'
Refactoring of PascaLIGO's front-end

See merge request ligolang/ligo!176
2019-11-06 17:17:02 +00:00
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