aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-30 17:51:26 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-30 17:51:26 +0330
commit15fce202de10352d60c1853e7c8940b3eeca13c9 (patch)
tree88cc3d3ec947e7220bd1d684b8a28af665f07868 /code
parenta2a6bb49368e922af28b9a54669b9f7fe5b2e6a0 (diff)
add functionality to scopeAlloc
Diffstat (limited to 'code')
-rw-r--r--code/main.felan28
1 files changed, 22 insertions, 6 deletions
diff --git a/code/main.felan b/code/main.felan
index 98aa762..8e096e0 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -12,12 +12,28 @@ __sum__ :: (left:*anytype,right:i64) -> (@type_of(left)) {
return @add(left,right);
};
+__sub__ :: (left:*anytype,right:i64) -> (@type_of(left)) {
+ return @sub(left,right);
+};
+
+__get_item__ :: (left:*anytype,index:i64) -> (@type_of(left.*)) {
+ left += index;
+ return left.*;
+};
+
+__set_item__ :: (left:*anytype,index:i64,item:@type_of(left.*)) -> (@type_of(left.*)) {
+ left += index;
+ return left.* = item;
+};
+
+__get_item_address__ :: (left:*anytype,index:i64,item:@type_of(left.*)) -> (@type_of(left)) {
+ left += index;
+ return left;
+};
+
main :: ()->void{
- arr :[10]i64= undefined;
- arr[0] = 2;
- arr[1] = 3;
- p := &arr[0];
- p += 1;
- print(p.*);
+ p := @stack_alloc(i64,10);
+ __set_item__(p,1,0);
+ print(__get_item__(p,1));
};