diff options
author | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-12-29 16:43:36 +0000 |
---|---|---|
committer | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-12-29 16:43:36 +0000 |
commit | d5fdf70434a243e6f3bd6967dbc2d28c9144cb29 (patch) | |
tree | 17901a90c2a2ff0a2219fa9bab9a340af95e36c7 /compile.c | |
parent | 465a4ec565a106e0e4cc1d64214fb2d6d791c8dc (diff) |
Refactor assignment.
New version is much more elegant and probably slower. Uses
library functions implemented in jq rather than dedicated opcodes.
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 16 |
1 files changed, 0 insertions, 16 deletions
@@ -317,22 +317,6 @@ block gen_fold(const char* varname, block init, block fold) { OP_HAS_VARIABLE)); } -block gen_assign(block expr) { - block result_var = block_bind(gen_op_var_unbound(STOREV, "result"), - gen_noop(), OP_HAS_VARIABLE); - - block loop = BLOCK(gen_op_simple(DUP), - expr, - gen_op_var_bound(ASSIGN, result_var), - gen_op_simple(BACKTRACK)); - - return BLOCK(gen_op_simple(DUP), - result_var, - gen_op_target(FORK, loop), - loop, - gen_op_var_bound(LOADV, result_var)); -} - block gen_definedor(block a, block b) { // var found := false block found_var = block_bind(gen_op_var_unbound(STOREV, "found"), |