#![forbid(unsafe_code)]
#![warn(missing_docs)]
pub mod compiler;
pub mod errors;
pub mod parser;
pub mod utils;
pub fn compile_str(src: &str) -> Result<String, errors::Diagnostics> {
let mut ctx = compiler::Context::new(errors::ReportingLevel::Warning, None, None);
let result = ctx.compile_synthetic("<string>", src);
if ctx.diagnostics.is_empty() {
let mut out = Vec::new();
ctx.render(&result.out, true, &mut out)
.unwrap();
let out = String::from_utf8(out).unwrap();
Ok(out)
} else {
Err(ctx.diagnostics)
}
}