From 03e9e1708eada3985529949302f214a223a297c2 Mon Sep 17 00:00:00 2001 From: A404M Date: Mon, 9 Jun 2025 17:50:46 +0330 Subject: fix bug in shape shifter matching --- code/lib/memory.felan | 4 ++-- code/lib/vector.felan | 16 ++++++++++++++++ code/main.felan | 4 +++- 3 files changed, 21 insertions(+), 3 deletions(-) (limited to 'code') 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); }; -- cgit v1.2.3