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), its pretty-printer (pprint) and visualizer
(viz), the free-name collector (refs), pragmas
(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-core
depends on this crate and compiles what it parses; the polydat
facade 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-core (reached through 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.