diff options
| Commit | 1395b9eac37187227874c2bf4e768680c7dffd32 (patch) | |
|---|---|---|
| Author | 2025-02-13 21:53:10 +0200 | |
| Committer | 2025-02-13 21:53:10 +0200 | |
| Files | 50ad9f0c614e1ff07e20964a170b1f27116069ea /assembler/src/main.rs | |
| tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.tar tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.tar.gz tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.zip | ||
| Parent | 3ea01bbd75cc252453cd21074f56eb9cc6cff317 (diff) | |
feat(assembler): Implement first step of parser
1 files changed, 12 insertions, 0 deletions
| -rw-r--r-- | assembler/src/main.rs | 12 |
diff --git a/assembler/src/main.rs b/assembler/src/main.rs index 0cda74e..ebd8177 100644 --- a/assembler/src/main.rs +++ b/assembler/src/main.rs @@ -1,18 +1,30 @@ mod lexer; +mod parser; use std::fs::File; use std::io::{BufRead, BufReader}; +use parser::Program; + +pub(crate) type Word = i64; + fn main() { let file_path = "./example.s"; + /* Read */ let file = File::open(file_path).unwrap(); let lines = BufReader::new(file).lines(); + /* Lex */ let mut tokens = Vec::new(); for line in lines.map_while(Result::ok) { tokens.extend(lexer::split(line)); } println!("{:#?}", tokens); + + /* Parse */ + let prog = Program::new(tokens); + + println!("{:#?}", prog); } |
