| Crates.io | csw-generate |
| lib.rs | csw-generate |
| version | 0.1.0 |
| created_at | 2025-12-05 16:54:15.412209+00 |
| updated_at | 2025-12-05 16:54:15.412209+00 |
| description | Code generation for the Categorical Semantics Workbench - generate type checkers and interpreters from derived type systems |
| homepage | https://github.com/ibrahimcesar/categorical-semantics-workbench |
| repository | https://github.com/ibrahimcesar/categorical-semantics-workbench |
| max_upload_size | |
| id | 1968701 |
| size | 24,216 |
Code generation for the Categorical Semantics Workbench.
This crate generates working type checkers, interpreters, and parsers from derived type systems. The generated code is standalone and can be used directly in your projects.
Given a TypeSystem (from csw-derive), this crate can generate:
use csw_core::CategoryBuilder;
use csw_derive::Deriver;
use csw_generate::{RustGenerator, Generator};
use std::path::Path;
// Define and derive
let ccc = CategoryBuilder::new("STLC")
.with_base("Int")
.with_base("Bool")
.with_terminal()
.with_products()
.with_exponentials()
.cartesian()
.build()
.unwrap();
let type_system = Deriver::derive(&ccc);
// Generate Rust code
RustGenerator::generate(&type_system, Path::new("generated/stlc/"))
.expect("code generation failed");
The generator creates a complete Rust crate:
generated/stlc/
├── Cargo.toml
├── src/
│ ├── lib.rs
│ ├── types.rs # Type enum
│ ├── terms.rs # Term enum
│ ├── checker.rs # Type checker
│ └── interpreter.rs # Evaluator
└── README.md
Currently supported:
Planned:
Licensed under either of Apache License, Version 2.0 or MIT license at your option.