as3razen 0.1.0

AS3Razen compiler
Documentation
use crate::ns::*;

pub struct SemanticHost {
    arena: SymbolArena,
    void_type: Symbol,
}

impl SemanticHost {
    pub fn new() -> Self {
        let arena = SymbolArena::new();
        let void_type = VoidType::new(&arena).into();
        Self {
            arena,
            void_type,
        }
    }

    #[inline(always)]
    pub fn factory(&self) -> SymbolFactory {
        SymbolFactory(self)
    }

    pub fn void_type(&self) -> Symbol {
        self.void_type.clone()
    }
}