Expand description
The Polydat language without its runtime.
This crate holds what a reader of Polydat source needs and nothing
a runner needs: the lexer and parser (lexer, parser), the
AST (ast) and its pretty-printer (pprint), the free-name
collector (refs), pragmas, the diagnostic
types (error), the tile template parsers (tile,
tile_structural), the comprehension sub-language with its
algebra (comprehension), and the port type vocabulary
(PortType). polydat depends on this crate, compiles what it
parses, and re-exports every module here at the path it always
had, so polydat::dsl::ast and polydat::ast::PortType are these.
What a type means to a compiled buffer, what a comprehension
evaluates to, and what a tile renders are all the runtime’s: they
live in polydat, as trait implementations and functions over the
types defined here.
Modules§
- ast
- Abstract syntax tree for the Polydat DSL.
- comprehension
- The comprehension sub-language: its text form (
parse), the flat form that text parses to (ast_legacy), the canonical algebra (ast) with its sources, strategies, cardinalities, and metadata, and the spec forms that convert between them (spec). Evaluation is the runtime’s. - error
- Structured error types for the Polydat DSL with rich source context.
- lexer
- Lexer for the Polydat DSL.
- parser
- Recursive descent parser for the Polydat DSL.
- pprint
- AST →
.polydatsource pretty-printer. - pragmas
- Module-level pragmas for Polydat source.
- refs
- Grammar-based free-name extraction for Polydat expression text.
- tile
- The tile template grammar (SRD 114 §2.2): holes, projections, branches, and the doubled-open escape, parsed over configurable delimiters and sigil. The textual front end for Polytile; the structural front end (§3) lowers to the same pieces.
- tile_
structural - The structural front end and the host boundary of Polytile (SRD 114 §3, §5.6).
- viz
- DAG visualization for Polydat Kernels.
Enums§
- Port
Type - Compile-time type tag for a port on a Polydat node.