Recursive functions + bugfix for stack reallocation.

This commit is contained in:
Stephen Dolan committed 2012-09-17 22:32:06 +01:00
1 parent cbdeddbab8
commit 49cf2e67fe
5 files changed
+32 -10

No files matched your search

+2 -2
View File
@@ -165,14 +165,14 @@ program: Exp { *answer = $1; }
Exp:
"def" IDENT ':' Exp ';' Exp {
block body = block_join($4, gen_op_simple(RET));
$$ = block_bind(gen_op_block_defn(CLOSURE_CREATE, jv_string_value($2), body),
$$ = block_bind(gen_op_block_defn_rec(CLOSURE_CREATE, jv_string_value($2), body),
$6, OP_IS_CALL_PSEUDO);
jv_free($2);
} |
"def" IDENT '(' IDENT ')' ':' Exp ';' Exp {
block body = block_bind(gen_op_block_unbound(CLOSURE_PARAM, jv_string_value($4)), block_join($7, gen_op_simple(RET)), OP_IS_CALL_PSEUDO);
$$ = block_bind(gen_op_block_defn(CLOSURE_CREATE, jv_string_value($2), body), $9, OP_IS_CALL_PSEUDO);
$$ = block_bind(gen_op_block_defn_rec(CLOSURE_CREATE, jv_string_value($2), body), $9, OP_IS_CALL_PSEUDO);
jv_free($2);
jv_free($4);
} |