ligo/vendors/Preprocessor
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
..

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