ligo/vendors/Preprocessor
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
..
.E_LexerMain.tag Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
.E_Parser.mly.tag Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
.E_ParserMain.tag Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
.links Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
.PreprocMain.ml Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
.PreprocMain.tag Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
build.sh Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
clean.sh Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
dune In EvalOpt modules, the CLI input ["-"] is becomes now [None], 2020-04-09 16:18:26 +02:00
dune-project Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
E_AST.ml Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
E_Lexer.mli Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
E_Lexer.mll Added # line directive at the start to recover the file name. Continued integration. 2020-04-01 19:22:46 +02:00
E_LexerMain.ml Removed error "Invalid directive" as PascaLIGO has the operator #. 2020-04-03 19:06:35 +02:00
E_Parser.mly Integrated the library for preprocessing. 2020-03-31 19:44:10 +02:00
E_ParserMain.ml Removed error "Invalid directive" as PascaLIGO has the operator #. 2020-04-03 19:06:35 +02:00
EvalOpt.ml In EvalOpt modules, the CLI input ["-"] is becomes now [None], 2020-04-09 16:18:26 +02:00
EvalOpt.mli Removed error "Invalid directive" as PascaLIGO has the operator #. 2020-04-03 19:06:35 +02:00
LICENSE Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
Makefile.cfg Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
Preproc.mli In EvalOpt modules, the CLI input ["-"] is becomes now [None], 2020-04-09 16:18:26 +02:00
Preproc.mll In EvalOpt modules, the CLI input ["-"] is becomes now [None], 2020-04-09 16:18:26 +02:00
Preprocessor.ml Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
Preprocessor.opam Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00
PreprocMain.ml In EvalOpt modules, the CLI input ["-"] is becomes now [None], 2020-04-09 16:18:26 +02:00
README.md Simple_utils is now used as a library by the local builds. 2020-04-07 18:33:46 +02:00

A preprocessor a la C# in OCaml

The following preprocessing directives are supported

  • #define
  • #elif
  • #else
  • #endif
  • #endregion
  • #error
  • #if
  • #include
  • #region
  • #undef

Note: Because it is meant for LIGO, there is no error raised for invalid preprocessing directives, as the symbol # is valid in PascaLIGO (cons operator for lists). Also, the preprocessor may report an error on some weird but valid PascaLIGO contracts, like

const include : list (int) = list [1] const l : list (int) = 0

include