Commit Graph

10 Commits

Author SHA1 Message Date
Christian Rinderknecht
457a0085f7
I added and alternate syntax for blocks of instructions.
The syntax: block { ... }
The other syntax: begin ... end
This implies adding a new keyword to LIGO: "block".
2019-03-25 16:38:07 +01:00
Christian Rinderknecht
ea4af374f9
Removed braces from the lexer and parser. 2019-03-22 14:11:32 +01:00
Christian Rinderknecht
e8443937fd
Changed "||" -> "or" and "&&" -> "and" to be more Pascal-like. 2019-03-20 12:28:25 +01:00
Christian Rinderknecht
623683839f
Removed keyword "null", replaced by two keywords "do"
and "nothing".

Until now only products of type names were allowed: I extended
them to allow type expressions.

Removed the destructive update of a map binding "a[b] := c".

Record projection has been extended to allow for qualified
names: "a.b.c" and "a.b.c[d]".

Changed the LIGO extension from ".li" to ".ligo".

Fixed the name of the language to be "LIGO" (instead of "Ligo").
2019-03-18 17:47:11 +01:00
Christian Rinderknecht
269fd475ad
Enabled the preprocessing by CPP of #include directives in Ligo.
Now it is possible to write anywhere in a Ligo source file

and have error messages refer to the correct file and line. This
is done by extending the lexer to recognise #line
directives (generated by CPP).

I added the stage "cpp" for the --verbose command-line option: if
given, the preprocessed source file is created in the current
directory with the name <input>.pp.li, where <input>.li is the
original input file. Also the CPP command actually run is
printed.

I added setter to modules [Pos] and [Region].
2019-03-12 18:33:29 +01:00
Christian Rinderknecht
8746802571
Storage and operations are now explicitly named.
Refactoring of AST to enable the detection of incomplete pattern
matchings by the OCaml compiler. Some record fields renamed for
better readability.
2019-03-10 19:41:27 +01:00
Christian Rinderknecht
00a255aa9e
Changed the line comments to start with "//". The list constructor is now "#". 2019-03-08 16:06:50 +01:00
Christian Rinderknecht
c0f541a803 Escaped invalid characters before printing lexical error message. 2019-03-06 17:26:28 +01:00
Christian Rinderknecht
45d18f7b12
Added instruction 'fail'. I changed the grammar and AST for local functions and removed global mutable variables. 2019-02-28 15:46:34 +01:00
Galfour
9df0f6ad3a initial commit 2019-02-25 21:29:29 +00:00