Skip to main content

sim_lib_lang_scheme/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3//! Scheme (R7RS-small) surface profile for the SIM runtime.
4//!
5//! The kernel defines the codec, eval-policy, and `Expr` contracts; this crate
6//! is a loadable language profile presenting a Scheme surface syntax over the
7//! shared `Expr` graph, not a standalone interpreter.
8
9mod card;
10mod codec;
11mod conformance;
12mod forms;
13mod lowering;
14mod matrix_row;
15mod profile;
16mod reader;
17mod symbols;
18
19pub use card::{scheme_language_card, scheme_language_card_with_generated_coverage};
20pub use codec::{SchemeCodec, SchemeCodecLib};
21pub use conformance::{run_r7rs_small_conformance_case, run_scheme_matrix_row};
22pub use forms::{
23    SchemeBaseExport, SchemeFormSpec, SchemeFormStatus, publish_scheme_base_claims,
24    publish_scheme_base_claims_for_lib, r7rs_small_base_exports, r7rs_small_form_specs,
25};
26pub use lowering::{LocatedSchemeLowering, SchemeLowered, lower_scheme_expr, lower_scheme_tree};
27pub use matrix_row::{r7rs_small_expr_cases, r7rs_small_matrix_row, r7rs_small_stub_cases};
28pub use profile::{
29    diagnose_unsupported_forms, install_r7rs_small_profile, r7rs_small_profile,
30    run_r7rs_small_restricted,
31};
32pub use reader::{decode_scheme_tree, parse_scheme_source};
33pub use symbols::{
34    r7rs_small_profile_symbol, scheme_base_export_kind_symbol, scheme_conformance_test_symbol,
35    scheme_lowering_symbol, scheme_reader_symbol,
36};
37
38#[cfg(test)]
39mod tests;