Commit Graph

911 Commits

Author SHA1 Message Date
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
Sander Spies
95205609f8 Merge. 2020-01-21 14:14:23 +01:00
Lesenechal Remi
a2c51ddbcf better description for bad_contract error message 2020-01-21 13:26:38 +01:00
Lesenechal Remi
f1977b12aa self in lambda negative test 2020-01-21 13:26:38 +01: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
Sander
3223f9cfe1 Add sub commands to print different stages. 2020-01-21 12:24:51 +00:00
John David Pressman
c811f0058e Change 'touples' to 'tuples' in docs 2020-01-21 03:13:57 -08:00
John David Pressman
dd44c0d621 Add self_address docs, fix warning for PACK and UNPACK 2020-01-21 02:45:38 -08:00
John David Pressman
44dd39dcb2 Fix examples on front page of ligolang.org, add reminder to change in future 2020-01-20 19:42:22 -08: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
e959ef4f6f Forgot to add test file. 2020-01-20 19:04:02 +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
Lesenechal Remi
a30d59121f review request (more regular output) 2020-01-17 17:02:54 +01:00
Lesenechal Remi
3081ec477b add test & promote 2020-01-17 16:35:53 +01:00
Lesenechal Remi
600ee51940 running contract or function does not fail on failwiths 2020-01-17 16:35:40 +01:00
Lesenechal Remi
0ad8bde6d1 add missing newlines 2020-01-17 16:29:23 +01:00
John David Pressman
d6000be369 Add ReasonLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:57:07 -08:00
John David Pressman
eea8e30e87 Add CameLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:53:22 -08:00
John David Pressman
eb4336b0e7 Add PascaLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:50:06 -08:00
John David Pressman
4835ac4d10 Split e_bytes into e_bytes_hex, e_bytes_raw and e_bytes_string 2020-01-16 22:46:28 -08:00
John David Pressman
411c17eb99 Add ReasonLIGO version of key_hash test 2020-01-16 21:45:40 -08:00
John David Pressman
4fcfa3df8f Add CameLIGO key_hash test 2020-01-16 21:37:29 -08:00
John David Pressman
4ee3a29a34 Enable CameLIGO bytes_unpack test and add one for ReasonLIGO 2020-01-16 20:59:26 -08:00
John David Pressman
ca1caf2e61 Add bytes_unpack test for CameLIGO 2020-01-16 20:27:50 -08: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
Christian Rinderknecht
8a683e1a69 Merge branch 'feature/literal-bytes-again' into 'dev'
Fix literal bytes

See merge request ligolang/ligo!325
2020-01-10 10:35:04 +00:00
Suzanne Dupéron
e7589f1a6a Merge branch 'feature/auto-generate-folds' into 'dev'
Automatic generation of the boilerplate for folds

See merge request ligolang/ligo!303
2020-01-10 00:24:55 +00:00
Suzanne Dupéron
4ee75afb0a fix test: add helper blurb 2020-01-09 23:13:14 +00:00
Suzanne Dupéron
1863cf324b Improve error messages in ast_typed/combinators.ml 2020-01-09 23:13:14 +00: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
0791866a63 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 20:59:22 +01:00
Christian Rinderknecht
19e2ffb750 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 19:49:57 +01:00
Suzanne Dupéron
801efeed46 tests for automatic fold generator + fold_config hook to update the state before a node has been transformed, without transforming it. 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
fe5f8d9f64 fold_config hook to update the state after a node has been transformed, without transforming it. 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
8b98898dbf first executable version of the auto-generation of folds 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
3605768bb0 Started auto-generation of folds on ADTs (part of the code is generated, not all) 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
8e18c1f8bd update tests with the helper blurb 2020-01-09 18:59:10 +01:00
Suzanne Dupéron
75e6344972 Move the last two negative tests to a subdirectory, actually check that they fail in the expected way 2020-01-09 17:19:00 +00: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
Lesenechal Remi
af5c32cb98 checking .md file arguments 2020-01-09 10:33:44 +01: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
Suzanne Dupéron
5e444dd278 update union-find library (part 1: remove old copy, download https://github.com/rinderknecht/UnionFind.git 3fc434d0d75e40d40d17f5abb70d86a51f434771 in new folder) 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
John David Pressman
16ac289381 [LIGO-347] Add changelog 2020-01-08 10:54:21 +00:00
Sander
8dd936ab90 Test lexer error messages. 2020-01-07 20:35:04 +00: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
Tom Jack
e73c901135 Show 'deepest' location for errors 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
2667ed62b3 fix indent (unrelated) 2020-01-06 22:29:07 +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
Lesenechal Remi
a0a8f114c0 replaces remove_from by take which does not raise any exceptions 2020-01-06 19:24:41 +01:00
Lesenechal Remi
8ce4772ae4 add tests 2020-01-06 18:51:43 +01:00
Lesenechal Remi
7e05b7d276 now removes the entry-point declaration from the program before aggregation 2020-01-06 18:41:53 +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
Lesenechal Remi
b1dd35b56d fix definition of predecessor_timestamp 2020-01-05 14:29:22 +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
0a676d72a5 add --predecessor-timestamp to compile-storage/parameter 2020-01-03 18:11:44 +01:00
Lesenechal Remi
1a2a29bc03 negative timestamp literal test 2020-01-03 18:11:37 +01: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
Lesenechal Remi
72f4ed35f1 print ill-typed michelson code 2020-01-03 15:25:37 +01:00
John David Pressman
5108b820cf Fix minor typos in wrong michelson contract parameter/storage msgs 2020-01-03 15:25:37 +01:00
Lesenechal Remi
e834e2ac20 More informative errors when calling michelson typecheck function 2020-01-03 15:25:37 +01:00
Sander
ce6ccab728 Add support for empty constructors. 2020-01-03 13:01:13 +00:00
Lesenechal Remi
e25c5bac35 adding loops.md to the list of tested file and fixed "loops.md" 2020-01-02 20:38:45 +01:00
John David Pressman
7c4f59035f Add inclusion directive docs and inclusion tests for CameLIGO and ReasonLIGO 2020-01-02 16:11:03 +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
8584bacf83 test & dune promote 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
98ac18ccef propagate failwith strings (also support for others) in the error 2020-01-02 12:50:45 +01:00
Lesenechal Remi
d0ea94b472 'dune runtest' also execute 'md files tests' 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c171ce7ad9 fully tested md_files 2019-12-31 14:23:51 +01:00
Lesenechal Remi
bddad3f234 add missing GE operator (>=) to cameligo 2019-12-31 14:23:51 +01:00
Lesenechal Remi
afa61e5825 Now have an default group "ungrouped" for all the code blocks without any "group=..." 2019-12-31 14:23:51 +01:00
Lesenechal Remi
08471ba246 basic architecture for the doc tests 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c873350b15 no ppx in expect_tests lib 2019-12-31 14:23:51 +01:00
Lesenechal Remi
acee34985b remove ppx in tests 2019-12-31 14:23:51 +01:00
Lesenechal Remi
6c7440ea79 inline magic 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
e8d1e359f4 exclude PPs from coverage 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
John David Pressman
7454e8b01f Add let-in multi bind test 2019-12-24 13:48:14 -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