From ecf3e4075141163459200a2b2d05bd8b866c371d Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Mon, 12 Dec 2022 16:25:02 -0500 Subject: Module include syntax --- tnslc/compile/compile.tnsl | 18 ++++++++++++++---- tnslc/paths.tnsl | 20 ++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/tnslc/compile/compile.tnsl b/tnslc/compile/compile.tnsl index 677cf55..c884cca 100644 --- a/tnslc/compile/compile.tnsl +++ b/tnslc/compile/compile.tnsl @@ -43,11 +43,11 @@ /; get_offset({}charp name) [int] ;int out = 0 - /; loop (int i = 0; i < len (self.sub_types)) [i = i + 2] - /; if (string_equate(~name, ~(self.sub_types{i + 1}))) + /; loop (int i = 0; i < len (self.on_stack)) [i++] + /; if (string_equate(~name, ~(self.sub_types{i*2 + 1}))) ;return out - ;; else - ;VType tmp = vtype_by_name(self.sub_types{i}) + ;; else if (self.on_stack{i}) + ;VType tmp = vtype_by_name(self.sub_types{i*2}) ;out = out + tmp.size ;/ ;/ @@ -621,6 +621,16 @@ ;/ /; compile_include (Path file_path, ~VTrack global, ~{}charp hsec, csec, dsec) + # Autocomplete in the case of module syntax + ;bool d = file_path.extension_is("tnsl") + /; if (!d) + ;file_path.dirs.append(file_path.file) + ;{}charp ftmp = file_path.file + ;{}charp tmp = ".tnsl" + ;add_strings(~ftmp, ~tmp) + ;file_path.file = ftmp + ;/ + ;tnsl.io.print("[TNSLC:INCLUDE] ") ;tnsl.io.println(file_path.full_path()) diff --git a/tnslc/paths.tnsl b/tnslc/paths.tnsl index 1e8c705..1a97f08 100644 --- a/tnslc/paths.tnsl +++ b/tnslc/paths.tnsl @@ -38,6 +38,26 @@ ;return tnsl.io.readFile(self.full_path()) ;/ + /; extension_is ({}charp chk) [bool] + ;{}charp ext = "" + ;int dot = -1 + /; loop (int i = len (self.file) - 1; i > 0) [i = i - 1] + /; if (self.file{i} == '.') + ;dot = i + ;break + ;/ + ;/ + + /; if (dot > 0) + ;dot++ + /; loop (dot < len (self.file)) [dot++] + ;ext.append(self.file{dot}) + ;/ + ;/ + + ;return string_equate(chk, ext) + ;/ + ;/ /; split({}charp str, charp c) [{}{}charp] -- cgit v1.2.3