blob: a657354674553049cddcb020d2687be7e7568467 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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<u8>, Vec<SemanticToken>) {
let mut assembler = Assembler::new();
assembler.tokenise_source(source_code);
assembler.resolve_references();
assembler.generate_bytecode()
}
|