glt 0.1.4

Glint compiler library
Documentation
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))
}