1use std::collections::{BTreeMap, HashSet};
4use std::path::Path;
5
6use cranelift_entity::EntityRef;
7use genco::prelude::*;
8use syn::parse_file;
9use thiserror::Error;
10
11use ruka_mir::{
12 naming::{mangle_canonical_ident, synthetic_temp_ident, FunctionNames, ProgramNames},
13 MirAggregateArg, MirBlockId, MirCallArg, MirEnumDecl, MirFuncId, MirFunction, MirInstr,
14 MirIntrinsic, MirLocalId, MirProgram, MirStmt, MirStructDecl, MirTerminator, MirTypeExpr,
15};
16use ruka_types::Ty;
17
18mod analysis_and_calls;
19mod emit_stmt_instr;
20mod program_cfg;
21mod types_and_names;
22
23#[cfg(test)]
24pub use program_cfg::emit_program;
25pub use program_cfg::{emit_program_with_function_lines, emit_to_path, CodegenError};
26
27pub(crate) use analysis_and_calls::*;
28pub(crate) use emit_stmt_instr::*;
29pub(crate) use program_cfg::*;
30pub(crate) use types_and_names::*;