aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-06-09 17:50:46 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-06-09 17:50:46 +0330
commit03e9e1708eada3985529949302f214a223a297c2 (patch)
treed9682cf0880934c3f384ec6c335808303f73a285 /code
parent922b6c51fbcdabd3823e311c46fe55af193196e1 (diff)
fix bug in shape shifter matching
Diffstat (limited to 'code')
-rw-r--r--code/lib/memory.felan4
-rw-r--r--code/lib/vector.felan16
-rw-r--r--code/main.felan4
3 files changed, 21 insertions, 3 deletions
diff --git a/code/lib/memory.felan b/code/lib/memory.felan
index 7715d0e..55451c5 100644
--- a/code/lib/memory.felan
+++ b/code/lib/memory.felan
@@ -8,6 +8,6 @@ malloc :: (size:i64,comptime t:type) -> (*t) {
return @cast(malloc(size*@cast(@size_of(t),i64)),*t);
};
-free :: (a:*anytype) -> void {
- free(@cast(a,*void));
+free :: (ptr:*anytype) -> void {
+ free(@cast(ptr,*void));
};
diff --git a/code/lib/vector.felan b/code/lib/vector.felan
index 6ad1991..a33d386 100644
--- a/code/lib/vector.felan
+++ b/code/lib/vector.felan
@@ -17,6 +17,22 @@ vector_new :: (comptime t:type) -> (vector(t)) {
return v;
};
+__get_item__ :: (left:vector(anytype),index:i64) -> (@type_of(left.ptr.*)) {
+ return (left.ptr + index).*;
+};
+
+__set_item__ :: (left:vector(anytype),index:i64,item:@type_of(left.ptr.*)) -> (@type_of(left.ptr.*)) {
+ return (left.ptr + index).* = item;
+};
+
+__get_item_address__ :: (left:vector(anytype),index:i64) -> (@type_of(left.ptr)) {
+ return (left.ptr + index);
+};
+
+push_back :: (vec:vector(anytype),value:@type_of(vec.ptr.*)) -> void {
+ @putc('h');
+};
+
delete :: (vec:vector(anytype)) -> void {
free(vec.ptr);
};
diff --git a/code/main.felan b/code/main.felan
index b297e3f..20c815a 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -1,6 +1,5 @@
// @import("basic.felan");
@import("lib/vector.felan");
-// @import("lib/memory.felan");
/*
t :: (comptime formatter : string) macro -> void {
@@ -30,6 +29,9 @@ t :: (comptime formatter : string) macro -> void {
main :: () -> void {
v := vector_new(u8);
+
+ push_back(v,2u8);
+
delete(v);
};