diff --git a/compiler-rs/Cargo.lock b/compiler-rs/Cargo.lock index f7ae3be..790397c 100644 --- a/compiler-rs/Cargo.lock +++ b/compiler-rs/Cargo.lock @@ -2055,6 +2055,26 @@ dependencies = [ name = "cssl-iccombs" version = "0.1.0" +[[package]] +name = "cssl-iccombs-toy-cli" +version = "0.1.0" +dependencies = [ + "cssl-cas", + "cssl-iccombs", + "cssl-iccombs-toy-elab", + "cssl-lower-iccombs", +] + +[[package]] +name = "cssl-iccombs-toy-elab" +version = "0.1.0" +dependencies = [ + "cssl-cas", + "cssl-grades", + "cssl-hgraph", + "thiserror 1.0.69", +] + [[package]] name = "cssl-ifc" version = "0.1.0" @@ -2117,6 +2137,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "cssl-lower-iccombs" +version = "0.1.0" +dependencies = [ + "cssl-iccombs", + "cssl-iccombs-toy-elab", + "thiserror 1.0.69", +] + [[package]] name = "cssl-macros" version = "0.1.0" diff --git a/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml b/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml new file mode 100644 index 0000000..c1a1c36 --- /dev/null +++ b/compiler-rs/crates/cssl-iccombs-toy-cli/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "cssl-iccombs-toy-cli" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +authors.workspace = true +description = "TOY S-exp frontend + driver for the iccombs demo-harness (Wave U-D + IMPL_06_CORRIGENDUM). NOT the production driver — production driver = csslc." +repository.workspace = true + +[[bin]] +name = "cssl-iccombs-toy" +path = "src/main.rs" + +[dependencies] +cssl-iccombs-toy-elab = { path = "../cssl-iccombs-toy-elab" } +cssl-cas = { path = "../cssl-cas" } +cssl-iccombs = { path = "../cssl-iccombs" } +cssl-lower-iccombs = { path = "../cssl-lower-iccombs" } + +[lints] +workspace = true diff --git a/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs b/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs new file mode 100644 index 0000000..781eab5 --- /dev/null +++ b/compiler-rs/crates/cssl-iccombs-toy-cli/src/lib.rs @@ -0,0 +1,255 @@ +#![forbid(unsafe_code)] +#![doc = "cssl-iccombs-toy-cli — TOY S-expression frontend for the iccombs demo.\n\n\ +⚠ TOY per `specs/Upgrade/impl/IMPL_06_CORRIGENDUM.csl`. NOT the production parser\n\ +(real parser = cssl-parse, real driver = csslc). This crate exists ONLY to feed\n\ +the iccombs harness (cssl-iccombs-toy-elab + cssl-lower-iccombs + cssl-iccombs-toy bin).\n\n\ +Grammar (recursive S-exp) :\n\ + term := atom | list\n\ + atom := identifier | `()`\n\ + list := `(` head args `)`\n\ + head := `lam` body\n\ + | `let` value body\n\ + | `app` fn arg\n\ + | `op`