From d4fe9e6e27f2013a6e1f6be94daba91ec53fa5c3 Mon Sep 17 00:00:00 2001 From: CircleShift Date: Wed, 5 Mar 2025 07:26:58 -0500 Subject: [tnslc] Rework compile layout --- tnslc/compile/struct.tnsl | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tnslc/compile/struct.tnsl (limited to 'tnslc/compile/struct.tnsl') diff --git a/tnslc/compile/struct.tnsl b/tnslc/compile/struct.tnsl new file mode 100644 index 0000000..d175aef --- /dev/null +++ b/tnslc/compile/struct.tnsl @@ -0,0 +1,46 @@ + +struct Struct { + ~uint8 name, + ~Module methods, + utils.Vector members, + int size +} + +/; method Struct + + /; init (~uint8 name) + self.name = name + Var v + self.members.init(len v) + ;/ + + /; add_member(~Var v) + self.members.push(v) + ;/ + + /; get_member(~uint8 name) [~Var] + ~Var out = NULL + + ~Var v + /; loop (int i = 0; i < self.members.count) [i++] + v = self.members.get(i) + /; if (utils.strcmp(v`.name, name) == true) + return v + ;/ + ;/ + + return out + ;/ + + /; end + _delete(self.name) + ~Var v + /; loop (int i = 0; i < self.members.count) [i++] + v = self.members.get(i) + v`.end() + ;/ + self.members.end() + ;/ + +;/ + -- cgit v1.2.3