(* TEST readonly_files = "main.c"; arguments = "-DINT_INT -DFUN=is_even main.c"; asmgen; *) ("format_odd": string "odd %d\n\000") ("format_even": string "even %d\n\000") (function "force_spill" (a:int) 0) (function "is_even" (b:int) (catch (exit even b) with (odd v:val) (if (== v 0) 0 (seq (extcall "printf_int" "format_odd" v unit) (let v2 (- v 1) (app "force_spill" 0 int) (exit even v2)))) and (even v:val) (if (== v 0) 1 (seq (extcall "printf_int" "format_even" v unit) (exit odd (- v 1))))))