Expand description
Crate zerodds-lang-rules. Safety classification: SAFE.
The common AST onto the language CSTs, through rules that are data.
A rule is a value: comparable, serialisable, and checkable for
completeness. Two languages’ treatment of @optional is a diff, not
a reading of two emitters three thousand lines apart.
§Spec
docs/specs/zerodds-lang-cst-1.0.md§2, §3, §4.
§The engine
seesaw-tgg 2.0 — the positive-only, NAC-free rule layer, released.
A version dependency rather than a path: a path builds only on the
machine that wrote it.
§Layer position
Layer 2 of the backend arc — over zerodds-ast and
zerodds-lang-cst.
Re-exports§
pub use adapter::ast::ModelGraph;pub use adapter::ast::NodeRef;pub use apply::Applied;pub use apply::apply;pub use coverage::ConstructKind;pub use coverage::Coverage;pub use coverage::coverage_of;
Modules§
- adapter
- Presenting the model and the language CSTs as seesaw graphs. Spec §3.
- apply
- Forward application. Spec §2.5.
- coverage
- The completeness table. Spec §4.1.
- decode_
c - The C column’s decoder:
crate::emit::decodebound to the C backend. - decode_
cpp - The C++ column’s decoder:
crate::emit::decodebound to the C++ backend. - decode_
java - The Java column’s decoder:
crate::emit::decodebound to the Java backend. - default_
ada - The value an Ada member takes when the stream does not carry it.
- default_
ada83 - The value an Ada 83 member takes when the stream does not carry it.
- default_
c - The value a C member takes when the stream does not carry it.
- default_
cpp - The value a C++ member takes when the stream does not carry it.
- default_
csharp - The value a C# member takes when the stream does not carry it.
- default_
d - The value a D member takes when the stream does not carry it.
- default_
elixir - The value an Elixir member takes when the stream does not carry it.
- default_
fsharp - The value an F# member takes when the stream does not carry it.
- default_
go - The value a Go member takes when the stream does not carry it.
- default_
java - The value a Java member takes when the stream does not carry it.
- default_
julia - The value a Julia member takes when the stream does not carry it.
- default_
kotlin - The value a Kotlin member takes when the stream does not carry it.
- default_
lua - The value a Lua member takes when the stream does not carry it.
- default_
nim - The value a Nim member takes when the stream does not carry it.
- default_
node - The value a Node (plain JavaScript) member takes when the stream does not carry it.
- default_
ocaml - The value an OCaml member takes when the stream does not carry it.
- default_
python - The value a Python member takes when the stream does not carry it.
- default_
rust - The value a generated Rust member takes when the stream does not carry it.
- default_
swift - The value a Swift member takes when the stream does not carry it.
- default_
typescript - The value a TypeScript member takes when the stream does not carry it.
- default_
zig - The value a Zig member takes when the stream does not carry it.
- emit
- The target a codec walk emits into.
- encode
- Encoder and decoder bodies, built from the layout plan. Spec §5, §6.2.
- encode_
c - The C column’s encoder:
crate::emit::encodebound to the C backend. - generate
- One IDL model into one language’s source, through the contract the rest of this crate already keeps.
- rule
- The rule catalogues. Spec §2.
- verbatim
@verbatimtext, sorted into the slots a backend writes.