diff options
Diffstat (limited to 'examples/24.src')
| -rw-r--r-- | examples/24.src | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/examples/24.src b/examples/24.src deleted file mode 100644 index 7349906..0000000 --- a/examples/24.src +++ /dev/null @@ -1,48 +0,0 @@ -extern malloc = (i64) => *void; - -import "!stdlib.src"; - -let test = struct { - x: i64, - y: *i8, - z: *test, -}; - -let print_struct = (s: *test) => void { - printf("X: %d\n", (*s).x); - printf("Y: %s\n", (*s).y); - if (*s).z != cast(*test, null) { - print_struct((*s).z); - }; - return; -}; - -let main = () => i64 { - let inst = cast(*test, malloc(sizeof(test))); - let inst2 = cast(*test, malloc(sizeof(test))); - - print_struct(inst); - - (*inst).x = 4; - (*inst).y = "hi"; - (*inst).z = inst2; - - (*inst2).y = "bye"; - - print_struct(inst); - - return 0; -}; - -/* - -Expected stdout: - -X: 0 -Y: (null) -X: 4 -Y: hi - -Expected return: 0 - -*/ |