From e25b738656928b38781458ed85880e8ae7bdd5a6 Mon Sep 17 00:00:00 2001
From: Kyle Gunger <kgunger12@gmail.com>
Date: Thu, 14 Mar 2024 01:11:23 -0400
Subject: Test vector impl

---
 tnslc/build.sh    |  2 +-
 tnslc/main.tnsl   | 13 +++++--------
 tnslc/vector.tnsl | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 9 deletions(-)
 create mode 100644 tnslc/vector.tnsl

(limited to 'tnslc')

diff --git a/tnslc/build.sh b/tnslc/build.sh
index b492dcd..798e77d 100755
--- a/tnslc/build.sh
+++ b/tnslc/build.sh
@@ -3,5 +3,5 @@
 ../ctc main.tnsl tnslc.asm
 nasm -f elf64 -o tnslc.o tnslc.asm
 gcc -o tnslc tnslc.o
-rm tnslc.asm tnslc.o
+# rm tnslc.asm tnslc.o
 
diff --git a/tnslc/main.tnsl b/tnslc/main.tnsl
index 1abedb3..ac56836 100644
--- a/tnslc/main.tnsl
+++ b/tnslc/main.tnsl
@@ -1,14 +1,11 @@
 :import "c_wrap_linux.tnsl"
+:import "vector.tnsl"
 
-~uint8 str_a = "Hello World\n\0"
-~uint8 str_b = "!\n\0"
+/; main [int]
 
-/; main (int argc, ~~uint8 argv) [int]
-	_printf(str_a)
+	Vector a
+	a.init(1)
 
-	/; if (argc > 2)
-		_printf(str_b)
-	;/
-	
 	return 0
 ;/
+
diff --git a/tnslc/vector.tnsl b/tnslc/vector.tnsl
new file mode 100644
index 0000000..1377938
--- /dev/null
+++ b/tnslc/vector.tnsl
@@ -0,0 +1,32 @@
+struct Vector {
+	~void data,
+	int
+		size,
+		count,
+		_elsz
+}
+
+int VECT_DEFAULT_SIZE = 4
+
+/; method Vector
+	
+	/; init (int elsz)
+		self._elsz = elsz
+		self.size = VECT_DEFAULT_SIZE
+		self.data = _alloc(elsz * self.size)
+		self.count = 0
+	;/
+
+	/; get (int index) [~void]
+		return self.data
+	;/
+
+	/; end
+		_delete(self.data)
+		self.size = 0
+		self._elsz = 0
+		self.count = 0
+	;/
+
+;/
+
-- 
cgit v1.2.3