From a6abc8734563ba8a1920c760dcb3c0147cb458b9 Mon Sep 17 00:00:00 2001 From: A404M Date: Tue, 3 Jun 2025 21:32:03 +0330 Subject: fixing some bugs --- code/basic.felan | 1 + code/lib/string.felan | 9 +++++++++ code/main.felan | 30 +++++++++++++++++++++++++++--- 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 code/lib/string.felan (limited to 'code') diff --git a/code/basic.felan b/code/basic.felan index 930dc5c..1e4ce2f 100644 --- a/code/basic.felan +++ b/code/basic.felan @@ -2,3 +2,4 @@ @import("lib/types.felan"); @import("lib/io.felan"); @import("lib/memory.felan"); +@import("lib/string.felan"); diff --git a/code/lib/string.felan b/code/lib/string.felan new file mode 100644 index 0000000..e2dacbb --- /dev/null +++ b/code/lib/string.felan @@ -0,0 +1,9 @@ +@import("operator.felan"); +@import("types.felan"); + +sub_string :: (str:string, begin:i64, end:i64) -> string { + result := ""; + result.ptr = str.ptr + begin; + result.length = @cast(end-begin,u64); + return result; +}; diff --git a/code/main.felan b/code/main.felan index 0803589..e6d479f 100644 --- a/code/main.felan +++ b/code/main.felan @@ -1,10 +1,34 @@ -// @import("basic.felan"); +@import("basic.felan"); + +t :: (comptime formatter : string) -> void { + i := 0; + in := 0; + opening := 0; + while @cast(i,u64) < formatter.length { + c := formatter[i]; + if c == '{' { + if in == 0 { + opening = i+1; + } + in += 1; + } else if c == '}' { + in -= 1; + if in == 0{ + str := sub_string(formatter,opening,i); + print(str); + } else if in < 0 { + in = 0; + } + } + i += 1; + } +}; main :: () -> void { a := '2'; - @insert("a = '3';"); - @insert("a = '5';"); + @insert("a = '3';a = '5';"); @putc(a); + // t("hello {world}"); // @insert("print(123);"); }; -- cgit v1.2.3