aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/basic.felan1
-rw-r--r--code/lib/string.felan9
-rw-r--r--code/main.felan30
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);");
};