a9d57c5c81
New crate ailang-prose with one public fn module_to_prose(&Module) -> String. Rust-flavour with braces, =>-match-arms, mode keywords (own/borrow), effects as trailing 'with IO', Cons(1, Nil) ctor form, /// doc strings. Lossy projection where the LLM can re-derive: (con T) wrap, (fn-type ...) wrap, (term-ctor ...) wrap. Load-bearing semantic detail stays visible (modes, effects, clone, reuse-as, doc strings, type annotations, tail flag). CLI: 'ail prose <file.ail.json>' prints the projection. 3 snapshot fixtures + 28 unit tests. 215-line .ail.json reduces to ~18 lines of legible source. 20b queued: infix arithmetic, paren elision, let-inlining, do prettify.
20 lines
384 B
TOML
20 lines
384 B
TOML
[package]
|
|
name = "ail"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[[bin]]
|
|
name = "ail"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
ailang-core.workspace = true
|
|
ailang-check.workspace = true
|
|
ailang-codegen.workspace = true
|
|
ailang-surface.workspace = true
|
|
ailang-prose.workspace = true
|
|
serde_json.workspace = true
|
|
clap.workspace = true
|
|
anyhow.workspace = true
|