26 lines
690 B
Rust
26 lines
690 B
Rust
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<Vec<u8>, 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))
|
|
}
|