42 lines
606 B
Zig
42 lines
606 B
Zig
export executable "arrays";
|
|
|
|
#link("c")
|
|
extern {
|
|
fn puts(s: *const u8) -> i32;
|
|
fn exit(code: i32) -> unreachable;
|
|
}
|
|
|
|
export fn _start() -> unreachable {
|
|
let mut array : [i32; 5];
|
|
|
|
let mut i = 0;
|
|
loop_start:
|
|
if i == 5 {
|
|
goto loop_end;
|
|
}
|
|
array[i] = i + 1;
|
|
i = array[i];
|
|
goto loop_start;
|
|
|
|
loop_end:
|
|
|
|
i = 0;
|
|
let mut accumulator = 0;
|
|
loop_2_start:
|
|
if i == 5 {
|
|
goto loop_2_end;
|
|
}
|
|
|
|
accumulator = accumulator + array[i];
|
|
|
|
i = i + 1;
|
|
goto loop_2_start;
|
|
loop_2_end:
|
|
|
|
if accumulator == 15 {
|
|
puts("OK");
|
|
}
|
|
|
|
exit(0);
|
|
}
|