Website Summary Files Commits Branches @commit @diff @stats
path: root / assembler / src / parser / code_gen.rs
diff options
context:
space:
mode:
Commitd17f1356cbe20f8c464668c74a2eb005643b80ba (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-02-13 22:17:41 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-02-13 22:17:41 +0200
Files0e01f13006ab5bd58d8fe89ac404c5e982c5c604 /assembler/src/parser/code_gen.rs
tonkobali-d17f1356cbe20f8c464668c74a2eb005643b80ba.tar
tonkobali-d17f1356cbe20f8c464668c74a2eb005643b80ba.tar.gz
tonkobali-d17f1356cbe20f8c464668c74a2eb005643b80ba.zip
Parent1395b9eac37187227874c2bf4e768680c7dffd32 (diff)
feat(assembler): Split into files and remove def addrs code gen step
1 files changed, 13 insertions, 0 deletions
-rw-r--r--assembler/src/parser/code_gen.rs13
diff --git a/assembler/src/parser/code_gen.rs b/assembler/src/parser/code_gen.rs
new file mode 100644
index 0000000..375a8cb
--- /dev/null
+++ b/assembler/src/parser/code_gen.rs
@@ -0,0 +1,13 @@
+use super::{ Program, Address };
+
+impl Program {
+ pub(crate) fn remove_definition_addresses(&mut self) {
+ for instr in &mut self.instructions {
+ for arg in &mut instr.args {
+ if let Address::Definitions(name) = arg {
+ *arg = self.definitions[name].clone();
+ }
+ }
+ }
+ }
+}