Website Summary Files Commits Branches @commit @diff @stats
path: root / assembler / src / main.rs
diff options
context:
space:
mode:
Commit1395b9eac37187227874c2bf4e768680c7dffd32 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-02-13 21:53:10 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-02-13 21:53:10 +0200
Files50ad9f0c614e1ff07e20964a170b1f27116069ea /assembler/src/main.rs
tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.tar
tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.tar.gz
tonkobali-1395b9eac37187227874c2bf4e768680c7dffd32.zip
Parent3ea01bbd75cc252453cd21074f56eb9cc6cff317 (diff)
feat(assembler): Implement first step of parser
1 files changed, 12 insertions, 0 deletions
-rw-r--r--assembler/src/main.rs12
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);
}