ReefVM/examples/variadic.reef
2025-10-05 22:24:43 -07:00

40 lines
405 B
Plaintext

; Variadic function that sums all arguments
MAKE_FUNCTION (x ...rest) .sum_body
PUSH 5
PUSH 10
PUSH 15
PUSH 20
PUSH 4
PUSH 0
CALL
HALT
.sum_body:
LOAD x
STORE sum
PUSH 0
STORE i
.loop_start:
LOAD i
LOAD rest
ARRAY_LEN
LT
JUMP_IF_FALSE .loop_end
LOAD sum
LOAD rest
LOAD i
ARRAY_GET
ADD
STORE sum
LOAD i
PUSH 1
ADD
STORE i
JUMP .loop_start
.loop_end:
LOAD sum
RETURN