1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
@import("basic.felan");
@import("lib/memory.felan");
print :: (value:**anytype)->void{
if comptime @type_of(value.*) == u8 {
@putc(value.*);
}else{
@putc('h');
}
};
__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.*)) {
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{
p := malloc(10,u64);
i := 0;
while i < 10 {
__set_item__(p,i,0);
i += 1;
}
print(__get_item__(p,1));
free(@cast(p,*void));
};
|