summaryrefslogtreecommitdiff
path: root/tnslc/run.sh
diff options
context:
space:
mode:
authorKai Gunger <kgunger12@gmail.com>2026-07-08 02:14:13 -0400
committerKai Gunger <kgunger12@gmail.com>2026-07-08 02:14:13 -0400
commitf7ececd879b731194f64123f746ac49b7781fc68 (patch)
treed4f3af89e3a138bbd8a9f65c81d1b7033bf81152 /tnslc/run.sh
parentf9665d8aa06e11730a9d6e7af3f98ccefb324bbf (diff)
[tnslc] fixes for stack location when returning structs
Diffstat (limited to 'tnslc/run.sh')
-rwxr-xr-xtnslc/run.sh25
1 files changed, 23 insertions, 2 deletions
diff --git a/tnslc/run.sh b/tnslc/run.sh
index 8010ab6..a8cf594 100755
--- a/tnslc/run.sh
+++ b/tnslc/run.sh
@@ -1,5 +1,26 @@
#!/bin/bash
-DIR_L=$(pwd)
+BUILD_DIR=./out/NEXT
+ARTIFACT_DIR=$BUILD_DIR/artifacts
+
+mkdir -p $BUILD_DIR
+mkdir -p $ARTIFACT_DIR
+filename=$1
+filename="${filename%.*}"
+
+./out/tnslc $filename.tnsl
+
+if [ $? -ne 0 ]; then
+ exit $?
+fi
+
+mv out.asm $ARTIFACT_DIR/$filename.asm
+
+nasm -g -f elf64 -o $ARTIFACT_DIR/$filename.o $ARTIFACT_DIR/$filename.asm
+
+if [ $? -ne 0 ]; then
+ exit $?
+fi
+
+gcc -ggdb -o $BUILD_DIR/$filename $ARTIFACT_DIR/$filename.o
-$DIR_L/out/tnslc $1