Skip to main content

Crate zerodds_idl_lower

Crate zerodds_idl_lower 

Source
Expand description

Crate zerodds-idl-lower. Safety classification: SAFE.

Lowers the IDL CST into the common AST: scopes and name binding, resolution, and the IDL rules the model cannot express structurally.

A name that cannot be resolved yet becomes a pending reference rather than an error — the model is built for partial knowledge, and forward declarations depend on it.

§Spec

  • docs/specs/zerodds-idl-frontend-1.0.md §4 (lowering), §5 (completion), §6 (validation).
  • docs/specs/zerodds-ast-1.0.md §2 (references), §5 (transactions).

§Layer position

Layer 2 of the frontend — over zerodds-idl-parse and zerodds-ast.

Re-exports§

pub use complete::hashed_member_id;
pub use scope::ScopeStack;
pub use validate::rule_name;

Modules§

complete
Completion by specification rule. Spec §5.
scope
Scopes and name binding. Spec §4.
validate
The IDL rules the model cannot express structurally. Spec §6.

Structs§

Lowered
What lowering produced.
Options
What the caller may decide that the source does not.

Enums§

HashedIdCounter
Whether a @hashid member advances the sequential counter.
HashedNameSpelling
Which spelling of an escaped name a member-id hash reads.
KeyOnUnionDiscriminator
Whether @key on a union discriminator is carried into the model.
NameOfTheEnclosingScope
Whether a declaration may reuse the name of its immediate scope.

Functions§

lower
Lower a parsed file into a fresh model.
lower_into
Lower a parsed file into an existing model.
lower_into_with
Lower a parsed file into an existing model, deciding what the source left open.
lower_with
Lower a parsed file into a fresh model, deciding what the source left open.
verbatim_placement
The @verbatim placement a name stands for.