ref: remove backpatch table in walker
This commit is contained in:
@@ -30,9 +30,6 @@ typedef struct
|
||||
|
||||
fzl_symtable_t *syms[64];
|
||||
size_t sym_top;
|
||||
|
||||
size_t bp_table[64];
|
||||
size_t bp_top;
|
||||
} fzl_walker_t;
|
||||
|
||||
// Allocate new walker
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
// TODO: implement backpatching struct for jumping on if/else blocks
|
||||
// TODO: implement conditional binops; conditions
|
||||
|
||||
char wlast_err[256];
|
||||
|
||||
fzl_walker_t *fzl_mkwalker(fzl_node_t *root)
|
||||
@@ -55,9 +52,6 @@ fzl_walker_t *fzl_mkwalker(fzl_node_t *root)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(walker->bp_table, 0, sizeof(walker->bp_table));
|
||||
walker->bp_top = 0;
|
||||
|
||||
return walker;
|
||||
}
|
||||
|
||||
@@ -569,12 +563,6 @@ int fzl_walk(fzl_walker_t *walker)
|
||||
fzl_walk_res_t result = walk(walker, walker->root);
|
||||
push_op(walker, FZL_OPCODE_RM_ENVTABLE);
|
||||
|
||||
if (walker->bp_top > 0)
|
||||
{
|
||||
snprintf(wlast_err, sizeof(wlast_err), "unfinished conditional block");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (result.error && !wlast_err[0])
|
||||
snprintf(wlast_err, sizeof(wlast_err), "%s", result.error_msg);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user