Skip to main content

Crate zerodds_lang_rules

Crate zerodds_lang_rules 

Source
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::decode bound to the C backend.
decode_cpp
The C++ column’s decoder: crate::emit::decode bound to the C++ backend.
decode_java
The Java column’s decoder: crate::emit::decode bound 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::encode bound 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
@verbatim text, sorted into the slots a backend writes.