diff options
Diffstat (limited to 'code')
-rw-r--r-- | code/lib/operator.felan | 11 | ||||
-rw-r--r-- | code/main.felan | 15 |
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.*); }; |