Lines
100 %
Functions
Branches
//! Symbol table and entries.
//!
//! Split by responsibility:
//! - [`entry`] — the `Symbol` struct + `SymbolKind`.
//! - [`table`] — the `SymbolTable` struct and core read/write API
//! (`define`, `lookup`, `register_host_fns`, test/coverage state).
//! - [`builtins`] — `register_builtins` + entity constants/accessors
//! + map-family macros.
//! - [`stdlib`] — financial-domain structs, `when`/`unless`/`upcase`
//! essentials. Runs after `register_builtins`.
mod builtins;
mod builtins_generated;
mod entry;
mod stdlib;
mod table;
#[cfg(test)]
mod tests;
pub use entry::{Symbol, SymbolKind};
pub use table::{MAX_INLINE_DEPTH, SymbolTable};
/// The native builtin names registered from the org-tangled registry
/// (`builtins_generated::NATIVES`). Exposed so the native-dispatch
/// registry test can assert every documented native actually has a
/// codegen handler — the guard that catches "phantom natives" (a name
/// the reader accepts but codegen rejects with "not yet implemented").
#[must_use]
pub(crate) fn registered_native_names() -> &'static [&'static str] {
builtins_generated::NATIVES
}