diff options
Diffstat (limited to 'tnslc')
-rw-r--r-- | tnslc/compile/generator.tnsl | 3 | ||||
-rw-r--r-- | tnslc/file.tnsl | 9 | ||||
-rw-r--r-- | tnslc/tnslc.tnsl | 32 |
3 files changed, 37 insertions, 7 deletions
diff --git a/tnslc/compile/generator.tnsl b/tnslc/compile/generator.tnsl index e69de29..239b0c3 100644 --- a/tnslc/compile/generator.tnsl +++ b/tnslc/compile/generator.tnsl @@ -0,0 +1,3 @@ +/; generate (utils.File fin, fout) +;/ + diff --git a/tnslc/file.tnsl b/tnslc/file.tnsl index e69de29..0b24aea 100644 --- a/tnslc/file.tnsl +++ b/tnslc/file.tnsl @@ -0,0 +1,9 @@ +struct File { + int i +} + +/; method File + /; init (~uint8 str) + ;/ + +;/ diff --git a/tnslc/tnslc.tnsl b/tnslc/tnslc.tnsl index 89fe80b..6269ef2 100644 --- a/tnslc/tnslc.tnsl +++ b/tnslc/tnslc.tnsl @@ -7,18 +7,36 @@ :import "compile/compile.tnsl" -~uint8 HELLO = "hello world\n\0" +~uint8 DEFAULT_FOUT = "out.asm\0" -/; main [int] - utils.Vector vec +~uint8 USAGE = " +TNSLC v1.0.0 (C) 2024 CircleShift - vec.init(1) +usage: + tnslc [options] (file in) [file out] + + -h print this help text +\0" - vec.push_cstr(HELLO) +/; main (int argc, ~~uint8 argv) [int] + asm "mov r10, rdi" + asm "mov r11, rsi" - _printf(vec.data) + /; if (argc < 2) + _printf(USAGE) + return 1 + ;/ - vec.end() + utils.File in, out + + in.init(argv{1}) + /; if (argc < 3) + out.init(argv{2}) + ;; else + out.init(DEFAULT_FOUT) + ;/ + + compile.generate(in, out) return 0 ;/ |