summaryrefslogtreecommitdiff
path: root/tnslc/compile/outbuf.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/compile/outbuf.tnsl')
-rw-r--r--tnslc/compile/outbuf.tnsl31
1 files changed, 31 insertions, 0 deletions
diff --git a/tnslc/compile/outbuf.tnsl b/tnslc/compile/outbuf.tnsl
new file mode 100644
index 0000000..7394feb
--- /dev/null
+++ b/tnslc/compile/outbuf.tnsl
@@ -0,0 +1,31 @@
+struct OutBuf {
+ utils.Vector
+ hsec,
+ dsec,
+ csec
+}
+
+/; method OutBuf
+ /; init
+ self.hsec.init(1)
+ self.dsec.init(1)
+ self.csec.init(1)
+ ;/
+
+ /; write_to_file (~utils.File fout)
+ fout`.open()
+ fout`.write_cstr("bits 64\n\0")
+ fout`.write_cstr(self.hsec.as_cstr())
+ fout`.write_cstr("\nsection .data\n\0")
+ fout`.write_cstr(self.dsec.as_cstr())
+ fout`.write_cstr("\nsection .text\n\0")
+ fout`.write_cstr(self.csec.as_cstr())
+ fout`.close()
+ ;/
+
+ /; end
+ self.hsec.end()
+ self.dsec.end()
+ self.csec.end()
+ ;/
+;/