pub mod ast; pub mod compiler; pub mod opcodes; pub mod parser; pub mod style_parser; pub use ast::{Directive, ModuleSoA, NodeId, Value}; pub use compiler::Compiler; pub use parser::Parser; pub use style_parser::StyleParser; pub fn compile_project(gltm_src: &str, glts_src: &str) -> Result, String> { let mut module = ModuleSoA::new(); let mut style_parser = StyleParser::new(glts_src, &mut module); style_parser.parse_all()?; let mut gltm_parser = Parser::with_module(gltm_src, module); gltm_parser.parse_all()?; let module = gltm_parser.module; let compiler = Compiler::new(&module); Ok(compiler.compile(&module.hierarchy)) }