1pub mod codama;
2pub mod codegen;
3pub mod error;
4pub mod init;
5pub mod ir;
6pub mod parse;
7
8use std::path::Path;
9
10use codama_nodes::RootNode;
11
12pub use crate::codama::CodamaGenerateOptions;
13pub use crate::codama::generate_codama;
14use crate::codegen::ir_to_root_node;
15use crate::error::IdlError;
16pub use crate::init::init_project;
17pub use crate::init::print_next_steps;
18use crate::parse::parse_program;
19
20pub fn generate_idl(
26 program_path: &Path,
27 name_override: Option<&str>,
28) -> Result<RootNode, IdlError> {
29 let ir = parse_program(program_path, name_override)?;
30 Ok(ir_to_root_node(&ir))
31}