aboutsummaryrefslogtreecommitdiff
path: root/code/lib/operator.felan
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-31 15:09:23 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-31 15:09:23 +0330
commitca6f2ec64941953f0111a64b7acf4cf6fb31929a (patch)
tree8c0abdcd8d202cdee295e2f4247ac6d1688a09d8 /code/lib/operator.felan
parent3c53293e9b2c2f9106da805d26b5eab9dff56225 (diff)
add array access support to arrays
Diffstat (limited to 'code/lib/operator.felan')
-rw-r--r--code/lib/operator.felan14
1 files changed, 13 insertions, 1 deletions
diff --git a/code/lib/operator.felan b/code/lib/operator.felan
index 3da070a..b7ac63a 100644
--- a/code/lib/operator.felan
+++ b/code/lib/operator.felan
@@ -790,7 +790,6 @@ __shift_right__ :: (left:i64,right:i64) -> i64 {
return @shift_right(left,right);
};
-
//---------------------- Pointers ------------------------
__sum__ :: (left:*anytype,right:i64) -> (@type_of(left)) {
@@ -813,3 +812,16 @@ __get_item_address__ :: (left:*anytype,index:i64) -> (@type_of(left)) {
return (left + index);
};
+//---------------------- Array ------------------------
+
+__get_item__ :: (left:[]anytype,index:i64) -> (@type_of(left.ptr.*)) {
+ return (left.ptr + index).*;
+};
+
+__set_item__ :: (left:[]anytype,index:i64,item:@type_of(left.ptr.*)) -> (@type_of(left.ptr.*)) {
+ return (left.ptr + index).* = item;
+};
+
+__get_item_address__ :: (left:[]anytype,index:i64) -> (@type_of(left.ptr)) {
+ return (left.ptr + index);
+};