summaryrefslogtreecommitdiffstats
path: root/compile.c
diff options
context:
space:
mode:
authorStephen Dolan <mu@netsoc.tcd.ie>2012-12-29 16:43:36 +0000
committerStephen Dolan <mu@netsoc.tcd.ie>2012-12-29 16:43:36 +0000
commitd5fdf70434a243e6f3bd6967dbc2d28c9144cb29 (patch)
tree17901a90c2a2ff0a2219fa9bab9a340af95e36c7 /compile.c
parent465a4ec565a106e0e4cc1d64214fb2d6d791c8dc (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.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/compile.c b/compile.c
index 178b0463..08187836 100644
--- a/compile.c
+++ b/compile.c
@@ -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"),