Expand description
§TypR Core
Pure logic for TypR - a typed superset of R.
This crate contains the core functionality that can be compiled to WebAssembly:
- Parsing TypR source code
- Type checking
- Transpilation to R
§Architecture
The crate is designed to be platform-agnostic by using trait abstractions for all I/O operations:
SourceProvider: Provides source code content (replacesstd::fs::read_to_string)OutputHandler: Handles transpilation output (replaces file writes)PackageChecker: Checks/installs R packages (replacesCommandexecution)
§Usage
ⓘ
use typr_core::{Compiler, InMemorySourceProvider};
let mut sources = InMemorySourceProvider::new();
sources.add_source("main.ty", "let x: Number = 42;");
let compiler = Compiler::new(sources);
let result = compiler.compile("main.ty")?;
println!("R code: {}", result.r_code);Re-exports§
pub use components::context::config::Environment;pub use components::context::Context;pub use components::error_message::typr_error::TypRError;pub use components::language::Lang;pub use components::type::Type;pub use processes::parsing;pub use processes::transpiling;pub use processes::type_checking::typing;pub use processes::type_checking::typing_with_errors;pub use processes::type_checking::TypingResult;pub use abstractions::*;
Modules§
- abstractions
- Abstraction traits for platform-independent operations
- components
- processes
- utils
- Pure utility modules for TypR core
Structs§
- Compile
Output - Full compilation output
- Compiler
- Main compiler interface for TypR
- Transpile
Result - Result of transpilation
Enums§
- Compile
Error - Compilation errors