Init new repository

This commit is contained in:
Krzosa Karol
2024-04-13 15:29:53 +02:00
commit 5a2e3dcec4
335 changed files with 61571 additions and 0 deletions

55
tests/compos.txt Normal file
View File

@@ -0,0 +1,55 @@
import "libc";
Node :: struct {
i: int;
l: *Node;
r: *Node;
}
v: int;
thing :: proc(a:int @unused, b:int @unused, c:int @unused) {}
thingp :: proc(): *int {return &v;}
default_args :: proc(a: int = 10 @unused, b: int = 10 @unused): int {return 0;}
vargs_proc :: proc(a: int @unused, ...) {}
// v1 := default_args(v0, v0); // @todo: make error
// v0 := default_args(1,2);
main :: proc(): int {
node: Node = {
i = 1,
l = &:Node{
i = 2,
},
r = &:Node{
i = 3,
l = &:Node{
i = 4,
}
}
};
default_args();
default_args(a = 1);
default_args(b = 2);
default_args(1, 2);
default_args(a = 1, b = 2);
default_args(1, b = 2);
vargs_proc(1, 2, 3, 4);
vargs_proc(1);
assert(node.i == 1);
assert(node.l.i == 2);
assert(node.r.i == 3);
assert(node.r.l.i == 4);
:Node{2}.i = 2;
assert(:Node{2}.i == 2);
thing(1,2,3);
assert(thingp()[0] == 0);
thingp()[0] = 0;
*thingp() = 0;
return 0;
}