diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-03 21:32:03 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-03 21:32:03 +0330 |
commit | a6abc8734563ba8a1920c760dcb3c0147cb458b9 (patch) | |
tree | e2aa1f627b6952793f17f6ff3460070b37d99daf /code | |
parent | 7296f70ccb33fa7a2b34b0a0332bac7b93d21e0d (diff) |
fixing some bugs
Diffstat (limited to 'code')
-rw-r--r-- | code/basic.felan | 1 | ||||
-rw-r--r-- | code/lib/string.felan | 9 | ||||
-rw-r--r-- | code/main.felan | 30 |
3 files changed, 37 insertions, 3 deletions
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);"); }; |