Skip to content

WIP: [TM-7] [TM-11] Custom Macros (let-block), inline tests

John Burnham requested to merge jcb/tm7-language into master

Advanced Morley Language features: Let-blocks, inline tests

Let-block (custom macro, type synonym, constant declaration)

  • Design syntax (needs clean-up)
  • Parsing of Let-Block (needs testing)
  • Expansion of Lets
  • Typechecking LetMacro (via STACK instructions), LetValue (need to figure out how).
  • Testing Lets

Pragma Infrastructure

  • Design syntax
  • Implement example pragma (-XContractMain), further extensions out of scope of this issue
  • Parsing of pragmas (my method will automatically generate new pragma parsers simply by expanding the Pragma sum type.)

In-line Assertions (MorleyInstr: STACK, TEST, PRINT)

  • Design syntax
  • Parsing
  • Integrate with Macro expansion
  • Integrate with typechecker
  • Integrate with runtime

Property Testing (Check-block)

  • Design syntax (in-progress)
  • Parsing

EDIT: For the sake of modularity, Pragma work is now postponed for a future MR. Property testing will now be implemented in a separate branch here: https://gitlab.com/camlcase-dev/morley/tree/jcb/tm11-properties

Edited by John Burnham

Merge request reports