99 Commits

Author SHA1 Message Date
Christian Rinderknecht
a6972bf28b Putting back .links. 2020-06-04 14:59:15 +02:00
Christian Rinderknecht
8606528ddb More pretty-printing. 2020-06-04 14:55:40 +02:00
Christian Rinderknecht
3bec051115 Added back test LIGO input. 2020-06-04 13:32:35 +02:00
Christian Rinderknecht
c67fc4aa34 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint 2020-06-04 13:26:29 +02:00
Christian Rinderknecht
adee60c444 Improved example for testing the pretty-printer. 2020-06-04 13:26:03 +02:00
Pierre-Emmanuel Wulfman
8f529a059a reorder folder 2020-06-03 14:47:36 +02:00
Christian Rinderknecht
2d74681c96 Added more to the PascaLIGO pretty-printer.
Improved the AST of PascaLIGO to better capture the struture.
2020-05-30 20:24:47 +02:00
Christian Rinderknecht
d4801d942a Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint 2020-05-26 14:53:41 +02:00
Suzanne Dupéron
92069077df Auto-generated comparator for AST_typed 2020-05-25 20:42:16 +01:00
Christian Rinderknecht
320e31cb41 * [ligo pretty-print foo.mligo] works.
* [ligo pretty-print foo.religo] is a transpiler (for now) and needs
    more work.

  * Renamed functions *_ast into *_cst. One day, module AST should be
    renamed CST for clarity and consistency.
2020-05-25 20:29:48 +02:00
Christian Rinderknecht
2d88d2145e Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint 2020-05-25 15:15:27 +02:00
Christian Rinderknecht
7992a4e507 Added cased to test the pretty-printer. 2020-05-25 12:42:19 +02:00
Christian Rinderknecht
6a3dab69a2 Exported pretty-printing function for CameLIGO and ReasonLIGO (transpiler). 2020-05-25 12:37:30 +02:00
Christian Rinderknecht
36cecfb019 * Renamed AST.TStringLiteral into AST.TString
* Fixed parsing of "begin let x = e1 in e2; e3 end"
2020-05-20 16:36:44 +00:00
Pierre-Emmanuel Wulfman
6c8b76b3de add verbatim in lexer and parser 2020-05-18 13:28:31 +02:00
Christian Rinderknecht
937bc99738 Finished second version based on test contracts. 2020-05-15 16:32:30 +02:00
Christian Rinderknecht
f3ed135926 More fixes to the pretty-printer. 2020-05-15 00:44:15 +02:00
Christian Rinderknecht
ec0a0dbd01 More pretty-printing. 2020-05-14 21:09:14 +02:00
Christian Rinderknecht
85aa1a21d1 Some expressions remain to be pretty-printed.
Fixed a bug in the semantic action of the parser for record updates.
2020-05-13 21:01:27 +02:00
Christian Rinderknecht
8c0275b42c Tuples of types are pretty-printed now. 2020-05-12 19:25:02 +02:00
Christian Rinderknecht
546856e14a Fixed ParserLog. First complete version of the pretty-printer. 2020-05-08 19:01:51 +02:00
Christian Rinderknecht
f1c444da22 A bit more nodes added. 2020-05-07 20:26:47 +02:00
Christian Rinderknecht
a1c5b471fe More cases added. 2020-05-07 11:11:16 +02:00
Christian Rinderknecht
66aea1b8d1 Added more cases. 2020-05-04 12:34:42 +02:00
Christian Rinderknecht
0aa69ed35b Fixed last commit (renaming of TStringLiteral, adding --pretty) 2020-05-03 10:40:11 +02:00
Christian Rinderknecht
f4b9261104 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht@pprint 2020-05-01 20:34:34 +02:00
Christian Rinderknecht
2667c10990 * Renamed [TStringLiteral] as [TString].
* LexToken.mll for CameLIGO: Fixed printing of "Str"
    into "String".
  * Added CLI option --pretty to call the pretty-printer from
    ParserMain.
  * Use the package Terminal_size to try to determine the width
    of the terminal where the source is pretty-printed.
2020-05-01 20:32:48 +02:00
Christian Rinderknecht
82b3d634c1 Merge branch 'parser-promote-generated-error-files' into 'dev'
Promote generated error files by dune.

See merge request ligolang/ligo!427
2020-04-30 09:48:23 +00:00
Christian Rinderknecht
005b7fd69b Finished refactoring of lexer. 2020-04-28 19:26:31 +02:00
Christian Rinderknecht
f3777b4af8 The preprocessor library depends now on the kinds of comments
instead of a closed set of languages. I also removed the offsets:
I simply use the current region to determine whether the
preprocessing directie starts at the beginning of a line. I also
removed scanning line indicators, to make the lexer simpler.

LexToken.mll: Moved the function [check_right_context] that
checks stylistic constraints from Lexer.mll to
LexToken.mll. While this triplicates code (as CameLIGO, PascaLIGO
and ReasonLIGO share the same constraints), the benefit is that
Lexer.mll becomes more generic and the signature for the TOKEN
module is simpler (no more exporting predicates, except for
EOF). In accordance with the change of the preprocessor, the
lexers and parsers for LIGO now depend on the kind of comments,
not a fixed set of syntaxes. This gives more versatility when
adding a new language: only the kinds of its comments are needed,
although Lexer.mll and Preproc.mll may have to be modified if
they do not already know the comment delimiters, for example line
comments starting with #.

****************************************************************
BUG: The exceptions coming from LexToken.mll when a stylistic
constraint is broken in [LexToken.check_right_context] are not
caught yet.
****************************************************************

Lexer.mll: I moved out as much as I could from the header into a
new module LexerLib. The aim is to make it easy to reuse as much
as possible of the lexer machinerie, when it cannot be used as
is.
2020-04-24 21:06:18 +02:00
Tom Jack
c58e3220a7 fix bad sed 2020-04-22 12:04:21 -05:00
Tom Jack
1fbbc09313 promote (until-clean) (only *) ? 2020-04-22 11:38:40 -05:00
Sander Spies
eafbe83151 Also promote ParErr.ml 2020-04-22 11:50:46 +02:00
Sander Spies
bd8cf09f9e Promote generated error files by dune. 2020-04-22 11:50:46 +02:00
Lesenechal Remi
e94f445a51 michelson_or custom layout and annotations 2020-04-19 15:18:46 +02:00
Christian Rinderknecht
1ccf6f247d Fixed format of syntax error messages. 2020-04-13 16:31:56 +02:00
Christian Rinderknecht
3ed303f60d In EvalOpt modules, the CLI input ["-"] is becomes now [None],
like the absence of an input filename. (This simplifies all the
clients codes.) Fixed the dune file for the preprocessor. Fixed
the build of PreprocMain.exe and PreprocMain.byte. Restricted
preprocessing errors [Preproc.Newline_in_string] and
[Preproc.Open_string] to the argument of the #include
directive (instead of general strings: this is for the LIGO lexer
to report the error). I removed the error [Preproc.Open_comment]
as this is for the LIGO lexer to report. The preprocessor scanner
[Preproc.lex] does not take a parameter [is_file:bool] now: the
source file (if any) is determined from the lexing
buffer. Accordingly, the field [is_file] of the state of the
preprocessing lexer has been removed: the lexing buffer becomes
now the reference for the input source (bug fix and interface
improvement). Fixed the comments of the test contract
pledge.religo. I removed the data constructor [Lexer.Stdin], as
redundant with [Lexer.Channel].
2020-04-09 16:18:26 +02:00
Christian Rinderknecht
46eecb4027 Marked the errors that should be skipped (because catched by the
LIGO lexer later). Added field [is_file] to the state of the
lexer to know if the input is a file or not (insert or not a
first line directive). Fixed ReasonLIGO comments in
entrypoints-contracts.md and website2.religo. WIP on the LIGO
lexer to properly handle comments for all the syntaxes.
2020-04-08 20:24:34 +02:00
Christian Rinderknecht
951348feb9 Deletion of Parser.msg 2020-04-07 19:56:52 +02:00
Christian Rinderknecht
c0ee726fb2 Simple_utils is now used as a library by the local builds.
Preprocessor is now a library installed by opam.
Replaced ligolang@gmail.com by contact@ligolang.org in opam files.
Reformatted some opam files.
Removed #line directive from preprocessor.
Added to the interface of ParserUnit.
Script messages.sh now checks the identity of .msg and .msg.old
to avoid undue warning about possibly different LR items.
2020-04-07 18:33:46 +02:00
Christian Rinderknecht
968e73b342 Integrated the library for preprocessing.
The build with Makefile works. Dune build to be tested.
2020-03-31 19:44:10 +02:00
Pierre-Emmanuel Wulfman
dbb6fbd8e6 review 1 2020-03-12 16:05:17 +01:00
Sander Spies
8a183ff1d2 Fixing error.messages. 2020-03-12 16:05:17 +01:00
Pierre-Emmanuel Wulfman
092360de93 WIP: fix parser error 2020-03-12 16:05:17 +01:00
Pierre-Emmanuel Wulfman
734620a179 Keyword add for pasca,came,reason:ligo;typing error in contract 2020-03-12 16:05:17 +01:00
Pierre-Emmanuel Wulfman
b438f065b5 WIP:adding rec keyword 2020-03-12 16:05:17 +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
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
b8af9a56d9 fix contract with tuples starting at one 2020-02-19 16:15:43 +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