On this page:
Enforestation with Macro Expansion

Enforestation with Macro Expansion🔗

Shrubbery notation specifies how to parse a sequence of characters into a coarse-grained block structure, but it leaves the interpretation of that block structure to another layer of parsing—not to mention more fine-grained grouping in between lexing and block structure. The enforest collection is an adaptation of the Racket and Honu parsing techniques of expansion and enforestation targeted to shrubbery notation.

For brevity, we call this parsing layer Rhombus expansion, even though it does not define a full candidate Rhombus language, and although it’s in many ways independent of a specific language. That’s similar to referring to Racket expansion, by which we do not necessarily mean something involving #lang racket.

    1 Motivation

    2 Syntactic Categories

    3 Hierarchical Naming

    4 Operator and Macro Transformers

    5 Operator Precedence and Associativity

    6 Implicit Operators

    7 Macro Protocols

    8 Enforestation Algorithm

    9 Enforestation API

      9.1 Name Roots

      9.2 Operators

      9.3 Parameterized Enforestation

      9.4 Prefix Transformers

    10 Implementation Examples