Website Summary Files Commits Branches @commit @diff @stats
path: root / assembler / src / parser / code_gen.rs
diff options
context:
space:
mode:
Commitaea15f0a2c265ea1afc04a227eff5cbfaef9c3a3 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-02-13 23:27:21 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-02-13 23:27:21 +0200
Files655f6ac7440617f12651478f0c326822e09e92f2 /assembler/src/parser/code_gen.rs
tonkobali-aea15f0a2c265ea1afc04a227eff5cbfaef9c3a3.tar
tonkobali-aea15f0a2c265ea1afc04a227eff5cbfaef9c3a3.tar.gz
tonkobali-aea15f0a2c265ea1afc04a227eff5cbfaef9c3a3.zip
Parentef23f004b131588e6c4a7c20d4f4fafb88292fb9 (diff)
feat(assembler): Bytes output and pretty print
1 files changed, 11 insertions, 0 deletions
-rw-r--r--assembler/src/parser/code_gen.rs11
diff --git a/assembler/src/parser/code_gen.rs b/assembler/src/parser/code_gen.rs
index 77f2c2f..4352e9e 100644
--- a/assembler/src/parser/code_gen.rs
+++ b/assembler/src/parser/code_gen.rs
@@ -52,4 +52,15 @@ impl Program {
}
self.instructions.clear();
}
+
+ pub(crate) fn to_bytes(self, absolute_start: usize) -> Vec<u8> {
+ let mut res = Vec::new();
+ res.resize(absolute_start, Default::default());
+ res.extend(self.constants);
+ res
+ .into_iter()
+ .map(|x| x.to_be_bytes())
+ .flatten()
+ .collect()
+ }
}