mod addressing; mod syntactic_token; mod semantic_token; mod tokenizer; mod error; mod assembler; pub use addressing::{CharAddress, SourceLocation, BytecodeLocation}; pub use syntactic_token::{SyntacticToken, SyntacticTokenType}; pub use semantic_token::{SemanticToken, SemanticTokenType, LabelDefinition, MacroDefinition}; pub use error::Error; pub use tokenizer::TokenIterator; pub use assembler::Assembler; pub fn assemble(source_code: &str) -> (Vec, Vec) { let mut assembler = Assembler::new(); assembler.tokenise_source(source_code); assembler.resolve_references(); assembler.generate_bytecode() }