aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/lib/operator.felan11
-rw-r--r--code/main.felan15
2 files changed, 14 insertions, 12 deletions
diff --git a/code/lib/operator.felan b/code/lib/operator.felan
index 2112c57..3da070a 100644
--- a/code/lib/operator.felan
+++ b/code/lib/operator.felan
@@ -801,4 +801,15 @@ __sub__ :: (left:*anytype,right:i64) -> (@type_of(left)) {
return @sub(left,right);
};
+__get_item__ :: (left:*anytype,index:i64) -> (@type_of(left.*)) {
+ return (left + index).*;
+};
+
+__set_item__ :: (left:*anytype,index:i64,item:@type_of(left.*)) -> (@type_of(left.*)) {
+ return (left + index).* = item;
+};
+
+__get_item_address__ :: (left:*anytype,index:i64) -> (@type_of(left)) {
+ return (left + index);
+};
diff --git a/code/main.felan b/code/main.felan
index 3e98896..5b0c634 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -10,21 +10,12 @@ print :: (value:**anytype)->void{
}
};
-__get_item__ :: (left:*anytype,index:i64) -> (@type_of(left.*)) {
- return (left + index).*;
-};
-
-__set_item__ :: (left:*anytype,index:i64,item:@type_of(left.*)) -> (@type_of(left.*)) {
- return (left + index).* = item;
-};
-
-__get_item_address__ :: (left:*anytype,index:i64,item:@type_of(left.*)) -> (@type_of(left)) {
- return (left + index);
-};
-
main :: () -> void {
a := @stack_alloc(10,u8);
a[0] = '1';
+ b := &a[2];
+ b.* = '9';
@putc(a[0]);
+ @putc(b.*);
};