diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-09 17:50:46 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-06-09 17:50:46 +0330 |
commit | 03e9e1708eada3985529949302f214a223a297c2 (patch) | |
tree | d9682cf0880934c3f384ec6c335808303f73a285 /code | |
parent | 922b6c51fbcdabd3823e311c46fe55af193196e1 (diff) |
fix bug in shape shifter matching
Diffstat (limited to 'code')
-rw-r--r-- | code/lib/memory.felan | 4 | ||||
-rw-r--r-- | code/lib/vector.felan | 16 | ||||
-rw-r--r-- | code/main.felan | 4 |
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); }; |