Commit Graph

719 Commits

Author SHA1 Message Date
Christian Rinderknecht
00e6959503 Refactoring of the test contracts. 2020-03-02 18:01:56 +01:00
Tom Jack
8229d6a6af Remove (unused) assignment from mini_c 2020-02-28 13:58:29 -06:00
Christian Rinderknecht
a9214f864d Reviewing again the PascaLIGO contracts. 2020-02-27 19:09:14 +01:00
Gabriel Alfour
4d61c2285c Merge branch '151-union-type-option-names-collision-when-matching' into 'dev'
Resolve "Union type option names collision when matching"

Closes #151

See merge request ligolang/ligo!457
2020-02-27 09:24:17 +00:00
Lesenechal Remi
a08adbd085 typer: checks for constructor redundancy 2020-02-26 18:54:16 +01:00
Sander Spies
1522a7d2e4 Update error.messages for PascaLIGO. 2020-02-26 15:07:14 +01:00
Christian Rinderknecht
623e16459f Changed Loop.continue to Loop.resume. 2020-02-26 13:36:50 +01:00
Christian Rinderknecht
31a39bffbc I upgraded the parsers to accept Map.map etc. I rewrote the doc except "reference" to promote and deprecate built-ins. 2020-02-25 18:07:53 +01:00
Christian Rinderknecht
d7dd064095 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@doc 2020-02-25 16:40:23 +01:00
Lesenechal Remi
4c2529b83c allow constructor without parameters 2020-02-25 14:54:08 +01:00
Christian Rinderknecht
f4d688df7b Fixed the tutorial. Enabled underscores in tez amounts. Fixed docs on
Tez and tuples (zero-indexation).
2020-02-21 17:16:53 +01:00
Rémi Lesenechal
040ed8b6ff Merge branch 'feature/subtler-nontail-fail' into 'dev'
Fix non-tail fail avoidance

See merge request ligolang/ligo!438
2020-02-21 13:50:25 +00:00
Tom Jack
01531ac307 Support lowercase in hex bytes 2020-02-20 12:07:01 -06:00
Tom Jack
4c53fa4ae6 Fix non-tail fail avoidance 2020-02-20 09:58:17 -06:00
Suzanne Dupéron
ce4c2ee783 Merge branch 'feature/ast-cleanup-ocaml-tuples' into 'dev'
AST cleanup + replace OCaml tuples with record in ast_typed

See merge request ligolang/ligo!429
2020-02-20 14:57:07 +00:00
Suzanne Dupéron
4f36ff3bcb Replace OCaml tuples with record in ast_typed 2020-02-20 14:21:30 +01:00
John David Pressman
62fe576bc9 Revert "Merge branch 'fix/pascal-tuples-in-doc' into 'dev'"
This reverts merge request !437
2020-02-20 05:25:30 +00:00
Pierre-Emmanuel Wulfman
8d01fcb9f7 Merge branch 'fix/pascal-tuples-in-doc' into 'dev'
Make Tuple in PascaLigo starting at one

See merge request ligolang/ligo!437
2020-02-19 17:15:29 +00:00
Pierre-Emmanuel Wulfman
0b10b7188b Merge branch 'test-contract-religo' into 'dev'
Multisig contract test for Cameligo and ReasonLigo

See merge request ligolang/ligo!421
2020-02-19 17:08:30 +00:00
Pierre-Emmanuel Wulfman
dcb342e031 add primitive to cameligo 2020-02-19 16:40:55 +01:00
Pierre-Emmanuel Wulfman
b8af9a56d9 fix contract with tuples starting at one 2020-02-19 16:15:43 +01:00
Pierre-Emmanuel Wulfman
eee6dbaeb2 make while_loop, for_int and for_collect more similar 2020-02-19 14:41:16 +01:00
Pierre-Emmanuel Wulfman
9de45285b2 remove Var.show 2020-02-18 14:19:11 +01:00
Pierre-Emmanuel Wulfman
c468cb94a1 remove unused code 2020-02-18 14:16:05 +01:00
Lesenechal Remi
fd28da98a0 comparable pairs in the backend 2020-02-18 12:19:19 +01:00
Lesenechal Remi
39fc076c2b fix regression of comparison of key_hash and add a test for it 2020-02-13 16:44:21 +01:00
Suzanne Dupéron
a1880b013b Fix #147 by allowing comparison of bools 2020-02-12 20:22:59 +01:00
John David Pressman
953e91bc54 Remove Current.gas from LIGO 2020-02-12 02:24:58 -08:00
Suzanne Dupéron
437b696b19 Merge branch 'feature/some-new-typer-constant-contraints' into 'dev'
some more contraints (untested) for the typer

See merge request ligolang/ligo!404
2020-02-12 01:12:24 +00:00
Rémi Lesenechal
8b83e375bd Revert "Merge branch 'feature/adt-generator-poly-3' into 'dev'"
This reverts merge request !403
2020-02-11 10:45:08 +00:00
Lesenechal Remi
702416a0a7 fix continuation and add some comments 2020-02-11 11:05:43 +01:00
Suzanne Dupéron
0113a448de Merge branch 'dev' into 'feature/doc-pascaligo-loop'
# Conflicts:
#   src/passes/operators/operators.ml
2020-02-10 20:51:41 +00:00
Suzanne Dupéron
76fa4b0549 Revert "Make menhir less verbose, to see error messages in gitlab."
This reverts commit b5f3ae76b049d4e712bd539b39d771191bc8978b.
2020-02-10 20:40:43 +01:00
Suzanne Dupéron
c71e47f252 Make menhir less verbose, to see error messages in gitlab. 2020-02-10 20:40:43 +01:00
Suzanne Dupéron
76ad9c47ec cleanup 2020-02-10 20:40:43 +01:00
Lesenechal Remi
87a8901645 review fixes 2020-02-10 20:02:43 +01:00
Lesenechal Remi
f798392760 constant typer:
* Removed unused LIST_CONS
* support for misc constants (untestetable for now)
2020-02-10 19:54:23 +01:00
Christian Rinderknecht
9b5d63de1f Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@contracts 2020-02-10 19:33:04 +01:00
Christian Rinderknecht
541728fc6c First batch of rewritten contracts (PascaLIGO). 2020-02-10 19:27:58 +01:00
Christian Rinderknecht
61832354d9 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-10 19:22:52 +01:00
Christian Rinderknecht
82aacde97f More documentation rewrites. 2020-02-10 19:07:20 +01:00
Lesenechal Remi
0e5a68d58b ligo interpreter : review fixes 2020-02-09 19:04:21 +01:00
Lesenechal Remi
3ce0d180f5 ligo interpreter: simplfied AST merge 2020-02-09 18:50:18 +01:00
Lesenechal Remi
ce70c82122 ligo interpreter : moving combinators do a dedicated module 2020-02-09 18:22:33 +01:00
Lesenechal Remi
0374c5900b add missing 'Set.iter' to cameligo 2020-02-09 18:22:33 +01:00
Lesenechal Remi
f08879feb0 ligo interpreter support for :
* operations of map/set
* slice
* add
* literals/pps
2020-02-09 18:22:33 +01:00
Lesenechal Remi
29959ec915 Initial LIGO interpreter version 2020-02-09 18:22:33 +01:00
Pierre-Emmanuel Wulfman
ae82144418 removing assign, tuples, sequences, 2020-02-09 00:31:30 +01:00
Christian Rinderknecht
e6dc4371ee Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-08 10:16:34 +01:00
Lesenechal Remi
5ef61d3520 add assert primitive for pascaligo 2020-02-07 15:28:46 +01:00
Lesenechal Remi
54f4ffd413 Fix assetion with a default string "failed assertion" 2020-02-07 15:27:16 +01:00
Sander
bd4a75016d Merge branch 'add_lsl_lsr' into 'dev'
Add lsl and lsr support.

Closes #146

See merge request ligolang/ligo!387
2020-02-07 11:08:13 +00:00
Rémi Lesenechal
8003a9e2b1 Merge branch 'feature/remove-useless-constants' into 'dev'
Remove useless constants

See merge request ligolang/ligo!388
2020-02-06 21:26:04 +00:00
Suzanne Dupéron
d3a34445f4 Merge branch 'bugfix/new-typer-9' into 'dev'
New typer: constants: use a tuple of arguments, + typechecking rules for constants

See merge request ligolang/ligo!378
2020-02-06 20:56:04 +00:00
Lesenechal Remi
784c2da81b Remove useless constants:
* C_HASH (removed)
* C_MAP_GET --replaced--> C_MAP_FIND_OPT
* C_MAP_GET_FORCE --replaced--> C_MAP_FIND
2020-02-06 18:08:51 +01:00
Sander Spies
e14dd18680 Correction: lsl and lsr are impure 2020-02-06 17:30:50 +01:00
Sander Spies
9433fa9bc4 Add lsl and lsr support. 2020-02-06 16:17:33 +01:00
Christian Rinderknecht
61ec0f41c3 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-05 20:02:06 +01:00
Christian Rinderknecht
26059c281a Forgot to check that function parameters are not reserved names. 2020-02-05 18:09:45 +01:00
Christian Rinderknecht
7a484cb45c Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-05 16:29:37 +01:00
Sander Spies
79fd0317ae Merge 2020-02-04 15:05:13 +01:00
Pierre-Emmanuel Wulfman
cf7bc9374d Merge branch 'feature/get_contract_opt' into 'dev'
add get_contract_opt and get_entrypoint_opt to ligo

See merge request ligolang/ligo!362
2020-02-04 13:36:22 +00:00
Pierre-Emmanuel Wulfman
4195026d73 add get_contract_opt and get_entrypoint_opt to ligo 2020-02-04 13:38:17 +01:00
Sander Spies
795f0d4056 ReasonLIGO: missing ')' error message. 2020-02-04 13:31:41 +01:00
Sander Spies
3461af53dd ReasonLIGO: Make the semicolon optional in more cases. 2020-02-04 12:52:12 +01:00
Sander
fbc61eb809 Optional vbar for ReasonLIGO sumtypes 2020-02-04 10:39:15 +00:00
Suzanne Dupéron
0297b6033b New typer: constants: use a tuple of arguments, + typechecking rules for constants 2020-02-03 20:20:00 +00:00
Suzanne Dupéron
d2630379ec Merge branch 'bugfix/new-typer-8' into 'dev'
misc. fixes on the new typer

See merge request ligolang/ligo!369
2020-02-03 19:48:49 +00:00
Christian Rinderknecht
d92a5499e1 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-03 14:18:06 +01:00
Sander Spies
bbe80bcbfb Merge. 2020-02-03 14:01:01 +01:00
Sander Spies
bf985797fb - Don't allow to chain let bindings like: let a = let b = 2.
- Give a proper warning when creating an incorrect let binding.
2020-02-03 10:53:44 +01:00
Sander Spies
6beccd09a8 Wrong function arguments error message. 2020-02-02 18:08:16 +01:00
Christian Rinderknecht
e6119db35a Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-02-01 15:09:04 +01:00
Sander Spies
6c3879403b Enable incremental parser by default \o/
Fix test.
2020-01-31 17:45:48 +01:00
Sander Spies
ff16af9331 Merge 2020-01-31 16:06:47 +01:00
Sander Spies
c3cb69a0d0 Move error.messages handling to dune. 2020-01-31 16:05:59 +01:00
Christian Rinderknecht
e25bb00961 Forgot to add those fixes to the previous commit. 2020-01-31 14:11:56 +01:00
Christian Rinderknecht
729ecd3f12 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/doc-pascaligo-loop 2020-01-31 13:30:28 +01:00
John David Pressman
c8e0654ffe Add crypto reference page to docs
Change 'black2b' to 'blake2b' in CameLIGO/ReasonLIGO frontend
2020-01-31 03:34:36 -08:00
Christian Rinderknecht
a9b3d295fd Fixes to the lexer and the parser API.
* The parameter for logging the lexer is now mandatory.
  * The ParserAPI now thread the logging of the lexer.
  * LexerMain.ml now call the logging of the lexers (CameLIGO, ReasonLIGO).
  * Fixed bug in lexer when a line comment ends with EOF.
2020-01-31 12:31:25 +01:00
Christian Rinderknecht
fa9372c595 Updated ParErr.ml for ReasonLIGO (may have caused Not_found). 2020-01-31 12:24:25 +01:00
Suzanne Dupéron
0abc4cd206 Started adding typer for constants 2020-01-30 18:50:19 +00:00
Suzanne Dupéron
96468bd8ff Disabled conversion of records & variants to type constructor + argument list in new typer, the current implementation is just wrong. 2020-01-30 18:50:19 +00:00
Sander
6551168a56 ReasonLIGO type declaration improvements for tuples and function arguments.
CameLIGO tests for tuples and function arguments.
2020-01-30 17:38:01 +00:00
Christian Rinderknecht
a6bf16cbe2 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-29 16:49:42 +01:00
Suzanne Dupéron
5ff9803989 Merge remote-tracking branch 'origin/dev' into dev 2020-01-28 22:30:31 +00:00
Suzanne Dupéron
a9a12ae244 Changes requested in MR review 2020-01-28 20:23:11 +00:00
Pierre-Emmanuel Wulfman
f36d6a01de Modify record update, using path for update 2020-01-28 14:12:46 +00:00
Christian Rinderknecht
a29b5acb31 Finished refactoring the front-end. 2020-01-27 17:28:31 +01:00
Christian Rinderknecht
8047e98124 WIP: Refactoring of the front-end. 2020-01-27 16:36:04 +01:00
Christian Rinderknecht
fc3385389b [WIP] Refactoring the front-end. 2020-01-27 16:05:47 +01:00
Christian Rinderknecht
8843a46975 Added missing check for reserved names in CameLIGO.
The calls to the lexer and parser of CameLIGO through the compiler use
now their error messages, like in PascaLIGO.
2020-01-24 15:57:41 +01:00
Christian Rinderknecht
3c9dd93c8b Fixed again priority of "->" vs "*" in type expressions.
Fixed negative tests.
2020-01-24 14:35:15 +01:00
Christian Rinderknecht
47a41971d7 Fixed the parsing of [a * b -> c] as [(a * b) -> c]. 2020-01-24 14:15:07 +01:00
Christian Rinderknecht
e85486eae4 Improved slightly the formatting of some error messages.
Fixed the bug in the parser: I wrongly closed [stdout].
2020-01-24 14:03:25 +01:00
Christian Rinderknecht
41d6956b66 [WIP] Added traces to debug 2020-01-24 12:56:05 +01:00
Christian Rinderknecht
4f4294bf56 Refactoring of the front-end towards integration of the local builds
and the globol build, using the parser error messages, for instance.
2020-01-23 18:28:04 +01:00
Suzanne Dupéron
1592404e03 Merge commit '4977c18e' into bugfix/new-typer 2020-01-23 11:56:02 +01:00
Suzanne Dupéron
ef6f46db5b typer: bugfix: stray leftover attempt to typecheck the old way in the new typer 2020-01-22 15:30:38 +01:00
Suzanne Dupéron
c5190ac91d typer: bugfix: missing case for E_skip 2020-01-22 15:30:29 +01:00
Suzanne Dupéron
d97044b581 typer: bugfix: arrow is now a built-in type constructor 2020-01-22 15:30:18 +01:00
Suzanne Dupéron
0f420eaaf5 typer: bugfix: tuple is now a built-in type constructor 2020-01-22 15:17:10 +01:00
Suzanne Dupéron
77fdb739b6 typer: typecheck expression and subst (used e.g. to typecheck arguments of contracts) 2020-01-22 13:49:32 +01:00
Christian Rinderknecht
d46d95ee90 Fixed CameLIGO parsing of -> vs *
Fixed reserved_name.ligo ("arguments" instead of "args").
2020-01-22 12:33:29 +01:00
Christian Rinderknecht
7437d6ae1a Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-22 11:43:35 +01:00
Sander Spies
da53758d85 Merge 2020-01-21 21:26:52 +01:00
Sander Spies
f104b5e512 Handle parentheses when destructuring. 2020-01-21 21:23:31 +01:00
Lesenechal Remi
8237947c4d monad fix 2020-01-21 19:04:51 +01:00
Christian Rinderknecht
786b183d40 [WIP]
* Reverted [pos.mli] to the previous signature, except [Pos.min]
  that now takes a labelled parameter [file].
* Reverted [ParserAPI.ml] to the previous signature.
* Reexported [shor_error] in [ParserUnit].
* Changed the modules [LexToken] so that they export one function
  to make attributes, the first, additional paramater being "[@"
  or "[@@" (and invalid in PascaLIGO).
* Added support in all [ParserLog] for attributes (pretty-printings).
* Added AST nodes [Attr] and [AttrDecl] to PascaLIGO. The simplifier
  takes care of hooking them with their respective declarations
  or discarding them. (In the future, we should issue a warning for detached
  attributes.)
2020-01-21 18:35:36 +01:00
Sander Spies
483f591f62 Typo 2020-01-21 14:57:13 +01:00
Pierre-Emmanuel Wulfman
5ba2144f0f Merge branch 'new-typer-bugfix1' into 'dev'
Implemented some missing cases of the subst in the new typer.

See merge request ligolang/ligo!334
2020-01-21 13:53:27 +00:00
Lesenechal Remi
57aeb4e931 detect self_address when not at top level 2020-01-21 13:26:38 +01:00
Suzanne Dupéron
93d16b4b6a typer: do multiple substitutions at once (pass a sort of map from free variables to their substitution) 2020-01-21 13:25:04 +01:00
Suzanne Dupéron
614970d2d7 Implemented some missing cases of the subst. First kinda actual typer test passes! 2020-01-20 21:19:37 +01:00
Suzanne Dupéron
688a636251 typer: cleanup 2020-01-20 21:19:37 +01:00
Sander Spies
fbb622cc03 Add support for tuple destructuring in ReasonLIGO 2020-01-20 19:03:00 +01:00
Christian Rinderknecht
8384e3d1f7 [WIP] Refactoring of front-end. 2020-01-20 10:57:07 +01:00
Christian Rinderknecht
673b54e6ae Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-18 11:37:36 +01:00
Sander
88159e15b2 Add inline attribute 2020-01-16 19:36:04 +00:00
Christian Rinderknecht
5972d1d988 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-14 18:37:17 +01:00
Christian Rinderknecht
cb8aaa7b9b Additional refactoring to get local and global builds closer.
I removed the last top-level effect (the execution of cpp).

The idea is that ParserUnit.ml and each ParserMain.ml get closer
to pascaligo.ml, cameligo.ml and reasonligo.ml, respectively.
2020-01-14 18:35:30 +01:00
Christian Rinderknecht
c5b5ffe51a Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-14 12:59:32 +01:00
Christian Rinderknecht
9570caac53 Refactoring to bring local builds of the parsers closer to the global build.
Added --expr to parse expressions.
2020-01-14 01:27:35 +01:00
Suzanne Dupéron
ff9370a422 Improved typer error messages in operators.ml LIGO-371 2020-01-13 23:56:06 +01:00
Lesenechal Remi
7143b82ba8 support for key and signature literals 2020-01-13 11:37:10 +01:00
Pierre-Emmanuel Wulfman
bbfcc9839b Updates for ReasonLIGO 2020-01-10 18:00:23 +01:00
Pierre-Emmanuel Wulfman
98d6aea4e1 mr review 2 2020-01-10 17:28:45 +01:00
Pierre-Emmanuel Wulfman
60edd0cf5b after review 1 2020-01-10 16:41:47 +01:00
Christian Rinderknecht
6bf91538c4 Some refactoring.
I removed AST.mli from CameLIGO (for maintenance's sake).
I removed useless functions.
I renamed unlexer.ml to Unlexer.ml
I added a cleaning rule for my Makefile in Makefile.cfg
2020-01-10 15:32:54 +01:00
Pierre-Emmanuel Wulfman
812834656a Updates for OcamLIGO and PascaLIGO 2020-01-10 13:52:05 +01:00
Tom Jack
5cef850bdd Fix printing of bytes in parsers/lexers 2020-01-09 16:53:07 -06:00
Tom Jack
1b0ed4d4de Fix literal bytes 2020-01-09 16:53:07 -06:00
Lesenechal Remi
20c9de0380 parset negative tests for all syntaxes 2020-01-09 22:19:40 +01:00
Lesenechal Remi
47199ca13c add negative tests rules 2020-01-09 22:19:40 +01:00
Christian Rinderknecht
19e2ffb750 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 19:49:57 +01:00
Christian Rinderknecht
dad9b0f816 Refactoring of the AST and simplfier of PascaLIGO.
Some weeks ago, anonymous functions as expressions were added to
PascaLIGO, unfortunately in a manner that allowed in theory for
contexts in which a named function was found when an anonymous was
expected, and vice-versa. That explains that the simplifier had two new possible errors:

   * unexpected_anonymous_function
     ("you provided a function declaration without name")
   * unexpected_named_function

I changed the AST and the parser so that function expressions
correspond to anonymous functions (without block) and function
declarations correspond to named functions.

I also removed a error in the simplifier, which was unused:

   * bad_bytes
     ("you provided a function expression with a name (remove it)")
2020-01-09 17:26:07 +01:00
Tom Jack
10eebf69bd Support always-failing conditionals 2020-01-09 09:47:54 -06:00
Christian Rinderknecht
c347d1b08b Removed temporary Emacs file. 2020-01-09 15:55:58 +01:00
Christian Rinderknecht
9426222d86 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 14:27:17 +01:00
Christian Rinderknecht
d123abd46f Added new error for duplicated record fields.
Removed interface for the AST (for maintenance sake).
2020-01-09 14:26:47 +01:00
Sander Spies
8904ededb7 Improve error handling of negative start positions. 2020-01-09 10:41:24 +00:00
Christian Rinderknecht
330d2ab351 Forgot to commit this. 2020-01-08 23:47:37 +01:00
Christian Rinderknecht
b8017ca8ac Moved stuff to module [SyntaxError] from [AST] and [Parser].
Added support for the rejection of non-linear patterns in PascaLIGO.
2020-01-08 23:35:09 +01:00
John David Pressman
71989876db Fix a bug, test added:
A never accounted message was not adding anything to the map
2020-01-08 20:58:26 +00:00
Suzanne Dupéron
13ff600509 union-find: rename partition to UnionFind for more consistency across the various names that opam and dune assign to this library 2020-01-08 18:12:00 +00:00
Suzanne Dupéron
dd9a4dfb47 update union-find library (part 2: adjust module names) 2020-01-08 18:12:00 +00:00
Christian Rinderknecht
8bdc103ec8 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-08 16:46:59 +01:00
Christian Rinderknecht
9e7c97637c Added support for language-specific parse errors for PascaLIGO:
* Duplicate variants in the same type declaration
   * Duplicate parameter in the same function declaration
   * Shadowing of predefined value in a declaration

I fixed the architecture for that support: ParserMain.ml is now where
those specific errors are handled, and they are produced by the
semantic actions of the parsers.
2020-01-08 16:39:52 +01:00
Lesenechal Remi
05afd6c8c7 improve simplifier self pass errors 2020-01-07 18:32:32 +00:00
Sander Spies
8f57f63be7 Show proper parser error messages in the terminal again. 2020-01-07 12:15:54 +00:00
Tom Jack
6716af9123 Eliminate some spurious synonyms of "location" 2020-01-07 00:34:41 +00:00
Lesenechal Remi
d885eb8d4a check key_hash format 2020-01-06 22:52:30 +01:00
Lesenechal Remi
55a8734c81 key_hash now comparable 2020-01-06 21:31:54 +01:00
Lesenechal Remi
6841609362 allow key_hash literals 2020-01-06 21:31:45 +01:00
Sander Spies
301defda3f Show lexer error messages in CameLIGO + PascaLIGO. 2020-01-06 13:46:11 +01:00
Christian Rinderknecht
ddd438aaa8 Forgot to add. 2020-01-06 10:03:41 +00:00
Christian Rinderknecht
a6e4837aa0 Sharing standalone lexers and parsers, and parser error API. 2020-01-06 10:03:41 +00:00
Lesenechal Remi
f133729318 fix dune file warnings 2020-01-05 14:32:15 +01:00
Christian Rinderknecht
e23350071f Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-04 17:47:20 +01:00
John David Pressman
10b26f610f Show lexer error messages in ReasonLIGO 2020-01-04 08:24:16 +00:00
Lesenechal Remi
c805a27b99 adding timestamp literals as string or int 2020-01-03 18:11:27 +01:00
Christian Rinderknecht
1806d6d74c Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-03 16:58:37 +01:00
Lesenechal Remi
a3a09dc0e5 functionize the name in the error 2020-01-03 16:23:18 +01:00
Lesenechal Remi
4d56a71bd1 propagate location for cameligo variables 2020-01-03 16:23:18 +01:00
Lesenechal Remi
3288696784 add the name of the variable in the unbound variable error message title 2020-01-03 16:23:18 +01:00
Sander
ce6ccab728 Add support for empty constructors. 2020-01-03 13:01:13 +00:00
Lesenechal Remi
2d7c3eb216 support bytes_unpack operator in pascaligo + tests 2020-01-02 16:19:21 +01:00
Christian Rinderknecht
c18e6e9748 Handling of EOF in ParserAPI messages. 2020-01-02 15:44:21 +01:00
Lesenechal Remi
46027de719 Proper error with location 2020-01-02 15:21:56 +01:00
Lesenechal Remi
42cbabac69 check ast_simplified address literals to be well formatted 2020-01-02 15:20:48 +01:00
Lesenechal Remi
bddad3f234 add missing GE operator (>=) to cameligo 2019-12-31 14:23:51 +01:00
Lesenechal Remi
61d095ea28 also preprocess the executable 2019-12-31 14:23:51 +01:00
Lesenechal Remi
6f804a4432 exclude parser debug tooling 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c8339ed2ef first try 2019-12-31 14:23:51 +01:00
John David Pressman
dcfc8d6391 Horrible hack to rewrite CST for tuple param destruct,
Fails because Let In doesn't support multi-bind
2019-12-29 01:24:22 +00:00
Christian Rinderknecht
ea7460f8c9 Miscellaneous. 2019-12-28 17:58:15 +01:00
Christian Rinderknecht
c92e3b28ad Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-28 17:58:09 +01:00
John David Pressman
3d9489530a Merge branch 'dev' into feature/cameligo-multi-bind-let-in 2019-12-27 09:29:30 -08:00
John David Pressman
e1ecb36e61 Have let ... in evaluate right hand side first during multi-bind 2019-12-26 21:06:24 -08:00
Christian Rinderknecht
6814e7786a Same error formatting for the incremental and monolithic API of Menhir. 2019-12-26 18:57:02 +01:00
Christian Rinderknecht
379311a748 Shortened the parser's API.
Unfortunately, even thought all the front-ends use the same
ParserAPI.ml, that file cannot be moved to the folder `shared` due to
a dependency on AST.ml produced by Menhir.
2019-12-26 18:17:57 +01:00
Christian Rinderknecht
548b1267a4 Added .gitignore for all syntaxes. 2019-12-26 14:13:19 +01:00
Christian Rinderknecht
07a70b4648 Added unlexing to ReasonLIGO. 2019-12-26 13:31:54 +01:00
Christian Rinderknecht
ea4eb76013 I added support for unlexing to CameLIGO. Fixed cover.sh. 2019-12-26 13:23:32 +01:00
John David Pressman
2d9de2aef0 Clean up let ... in multi-bind 2019-12-24 15:35:05 -08:00
John David Pressman
48a3bebadd Working rough draft of let ... in multi-bind 2019-12-24 14:54:22 -08:00
Christian Rinderknecht
7c1d637226 Fixing the constant constructors in CameLIGO's simplifier. 2019-12-24 18:56:21 +01:00
Christian Rinderknecht
e99c9b32de Fixed the [dune] file for building [pascaligo/Unlexer.exe]. 2019-12-24 17:35:43 +01:00
Christian Rinderknecht
dadf1fbe41 Fixed the stratification of "++". 2019-12-24 17:01:39 +01:00
Christian Rinderknecht
7b9b6866b2 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-24 14:26:32 +01:00
Christian Rinderknecht
ce857fbe40 Fixed the [dune] files to build ParserMain.exe 2019-12-24 14:25:40 +01:00
Lesenechal Remi
bdd1d09c04 t_operator can not throw exceptions 2019-12-24 12:43:32 +01:00
Christian Rinderknecht
b0e92a58bf Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-24 11:59:34 +01:00
Sander Spies
29c96fb021 Fix 'dune build ParserMain.exe'. 2019-12-24 08:08:50 +01:00
Christian Rinderknecht
e6a9bf6510 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-23 21:46:21 +01:00
Christian Rinderknecht
24f067b69e Added nat and bytes to ReasonLIGO and CameLIGO (expressions).
Use the correct ParserAPI for ReasonLIGO now.
2019-12-23 20:37:48 +01:00
John David Pressman
1bf04574c1 Merge branch 'dev' into feature/set-delegate 2019-12-20 08:37:01 -08:00
Christian Rinderknecht
705b425589 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-20 16:46:33 +01:00
Christian Rinderknecht
072dea757c [WIP] Adding the infrastructure for supporting the incremental API of Menhir.
* I added CLI option "--mono" to select the monolithic API of Menhir.
  * I added a field "win" to the state of the lexer (a two-token
    window for error reporting).
  * I escaped LIGO strings before making them OCaml strings (for
    example for printing).
2019-12-20 16:44:03 +01:00
Lesenechal Remi
638b45611d fix message of redundant_match_case error 2019-12-20 12:17:47 +00:00
Suzanne Dupéron
f7616b7b49 Small improvements to negative typer tests 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
a835bc9286 Added "did you mean" feature for unbound type names 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
e919a1eba3 Fixes unsoundness in old typer (expected type for the expression as a whole was not checked for ascriptions) 2019-12-19 17:27:17 +00:00
Sander
600ae2d4f6 Move to Trace.error instead of simple_error. 2019-12-19 13:50:57 +00:00
Christian Rinderknecht
3add77eba5 Adding the build of the unlexer by dune. 2019-12-18 22:17:49 +00:00
Christian Rinderknecht
d47ec7cf7c Fixed a tag file (local build of PascaLIGO with my Makefile). 2019-12-18 22:17:49 +00:00
Tom Jack
172038cef0 Kill warning 45 by reusing Pervasives.result for Trace 2019-12-18 21:20:35 +00:00
Christian Rinderknecht
c46bf008c8 Adding the build of the unlexer by dune. 2019-12-18 21:32:12 +01:00
Christian Rinderknecht
64f04b8c40 Fixed a tag file (local build of PascaLIGO with my Makefile). 2019-12-18 16:53:32 +01:00
Christian Rinderknecht
97a6d7162f Regression. 2019-12-18 15:50:42 +01:00
Christian Rinderknecht
c7bd986772 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-18 14:22:57 +01:00
Sander Spies
7518005532 Merge branch 'dev' of https://gitlab.com/ligolang/ligo into reasonligo-improvemtns 2019-12-18 09:59:19 +01:00
John David Pressman
310dde6dc9 [LIGO-286] Tuple destructuring doesn't do left hand type inference in CameLIGO 2019-12-17 21:04:53 +00:00
John David Pressman
7067644b1d Merge branch 'dev' into feature/set-delegate 2019-12-17 12:17:02 -08:00
John David Pressman
a4b1c9951d Add ReasonLIGO and CameLIGO tests for SET_DELEGATE 2019-12-17 09:50:47 -08:00
John David Pressman
fdeb95288d Passing SET_DELEGATE test for PascaLIGO 2019-12-17 09:34:05 -08:00
Christian Rinderknecht
078dd06132 Merge branch 'rinderknecht-dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-17 17:07:10 +01:00
Christian Rinderknecht
7ae8d9340b Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-17 17:04:59 +01:00
Christian Rinderknecht
8210a4e186 Added basic support for Menhir's incremental API.
I added the token Bytes to ReasonLIGO's [LexToken.mll] for the build.
2019-12-17 17:03:43 +01:00
Christian Rinderknecht
757b0da78c Removed the open type [Error.t] (less [assert false]).
I also had to remove the keywords [Down], [Fail] and [Step] in
PascaLIGO that made a mysterious and unwanted come back. (I did not
bother with [git blame]).
2019-12-17 15:58:27 +00:00
Christian Rinderknecht
531dd238a7 Added unlexer for PascaLIGO. 2019-12-17 15:58:27 +00:00
Christian Rinderknecht
35d4b64a02 Removed the open type [Error.t] (less [assert false]).
I also had to remove the keywords [Down], [Fail] and [Step] in
PascaLIGO that made a mysterious and unwanted come back. (I did not
bother with [git blame]).
2019-12-17 14:56:16 +01:00
Sander Spies
ebba74e7a7 Merge branch 'dev' of https://gitlab.com/ligolang/ligo into reasonligo-improvemtns 2019-12-17 14:34:58 +01:00
Lesenechal Remi
ffb225e269 fix address arity and update test 2019-12-17 11:10:29 +01:00
John David Pressman
20285f2b9e Add broken set_delegate test to LIGO, get to typer error 2019-12-16 16:26:39 -08:00
John David Pressman
fb8fae05d7 Fix IMPLICIT_ACCOUNT, again and this time add regression expect test 2019-12-16 12:10:31 -08:00
Sander Spies
52eff4e764 Incorrect function arguments message for ReasonLIGO. 2019-12-16 18:04:15 +01:00
Christian Rinderknecht
257ef4f5d2 Added unlexer for PascaLIGO. 2019-12-16 17:37:46 +01:00
Sander Spies
09875cf1da Make type_expr_simple less complicated. 2019-12-16 14:54:12 +01:00
Christian Rinderknecht
a94ee53fd3 Finished the refactoring of the parsers. 2019-12-15 20:59:04 +01:00
Christian Rinderknecht
f8d6396fcd Refactoring of the parsers
* [CameLIGO/ReasonLIGO] The AST node [EAnnot] (expressions
    annotated by a type) now records the region in the source
    code for the colon.

  * [CameLIGO/ReasonLIGO/PascaLIGO] I added the syntax
     %token <...> TOKEN "lexeme"

  * [ReasonLIGO] I changed the AST nodes [Mtz] and [Str] to
    [Mutez] and [String], respectively (in accordance with the
    PascaLIGO front-end). I changed token [DOTDOTDOT] to
    [ELLIPSIS].

  * [ReasonLIGO] I added what was missing to make a loca build
    with my Makefile.
2019-12-15 17:46:08 +01:00
Christian Rinderknecht
6692643cc5 Streamlined LexerMain and ParserMain for ReasonLIGO. 2019-12-13 17:28:15 +01:00
Christian Rinderknecht
e685e313f0 Fixed the build after I made a small error when fixing the latest
merge conflict.
2019-12-13 12:30:59 +01:00
Christian Rinderknecht
c7ffa6d563 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-13 12:28:33 +01:00
Christian Rinderknecht
0226b9f23c Refactoring of comments (for [dune build @doc]).
Refactoring of parsing command-line arguments

  * The type [options] is now abstract and implemented as an
    object type to avoid struggling with scoping and type
    inference when record types share some common field names.

Refactoring of ParserLog for PascaLIGO and CameLIGO

  * The immediate motivation behind that refactoring was to
    remove the use of a couple of global references. A
    consequence is that we have a nicer and more compact code, by
    threading a state. The files [pascaligo/Tests/pp.ligo] and
    [ligodity/Tests/pp.mligo].

  * Another consequence is that the choice of making strings from
    AST nodes depends on the CLI (offsets? mode?). After this
    refactoring, that choice is hardcoded in the simplifiers in a
    few places (TODO), waiting for a general solution that would
    have all CL options flow through the compiler.

  * I removed the use of vendors [x_option.ml], [x_map.ml] and
    [x_list.ml] when handling optional values. (Less dependencies
    this way.)

Refactoring of the ASTs

  * I removed the node [local_decl], which was set to [[]]
    already in a previous commit (which removed local
    declarations as being redundant, as statements could already
    be instructions or declarations).

  * I changed [StrLit] to [String] in the AST of CameLIGO and
    ReasonLIGO.

  * I also changed the type [fun_expr] so now either a block is
    present, and therefore followed by the [with] keyword, or it
    is not. (Before, the presence of a block was not enforced in
    the type with the presence of the keyword.)

Notes

  * [LexerMain.ml] and [ParserMain.ml] for CameLIGO and PascaLIGO
    are almost identical and differ in the same way (language
    name and file extension), which suggests that they should be
    in the [shared] folder and instanciated as a functor in the
    future (TODO).

  * I removed the blank characters at the end of many lines in
    the parser of ReasonLIGO.
2019-12-13 12:21:52 +01:00
Sander Spies
6f9134834f Remove original Cameligo and rename Ligodity to Cameligo. 2019-12-12 14:35:07 +01:00
Lesenechal Remi
df0dfb029b better error message when a contract in invalid 2019-12-11 20:02:54 +01:00
Lesenechal Remi
85cffdfc52 remove comented function 2019-12-10 15:58:53 +01:00
Lesenechal Remi
26f26171e6 Tests clean 2019-12-10 15:58:53 +01:00
Lesenechal Remi
0cae4302cd WIP: introduce compiled_expression and unify dry-run and compile-contract 2019-12-10 15:58:53 +01:00
Lesenechal Remi
8edeb27321 add a function to fetch (param,storage) in a contract's lambda 2019-12-10 15:58:53 +01:00
Sander
95a7e19be6 Add ReasonLIGO support 2019-12-10 13:47:31 +00:00
Christian Rinderknecht
04a770e22d To enable local builds of the PascaLIGO parser. 2019-12-09 15:52:17 +00:00
John David Pressman
f043135df1 Add Michelson map membership to CameLIGO and PascaLIGO 2019-12-06 09:35:08 -08:00
Pierre-Emmanuel Wulfman
034c92a64c Use ADT for types and move type to ast_common
and Making name, type_variable, built-in, constructor, label and string uncompatible types in ligo (weird bug with types in ligodity)
2019-12-04 11:40:58 +00:00
John David Pressman
085a756ed3 Fix bug where tuples are destructured with the members in the wrong order 2019-12-03 10:49:58 -08:00
John David Pressman
8609196bac Fix IMPLICIT_ACCOUNT 2019-12-03 00:00:01 -08:00
John David Pressman
0b3e057819 Add self address to CameLIGO and PascaLIGO 2019-12-01 21:56:49 +00:00
John David Pressman
03dd86c9ad Expose address operator in PascaLIGO and CameLIGO 2019-12-01 21:56:49 +00:00
John David Pressman
694c3aea97 Add implicit_account to operators 2019-12-01 21:56:49 +00:00