fixed assertion expressions in run_switch()
This commit is contained in:
266
lib/run.c
266
lib/run.c
@ -206,7 +206,7 @@ HAWK_INLINE hawk_val_t* hawk_rtx_getarg (hawk_rtx_t* rtx, hawk_oow_t idx)
|
||||
|
||||
HAWK_INLINE hawk_val_t* hawk_rtx_getgbl (hawk_rtx_t* rtx, int id)
|
||||
{
|
||||
HAWK_ASSERT (id >= 0 && id < (int)HAWK_ARR_SIZE(rtx->hawk->parse.gbls));
|
||||
HAWK_ASSERT(id >= 0 && id < (int)HAWK_ARR_SIZE(rtx->hawk->parse.gbls));
|
||||
return HAWK_RTX_STACK_GBL(rtx, id);
|
||||
}
|
||||
|
||||
@ -370,7 +370,7 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t
|
||||
|
||||
/* due to the expression evaluation rule, the
|
||||
* regular expression can not be an assigned value */
|
||||
HAWK_ASSERT (vtype != HAWK_VAL_REX);
|
||||
HAWK_ASSERT(vtype != HAWK_VAL_REX);
|
||||
|
||||
fs_ptr = hawk_rtx_getvaloocstr(rtx, val, &fs_len);
|
||||
if (HAWK_UNLIKELY(!fs_ptr)) return -1;
|
||||
@ -550,7 +550,7 @@ static int set_global (hawk_rtx_t* rtx, int idx, hawk_nde_var_t* var, hawk_val_t
|
||||
/* due to the expression evaluation rule, the
|
||||
* regular expression can not be an assigned
|
||||
* value */
|
||||
HAWK_ASSERT (vtype != HAWK_VAL_REX);
|
||||
HAWK_ASSERT(vtype != HAWK_VAL_REX);
|
||||
|
||||
rss.ptr = hawk_rtx_getvaloocstr(rtx, val, &rss.len);
|
||||
if (!rss.ptr) return -1;
|
||||
@ -651,7 +651,7 @@ HAWK_INLINE void hawk_rtx_setretval (hawk_rtx_t* rtx, hawk_val_t* val)
|
||||
|
||||
HAWK_INLINE int hawk_rtx_setgbl (hawk_rtx_t* rtx, int id, hawk_val_t* val)
|
||||
{
|
||||
HAWK_ASSERT (id >= 0 && id < (int)HAWK_ARR_SIZE(rtx->hawk->parse.gbls));
|
||||
HAWK_ASSERT(id >= 0 && id < (int)HAWK_ARR_SIZE(rtx->hawk->parse.gbls));
|
||||
return set_global(rtx, id, HAWK_NULL, val, 0);
|
||||
}
|
||||
|
||||
@ -660,7 +660,7 @@ int hawk_rtx_setgbltostrbyname (hawk_rtx_t* rtx, const hawk_ooch_t* name, const
|
||||
int id, n;
|
||||
hawk_val_t* v;
|
||||
|
||||
HAWK_ASSERT (hawk_isvalidident(hawk_rtx_gethawk(rtx), name));
|
||||
HAWK_ASSERT(hawk_isvalidident(hawk_rtx_gethawk(rtx), name));
|
||||
|
||||
id = hawk_findgblwithoocstr(hawk_rtx_gethawk(rtx), name, 1);
|
||||
v = hawk_rtx_makestrvalwithoocstr(rtx, val);
|
||||
@ -949,7 +949,7 @@ void hawk_rtx_close (hawk_rtx_t* rtx)
|
||||
}
|
||||
|
||||
do { ecb = hawk_rtx_popecb(rtx); } while (ecb);
|
||||
HAWK_ASSERT (rtx->ecb == (hawk_rtx_ecb_t*)rtx);
|
||||
HAWK_ASSERT(rtx->ecb == (hawk_rtx_ecb_t*)rtx);
|
||||
|
||||
/* NOTE:
|
||||
* the close callbacks are called before data in rtx
|
||||
@ -1193,7 +1193,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals)
|
||||
/* close all pending io's */
|
||||
/* TODO: what if this operation fails? */
|
||||
hawk_rtx_clearallios (rtx);
|
||||
HAWK_ASSERT (rtx->rio.chain == HAWK_NULL);
|
||||
HAWK_ASSERT(rtx->rio.chain == HAWK_NULL);
|
||||
|
||||
if (rtx->gbl.rs[0])
|
||||
{
|
||||
@ -1284,7 +1284,7 @@ static void fini_rtx (hawk_rtx_t* rtx, int fini_globals)
|
||||
/* destroy the stack if necessary */
|
||||
if (rtx->stack)
|
||||
{
|
||||
HAWK_ASSERT (rtx->stack_top == 0);
|
||||
HAWK_ASSERT(rtx->stack_top == 0);
|
||||
|
||||
hawk_rtx_freemem(rtx, rtx->stack);
|
||||
rtx->stack = HAWK_NULL;
|
||||
@ -1455,7 +1455,7 @@ static int defaultify_globals (hawk_rtx_t* rtx)
|
||||
|
||||
hawk_rtx_refupval(rtx, tmp);
|
||||
|
||||
HAWK_ASSERT (HAWK_RTX_STACK_GBL(rtx,gtab[i].idx) == hawk_val_nil);
|
||||
HAWK_ASSERT(HAWK_RTX_STACK_GBL(rtx,gtab[i].idx) == hawk_val_nil);
|
||||
|
||||
if (hawk_rtx_setgbl(rtx, gtab[i].idx, tmp) == -1)
|
||||
{
|
||||
@ -1491,8 +1491,8 @@ static void refdown_globals (hawk_rtx_t* rtx, int pop)
|
||||
static int init_globals (hawk_rtx_t* rtx)
|
||||
{
|
||||
/* the stack must be clean when this function is invoked */
|
||||
HAWK_ASSERT (rtx->stack_base == 0);
|
||||
HAWK_ASSERT (rtx->stack_top == 0);
|
||||
HAWK_ASSERT(rtx->stack_base == 0);
|
||||
HAWK_ASSERT(rtx->stack_top == 0);
|
||||
|
||||
if (prepare_globals(rtx) <= -1) return -1;
|
||||
if (update_fnr(rtx, 0, 0) <= -1 || defaultify_globals(rtx) <= -1) goto oops;
|
||||
@ -1537,7 +1537,7 @@ static hawk_val_t* run_bpae_loop (hawk_rtx_t* rtx)
|
||||
hawk_nde_blk_t* blk;
|
||||
|
||||
blk = (hawk_nde_blk_t*)nde;
|
||||
HAWK_ASSERT (blk->type == HAWK_NDE_BLK);
|
||||
HAWK_ASSERT(blk->type == HAWK_NDE_BLK);
|
||||
|
||||
rtx->active_block = blk;
|
||||
rtx->exit_level = EXIT_NONE;
|
||||
@ -1582,7 +1582,7 @@ static hawk_val_t* run_bpae_loop (hawk_rtx_t* rtx)
|
||||
hawk_nde_blk_t* blk;
|
||||
|
||||
blk = (hawk_nde_blk_t*)nde;
|
||||
HAWK_ASSERT (blk->type == HAWK_NDE_BLK);
|
||||
HAWK_ASSERT(blk->type == HAWK_NDE_BLK);
|
||||
|
||||
rtx->active_block = blk;
|
||||
rtx->exit_level = EXIT_NONE;
|
||||
@ -1609,7 +1609,7 @@ static hawk_val_t* run_bpae_loop (hawk_rtx_t* rtx)
|
||||
* pushed to the stack as asserted below. we didn't push any arguments
|
||||
* for BEGIN/pattern action/END block execution.*/
|
||||
nargs = (hawk_oow_t)HAWK_RTX_STACK_NARGS(rtx);
|
||||
HAWK_ASSERT (nargs == 0);
|
||||
HAWK_ASSERT(nargs == 0);
|
||||
for (i = 0; i < nargs; i++)
|
||||
hawk_rtx_refdownval(rtx, HAWK_RTX_STACK_ARG(rtx,i));
|
||||
|
||||
@ -1658,7 +1658,7 @@ hawk_val_t* hawk_rtx_loop (hawk_rtx_t* rtx)
|
||||
retv = run_bpae_loop(rtx);
|
||||
|
||||
/* exit the stack frame */
|
||||
HAWK_ASSERT ((rtx->stack_top - rtx->stack_base) == 4); /* at this point, the current stack frame should have the 4 entries pushed above */
|
||||
HAWK_ASSERT((rtx->stack_top - rtx->stack_base) == 4); /* at this point, the current stack frame should have the 4 entries pushed above */
|
||||
rtx->stack_top = (hawk_oow_t)rtx->stack[rtx->stack_base + 1];
|
||||
rtx->stack_base = (hawk_oow_t)rtx->stack[rtx->stack_base + 0];
|
||||
|
||||
@ -1758,7 +1758,7 @@ hawk_val_t* hawk_rtx_callfun (hawk_rtx_t* rtx, hawk_fun_t* fun, hawk_val_t* args
|
||||
struct pafv_t pafv/*= { args, nargs }*/;
|
||||
hawk_nde_fncall_t call;
|
||||
|
||||
HAWK_ASSERT (fun != HAWK_NULL);
|
||||
HAWK_ASSERT(fun != HAWK_NULL);
|
||||
|
||||
pafv.args = args;
|
||||
pafv.nargs = nargs;
|
||||
@ -2082,8 +2082,8 @@ static int run_pblock (hawk_rtx_t* rtx, hawk_chain_t* cha, hawk_oow_t bno)
|
||||
else
|
||||
{
|
||||
/* pattern, pattern { ... } */
|
||||
HAWK_ASSERT (ptn->next->next == HAWK_NULL);
|
||||
HAWK_ASSERT (rtx->pattern_range_state != HAWK_NULL);
|
||||
HAWK_ASSERT(ptn->next->next == HAWK_NULL);
|
||||
HAWK_ASSERT(rtx->pattern_range_state != HAWK_NULL);
|
||||
|
||||
if (rtx->pattern_range_state[bno] == 0)
|
||||
{
|
||||
@ -2146,7 +2146,7 @@ static HAWK_INLINE int run_block0 (hawk_rtx_t* rtx, hawk_nde_blk_t* nde)
|
||||
return 0;
|
||||
}
|
||||
|
||||
HAWK_ASSERT (nde->type == HAWK_NDE_BLK);
|
||||
HAWK_ASSERT(nde->type == HAWK_NDE_BLK);
|
||||
/*saved_stack_top = rtx->stack_top;*/
|
||||
|
||||
#if defined(DEBUG_RUN)
|
||||
@ -2286,7 +2286,7 @@ static int run_statement (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
case HAWK_NDE_CASE:
|
||||
/* this must never happen - run_swtich must handle this part */
|
||||
HAWK_ASSERT (!"should never happen - HAWK_NDE_CASE must not be fed to run_statement");
|
||||
HAWK_ASSERT(!"should never happen - HAWK_NDE_CASE must not be fed to run_statement");
|
||||
hawk_rtx_seterrnum(rtx, &nde->loc, HAWK_EINTERN);
|
||||
xret = -1;
|
||||
break;
|
||||
@ -2371,7 +2371,7 @@ static int run_if (hawk_rtx_t* rtx, hawk_nde_if_t* nde)
|
||||
/* the test expression for the if statement cannot have
|
||||
* chained expressions. this should not be allowed by the
|
||||
* parser first of all */
|
||||
HAWK_ASSERT (nde->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->test->next == HAWK_NULL);
|
||||
|
||||
test = eval_expression(rtx, nde->test);
|
||||
if (HAWK_UNLIKELY(!test)) return -1;
|
||||
@ -2399,19 +2399,21 @@ static int run_switch (hawk_rtx_t* rtx, hawk_nde_switch_t* nde)
|
||||
int eval_true = 0;
|
||||
int ret = 0;
|
||||
|
||||
/* the test expression for the if statement cannot have
|
||||
/* the expression for the switch statement cannot have
|
||||
* chained expressions. this should not be allowed by the
|
||||
* parser first of all */
|
||||
HAWK_ASSERT (nde->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->type == HAWK_NDE_SWITCH);
|
||||
HAWK_ASSERT(nde->test->next == HAWK_NULL);
|
||||
|
||||
test = eval_expression(rtx, nde->test);
|
||||
if (HAWK_UNLIKELY(!test)) return -1;
|
||||
|
||||
hawk_rtx_refupval(rtx, test);
|
||||
|
||||
HAWK_ASSERT(nde->type == HAWK_NDE_CASE);
|
||||
case_part = (hawk_nde_case_t*)nde->case_part;
|
||||
default_part = (hawk_nde_case_t*)nde->default_part;
|
||||
HAWK_ASSERT(case_part->type == HAWK_NDE_CASE);
|
||||
HAWK_ASSERT(default_part->type == HAWK_NDE_CASE);
|
||||
|
||||
while (case_part)
|
||||
{
|
||||
@ -2511,7 +2513,7 @@ static int run_while (hawk_rtx_t* rtx, hawk_nde_while_t* nde)
|
||||
{
|
||||
/* no chained expressions are allowed for the test
|
||||
* expression of the while statement */
|
||||
HAWK_ASSERT (nde->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->test->next == HAWK_NULL);
|
||||
|
||||
while (1)
|
||||
{
|
||||
@ -2554,7 +2556,7 @@ static int run_while (hawk_rtx_t* rtx, hawk_nde_while_t* nde)
|
||||
{
|
||||
/* no chained expressions are allowed for the test
|
||||
* expression of the while statement */
|
||||
HAWK_ASSERT (nde->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->test->next == HAWK_NULL);
|
||||
|
||||
do
|
||||
{
|
||||
@ -2598,7 +2600,7 @@ static int run_for (hawk_rtx_t* rtx, hawk_nde_for_t* nde)
|
||||
|
||||
if (nde->init)
|
||||
{
|
||||
HAWK_ASSERT (nde->init->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->init->next == HAWK_NULL);
|
||||
|
||||
ON_STATEMENT (rtx, nde->init);
|
||||
val = eval_expression(rtx,nde->init);
|
||||
@ -2616,7 +2618,7 @@ static int run_for (hawk_rtx_t* rtx, hawk_nde_for_t* nde)
|
||||
|
||||
/* no chained expressions for the test expression of
|
||||
* the for statement are allowed */
|
||||
HAWK_ASSERT (nde->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->test->next == HAWK_NULL);
|
||||
|
||||
ON_STATEMENT (rtx, nde->test);
|
||||
test = eval_expression(rtx, nde->test);
|
||||
@ -2657,7 +2659,7 @@ static int run_for (hawk_rtx_t* rtx, hawk_nde_for_t* nde)
|
||||
|
||||
if (nde->incr != HAWK_NULL)
|
||||
{
|
||||
HAWK_ASSERT (nde->incr->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->incr->next == HAWK_NULL);
|
||||
|
||||
ON_STATEMENT (rtx, nde->incr);
|
||||
val = eval_expression(rtx, nde->incr);
|
||||
@ -2680,10 +2682,10 @@ static int run_forin (hawk_rtx_t* rtx, hawk_nde_forin_t* nde)
|
||||
int ret;
|
||||
|
||||
test = (hawk_nde_exp_t*)nde->test;
|
||||
HAWK_ASSERT (test->type == HAWK_NDE_EXP_BIN && test->opcode == HAWK_BINOP_IN);
|
||||
HAWK_ASSERT(test->type == HAWK_NDE_EXP_BIN && test->opcode == HAWK_BINOP_IN);
|
||||
|
||||
/* chained expressions should not be allowed by the parser first of all */
|
||||
HAWK_ASSERT (test->right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(test->right->next == HAWK_NULL);
|
||||
|
||||
rv = eval_expression(rtx, test->right);
|
||||
if (HAWK_UNLIKELY(!rv)) return -1;
|
||||
@ -2894,7 +2896,7 @@ static int run_return (hawk_rtx_t* rtx, hawk_nde_return_t* nde)
|
||||
|
||||
/* chained expressions should not be allowed
|
||||
* by the parser first of all */
|
||||
HAWK_ASSERT (nde->val->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->val->next == HAWK_NULL);
|
||||
|
||||
val = eval_expression(rtx, nde->val);
|
||||
if (HAWK_UNLIKELY(!val)) return -1;
|
||||
@ -2932,7 +2934,7 @@ static int run_exit (hawk_rtx_t* rtx, hawk_nde_exit_t* nde)
|
||||
|
||||
/* chained expressions should not be allowed
|
||||
* by the parser first of all */
|
||||
HAWK_ASSERT (nde->val->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->val->next == HAWK_NULL);
|
||||
|
||||
val = eval_expression(rtx, nde->val);
|
||||
if (HAWK_UNLIKELY(!val)) return -1;
|
||||
@ -3058,7 +3060,7 @@ static hawk_val_t* assign_newmapval_in_map (hawk_rtx_t* rtx, hawk_map_t* contain
|
||||
return HAWK_NULL;
|
||||
}
|
||||
|
||||
HAWK_ASSERT (tmp == HAWK_MAP_VPTR(pair));
|
||||
HAWK_ASSERT(tmp == HAWK_MAP_VPTR(pair));
|
||||
return tmp;
|
||||
}
|
||||
|
||||
@ -3106,7 +3108,7 @@ static hawk_val_t* fetch_topval_from_var (hawk_rtx_t* rtx, hawk_nde_var_t* var)
|
||||
break;
|
||||
|
||||
default:
|
||||
HAWK_ASSERT (var->type == HAWK_NDE_ARG || var->type == HAWK_NDE_ARGIDX);
|
||||
HAWK_ASSERT(var->type == HAWK_NDE_ARG || var->type == HAWK_NDE_ARGIDX);
|
||||
val = HAWK_RTX_STACK_ARG(rtx, var->id.idxa);
|
||||
break;
|
||||
}
|
||||
@ -3179,7 +3181,7 @@ static hawk_val_t* assign_newmapval_to_var (hawk_rtx_t* rtx, hawk_nde_var_t* var
|
||||
{
|
||||
hawk_val_t* tmp;
|
||||
|
||||
HAWK_ASSERT (var->type >= HAWK_NDE_NAMED && var->type <= HAWK_NDE_ARGIDX);
|
||||
HAWK_ASSERT(var->type >= HAWK_NDE_NAMED && var->type <= HAWK_NDE_ARGIDX);
|
||||
|
||||
tmp = hawk_rtx_makemapval(rtx);
|
||||
if (HAWK_UNLIKELY(!tmp))
|
||||
@ -3205,7 +3207,7 @@ static HAWK_INLINE int delete_indexed (hawk_rtx_t* rtx, hawk_val_t* vv, hawk_nde
|
||||
hawk_nde_t* remidx;
|
||||
hawk_val_type_t vtype;
|
||||
|
||||
HAWK_ASSERT (var->idx != HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx != HAWK_NULL);
|
||||
|
||||
/* delete x["abc"];
|
||||
* delete x[20,"abc"]; */
|
||||
@ -3220,7 +3222,7 @@ static HAWK_INLINE int delete_indexed (hawk_rtx_t* rtx, hawk_val_t* vv, hawk_nde
|
||||
}
|
||||
else
|
||||
{
|
||||
HAWK_ASSERT (vtype == HAWK_VAL_ARR);
|
||||
HAWK_ASSERT(vtype == HAWK_VAL_ARR);
|
||||
idx = idxnde_to_int(rtx, var->idx, &remidx);
|
||||
if (HAWK_UNLIKELY(idx <= -1)) goto oops;
|
||||
arr = ((hawk_val_arr_t*)vv)->arr;
|
||||
@ -3311,7 +3313,7 @@ static int run_delete (hawk_rtx_t* rtx, hawk_nde_delete_t* nde)
|
||||
var = (hawk_nde_var_t*)nde->var;
|
||||
|
||||
val = fetch_topval_from_var(rtx, var);
|
||||
HAWK_ASSERT (val != HAWK_NULL);
|
||||
HAWK_ASSERT(val != HAWK_NULL);
|
||||
|
||||
vtype = HAWK_RTX_GETVALTYPE(rtx, val);
|
||||
switch (vtype)
|
||||
@ -3373,13 +3375,13 @@ static int run_reset (hawk_rtx_t* rtx, hawk_nde_reset_t* nde)
|
||||
|
||||
var = (hawk_nde_var_t*)nde->var;
|
||||
|
||||
HAWK_ASSERT (var->type >= HAWK_NDE_NAMED && var->type <= HAWK_NDE_ARG);
|
||||
HAWK_ASSERT(var->type >= HAWK_NDE_NAMED && var->type <= HAWK_NDE_ARG);
|
||||
|
||||
switch (var->type)
|
||||
{
|
||||
case HAWK_NDE_NAMED:
|
||||
/* if a named variable has an index part, something is definitely wrong */
|
||||
HAWK_ASSERT (var->idx == HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx == HAWK_NULL);
|
||||
|
||||
/* a named variable can be reset if removed from the internal map to manage it */
|
||||
hawk_htb_delete (rtx->named, var->id.name.ptr, var->id.name.len);
|
||||
@ -3391,10 +3393,10 @@ static int run_reset (hawk_rtx_t* rtx, hawk_nde_reset_t* nde)
|
||||
{
|
||||
hawk_val_t* val;
|
||||
|
||||
HAWK_ASSERT (var->idx == HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx == HAWK_NULL);
|
||||
|
||||
val = fetch_topval_from_var(rtx, var);
|
||||
HAWK_ASSERT (val != HAWK_NULL);
|
||||
HAWK_ASSERT(val != HAWK_NULL);
|
||||
|
||||
if (HAWK_RTX_GETVALTYPE(rtx, val) != HAWK_VAL_NIL)
|
||||
{
|
||||
@ -3405,7 +3407,7 @@ static int run_reset (hawk_rtx_t* rtx, hawk_nde_reset_t* nde)
|
||||
|
||||
default:
|
||||
/* the reset statement can only be called with plain variables */
|
||||
HAWK_ASSERT (!"should never happen - wrong target for @reset");
|
||||
HAWK_ASSERT(!"should never happen - wrong target for @reset");
|
||||
hawk_rtx_seterrnum(rtx, &var->loc, HAWK_EBADARG);
|
||||
return -1;
|
||||
}
|
||||
@ -3455,7 +3457,7 @@ static int run_print (hawk_rtx_t* rtx, hawk_nde_print_t* nde)
|
||||
hawk_val_t* out_v = HAWK_NULL;
|
||||
int n, xret = 0;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
(nde->out_type == HAWK_OUT_PIPE && nde->out != HAWK_NULL) ||
|
||||
(nde->out_type == HAWK_OUT_RWPIPE && nde->out != HAWK_NULL) ||
|
||||
(nde->out_type == HAWK_OUT_FILE && nde->out != HAWK_NULL) ||
|
||||
@ -3501,7 +3503,7 @@ static int run_print (hawk_rtx_t* rtx, hawk_nde_print_t* nde)
|
||||
if (nde->args->type == HAWK_NDE_GRP)
|
||||
{
|
||||
/* parenthesized print */
|
||||
HAWK_ASSERT (nde->args->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->args->next == HAWK_NULL);
|
||||
head = ((hawk_nde_grp_t*)nde->args)->body;
|
||||
}
|
||||
else head = nde->args;
|
||||
@ -3591,7 +3593,7 @@ static int run_printf (hawk_rtx_t* rtx, hawk_nde_print_t* nde)
|
||||
hawk_nde_t* head;
|
||||
int n, xret = 0;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
(nde->out_type == HAWK_OUT_PIPE && nde->out != HAWK_NULL) ||
|
||||
(nde->out_type == HAWK_OUT_RWPIPE && nde->out != HAWK_NULL) ||
|
||||
(nde->out_type == HAWK_OUT_FILE && nde->out != HAWK_NULL) ||
|
||||
@ -3610,18 +3612,18 @@ static int run_printf (hawk_rtx_t* rtx, hawk_nde_print_t* nde)
|
||||
}
|
||||
|
||||
/*( valid printf statement should have at least one argument. the parser must ensure this. */
|
||||
HAWK_ASSERT (nde->args != HAWK_NULL);
|
||||
HAWK_ASSERT(nde->args != HAWK_NULL);
|
||||
|
||||
if (nde->args->type == HAWK_NDE_GRP)
|
||||
{
|
||||
/* parenthesized print */
|
||||
HAWK_ASSERT (nde->args->next == HAWK_NULL);
|
||||
HAWK_ASSERT(nde->args->next == HAWK_NULL);
|
||||
head = ((hawk_nde_grp_t*)nde->args)->body;
|
||||
}
|
||||
else head = nde->args;
|
||||
|
||||
/* valid printf statement should have at least one argument. the parser must ensure this */
|
||||
HAWK_ASSERT (head != HAWK_NULL);
|
||||
HAWK_ASSERT(head != HAWK_NULL);
|
||||
|
||||
v = eval_expression(rtx, head);
|
||||
if (HAWK_UNLIKELY(!v)) goto oops_1;
|
||||
@ -3778,7 +3780,7 @@ static hawk_val_t* eval_expression (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
#if 0
|
||||
/* the internal value representing $0 should always be of the string type
|
||||
* once it has been set/updated. it is nil initially. */
|
||||
HAWK_ASSERT (HAWK_RTX_GETVALTYPE(rtx, rtx->inrec.d0) == HAWK_VAL_STR);
|
||||
HAWK_ASSERT(HAWK_RTX_GETVALTYPE(rtx, rtx->inrec.d0) == HAWK_VAL_STR);
|
||||
vs.ptr = ((hawk_val_str_t*)rtx->inrec.d0)->val.ptr;
|
||||
vs.len = ((hawk_val_str_t*)rtx->inrec.d0)->val.len;
|
||||
#else
|
||||
@ -3804,7 +3806,7 @@ static hawk_val_t* eval_expression (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
|
||||
v = hawk_rtx_makeintval(rtx, (n != 0));
|
||||
HAWK_ASSERT (v != HAWK_NULL); /* this will never fail as the value is 0 or 1 */
|
||||
HAWK_ASSERT(v != HAWK_NULL); /* this will never fail as the value is 0 or 1 */
|
||||
}
|
||||
|
||||
return v;
|
||||
@ -3854,7 +3856,7 @@ static hawk_val_t* eval_expression0 (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
hawk_val_t* v;
|
||||
|
||||
HAWK_ASSERT (nde->type >= HAWK_NDE_GRP && (nde->type - HAWK_NDE_GRP) < HAWK_COUNTOF(__evaluator));
|
||||
HAWK_ASSERT(nde->type >= HAWK_NDE_GRP && (nde->type - HAWK_NDE_GRP) < HAWK_COUNTOF(__evaluator));
|
||||
|
||||
v = __evaluator[nde->type - HAWK_NDE_GRP](rtx, nde);
|
||||
|
||||
@ -3881,7 +3883,7 @@ static hawk_val_t* eval_group (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
#if 0
|
||||
/* eval_binop_in evaluates the HAWK_NDE_GRP specially.
|
||||
* so this function should never be reached. */
|
||||
HAWK_ASSERT (!"should never happen - NDE_GRP only for in");
|
||||
HAWK_ASSERT(!"should never happen - NDE_GRP only for in");
|
||||
hawk_rtx_seterrnum(rtx, &nde->loc, HAWK_EINTERN);
|
||||
return HAWK_NULL;
|
||||
#endif
|
||||
@ -3901,7 +3903,7 @@ static hawk_val_t* eval_group (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
np = ((hawk_nde_grp_t*)nde)->body;
|
||||
|
||||
HAWK_ASSERT (np != HAWK_NULL);
|
||||
HAWK_ASSERT(np != HAWK_NULL);
|
||||
|
||||
loop:
|
||||
val = eval_expression(rtx, np);
|
||||
@ -3923,10 +3925,10 @@ static hawk_val_t* eval_assignment (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_val_t* val, * ret;
|
||||
hawk_nde_ass_t* ass = (hawk_nde_ass_t*)nde;
|
||||
|
||||
HAWK_ASSERT (ass->left != HAWK_NULL);
|
||||
HAWK_ASSERT (ass->right != HAWK_NULL);
|
||||
HAWK_ASSERT(ass->left != HAWK_NULL);
|
||||
HAWK_ASSERT(ass->right != HAWK_NULL);
|
||||
|
||||
HAWK_ASSERT (ass->right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(ass->right->next == HAWK_NULL);
|
||||
val = eval_expression(rtx, ass->right);
|
||||
if (HAWK_UNLIKELY(!val)) return HAWK_NULL;
|
||||
|
||||
@ -3954,7 +3956,7 @@ static hawk_val_t* eval_assignment (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
eval_binop_bor
|
||||
};
|
||||
|
||||
HAWK_ASSERT (ass->left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(ass->left->next == HAWK_NULL);
|
||||
val2 = eval_expression(rtx, ass->left);
|
||||
if (HAWK_UNLIKELY(!val2))
|
||||
{
|
||||
@ -3964,9 +3966,9 @@ static hawk_val_t* eval_assignment (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
hawk_rtx_refupval(rtx, val2);
|
||||
|
||||
HAWK_ASSERT (ass->opcode >= 0);
|
||||
HAWK_ASSERT (ass->opcode < HAWK_COUNTOF(binop_func));
|
||||
HAWK_ASSERT (binop_func[ass->opcode] != HAWK_NULL);
|
||||
HAWK_ASSERT(ass->opcode >= 0);
|
||||
HAWK_ASSERT(ass->opcode < HAWK_COUNTOF(binop_func));
|
||||
HAWK_ASSERT(binop_func[ass->opcode] != HAWK_NULL);
|
||||
|
||||
tmp = binop_func[ass->opcode](rtx, val2, val);
|
||||
if (HAWK_UNLIKELY(!tmp))
|
||||
@ -4037,7 +4039,7 @@ static hawk_val_t* do_assignment (hawk_rtx_t* rtx, hawk_nde_t* var, hawk_val_t*
|
||||
}
|
||||
|
||||
default:
|
||||
HAWK_ASSERT (!"should never happen - invalid variable type");
|
||||
HAWK_ASSERT(!"should never happen - invalid variable type");
|
||||
errnum = HAWK_EINTERN;
|
||||
goto exit_on_error;
|
||||
}
|
||||
@ -4053,14 +4055,14 @@ static hawk_val_t* do_assignment_nonindexed (hawk_rtx_t* rtx, hawk_nde_var_t* va
|
||||
{
|
||||
hawk_val_type_t vtype;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
var->type == HAWK_NDE_NAMED ||
|
||||
var->type == HAWK_NDE_GBL ||
|
||||
var->type == HAWK_NDE_LCL ||
|
||||
var->type == HAWK_NDE_ARG
|
||||
);
|
||||
|
||||
HAWK_ASSERT (var->idx == HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx == HAWK_NULL);
|
||||
vtype = HAWK_RTX_GETVALTYPE (rtx, val);
|
||||
|
||||
switch (var->type)
|
||||
@ -4198,13 +4200,13 @@ static hawk_val_t* do_assignment_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var,
|
||||
hawk_val_t* vv; /* existing value pointed to by var */
|
||||
hawk_val_type_t vtype;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
(var->type == HAWK_NDE_NAMEDIDX ||
|
||||
var->type == HAWK_NDE_GBLIDX ||
|
||||
var->type == HAWK_NDE_LCLIDX ||
|
||||
var->type == HAWK_NDE_ARGIDX) && var->idx != HAWK_NULL);
|
||||
#if !defined(HAWK_ENABLE_GC)
|
||||
HAWK_ASSERT (HAWK_RTX_GETVALTYPE(rtx, val) != HAWK_VAL_MAP &&
|
||||
HAWK_ASSERT(HAWK_RTX_GETVALTYPE(rtx, val) != HAWK_VAL_MAP &&
|
||||
HAWK_RTX_GETVALTYPE(rtx, val) != HAWK_VAL_ARR);
|
||||
#endif
|
||||
|
||||
@ -4455,7 +4457,7 @@ static hawk_val_t* eval_binary (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_nde_exp_t* exp = (hawk_nde_exp_t*)nde;
|
||||
hawk_val_t* left, * right, * res;
|
||||
|
||||
HAWK_ASSERT (exp->type == HAWK_NDE_EXP_BIN);
|
||||
HAWK_ASSERT(exp->type == HAWK_NDE_EXP_BIN);
|
||||
|
||||
switch (exp->opcode)
|
||||
{
|
||||
@ -4481,13 +4483,13 @@ static hawk_val_t* eval_binary (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
break;
|
||||
|
||||
default:
|
||||
HAWK_ASSERT (exp->left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->left->next == HAWK_NULL);
|
||||
left = eval_expression(rtx, exp->left);
|
||||
if (HAWK_UNLIKELY(!left)) return HAWK_NULL;
|
||||
|
||||
hawk_rtx_refupval(rtx, left);
|
||||
|
||||
HAWK_ASSERT (exp->right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->right->next == HAWK_NULL);
|
||||
right = eval_expression(rtx, exp->right);
|
||||
if (HAWK_UNLIKELY(!right))
|
||||
{
|
||||
@ -4497,8 +4499,8 @@ static hawk_val_t* eval_binary (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
hawk_rtx_refupval(rtx, right);
|
||||
|
||||
HAWK_ASSERT (exp->opcode >= 0 && exp->opcode < HAWK_COUNTOF(binop_func));
|
||||
HAWK_ASSERT (binop_func[exp->opcode] != HAWK_NULL);
|
||||
HAWK_ASSERT(exp->opcode >= 0 && exp->opcode < HAWK_COUNTOF(binop_func));
|
||||
HAWK_ASSERT(binop_func[exp->opcode] != HAWK_NULL);
|
||||
|
||||
res = binop_func[exp->opcode](rtx, left, right);
|
||||
if (HAWK_UNLIKELY(!res)) ADJERR_LOC(rtx, &nde->loc);
|
||||
@ -4532,7 +4534,7 @@ static hawk_val_t* eval_binop_lor (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_t
|
||||
/* short-circuit evaluation required special treatment */
|
||||
hawk_val_t* lv, * rv, * res;
|
||||
|
||||
HAWK_ASSERT (left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(left->next == HAWK_NULL);
|
||||
lv = eval_expression(rtx, left);
|
||||
if (HAWK_UNLIKELY(!lv)) return HAWK_NULL;
|
||||
|
||||
@ -4543,7 +4545,7 @@ static hawk_val_t* eval_binop_lor (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_t
|
||||
}
|
||||
else
|
||||
{
|
||||
HAWK_ASSERT (right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(right->next == HAWK_NULL);
|
||||
rv = eval_expression(rtx, right);
|
||||
if (HAWK_UNLIKELY(!rv))
|
||||
{
|
||||
@ -4584,7 +4586,7 @@ static hawk_val_t* eval_binop_land (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_
|
||||
/* short-circuit evaluation required special treatment */
|
||||
hawk_val_t* lv, * rv, * res;
|
||||
|
||||
HAWK_ASSERT (left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(left->next == HAWK_NULL);
|
||||
lv = eval_expression(rtx, left);
|
||||
if (HAWK_UNLIKELY(!lv)) return HAWK_NULL;
|
||||
|
||||
@ -4595,7 +4597,7 @@ static hawk_val_t* eval_binop_land (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_
|
||||
}
|
||||
else
|
||||
{
|
||||
HAWK_ASSERT (right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(right->next == HAWK_NULL);
|
||||
rv = eval_expression(rtx, right);
|
||||
if (HAWK_UNLIKELY(!rv))
|
||||
{
|
||||
@ -4633,7 +4635,7 @@ static hawk_val_t* eval_binop_in (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_t*
|
||||
#endif
|
||||
{
|
||||
/* the compiler should have handled this case */
|
||||
HAWK_ASSERT (!"should never happen - it needs a plain variable");
|
||||
HAWK_ASSERT(!"should never happen - it needs a plain variable");
|
||||
hawk_rtx_seterrnum(rtx, &right->loc, HAWK_EINTERN);
|
||||
return HAWK_NULL;
|
||||
}
|
||||
@ -4654,10 +4656,10 @@ rvalue_ok:
|
||||
*
|
||||
* '(10, 20) in a' is to test for a[10,20] if 'a' is a map.
|
||||
*/
|
||||
HAWK_ASSERT (remidx == HAWK_NULL);
|
||||
HAWK_ASSERT(remidx == HAWK_NULL);
|
||||
|
||||
/* evaluate the right-hand side of the operator */
|
||||
HAWK_ASSERT (right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(right->next == HAWK_NULL);
|
||||
ropv = eval_expression(rtx, right);
|
||||
if (HAWK_UNLIKELY(!ropv))
|
||||
{
|
||||
@ -5362,7 +5364,7 @@ static HAWK_INLINE int __cmp_str_str (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
|
||||
{
|
||||
hawk_flt_t rr;
|
||||
|
||||
HAWK_ASSERT (rs->v_nstr == 2);
|
||||
HAWK_ASSERT(rs->v_nstr == 2);
|
||||
|
||||
rr = hawk_oochars_to_flt(rs->val.ptr, rs->val.len, HAWK_NULL, stripspc);
|
||||
|
||||
@ -5374,7 +5376,7 @@ static HAWK_INLINE int __cmp_str_str (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
|
||||
{
|
||||
hawk_flt_t ll;
|
||||
|
||||
HAWK_ASSERT (ls->v_nstr == 2);
|
||||
HAWK_ASSERT(ls->v_nstr == 2);
|
||||
|
||||
ll = hawk_oochars_to_flt(ls->val.ptr, ls->val.len, HAWK_NULL, stripspc);
|
||||
|
||||
@ -5391,7 +5393,7 @@ static HAWK_INLINE int __cmp_str_str (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
|
||||
{
|
||||
hawk_flt_t rr;
|
||||
|
||||
HAWK_ASSERT (rs->v_nstr == 2);
|
||||
HAWK_ASSERT(rs->v_nstr == 2);
|
||||
|
||||
rr = hawk_oochars_to_flt(rs->val.ptr, rs->val.len, HAWK_NULL, stripspc);
|
||||
|
||||
@ -5743,8 +5745,8 @@ static HAWK_INLINE int __cmp_val (hawk_rtx_t* rtx, hawk_val_t* left, hawk_val_t*
|
||||
return -1;
|
||||
}
|
||||
|
||||
HAWK_ASSERT (lvtype >= HAWK_VAL_NIL && lvtype <= HAWK_VAL_ARR);
|
||||
HAWK_ASSERT (rvtype >= HAWK_VAL_NIL && rvtype <= HAWK_VAL_ARR);
|
||||
HAWK_ASSERT(lvtype >= HAWK_VAL_NIL && lvtype <= HAWK_VAL_ARR);
|
||||
HAWK_ASSERT(rvtype >= HAWK_VAL_NIL && rvtype <= HAWK_VAL_ARR);
|
||||
|
||||
/* mapping fomula and table layout assume:
|
||||
* HAWK_VAL_NIL = 0
|
||||
@ -5953,7 +5955,7 @@ static hawk_val_t* eval_binop_plus (hawk_rtx_t* rtx, hawk_val_t* left, hawk_val_
|
||||
1 1 = 3
|
||||
*/
|
||||
n3 = n1 + (n2 << 1);
|
||||
HAWK_ASSERT (n3 >= 0 && n3 <= 3);
|
||||
HAWK_ASSERT(n3 >= 0 && n3 <= 3);
|
||||
|
||||
return (n3 == 0)? hawk_rtx_makeintval(rtx,(hawk_int_t)l1+(hawk_int_t)l2):
|
||||
(n3 == 1)? hawk_rtx_makefltval(rtx,(hawk_flt_t)r1+(hawk_flt_t)l2):
|
||||
@ -5977,7 +5979,7 @@ static hawk_val_t* eval_binop_minus (hawk_rtx_t* rtx, hawk_val_t* left, hawk_val
|
||||
}
|
||||
|
||||
n3 = n1 + (n2 << 1);
|
||||
HAWK_ASSERT (n3 >= 0 && n3 <= 3);
|
||||
HAWK_ASSERT(n3 >= 0 && n3 <= 3);
|
||||
return (n3 == 0)? hawk_rtx_makeintval(rtx,(hawk_int_t)l1-(hawk_int_t)l2):
|
||||
(n3 == 1)? hawk_rtx_makefltval(rtx,(hawk_flt_t)r1-(hawk_flt_t)l2):
|
||||
(n3 == 2)? hawk_rtx_makefltval(rtx,(hawk_flt_t)l1-(hawk_flt_t)r2):
|
||||
@ -6000,7 +6002,7 @@ static hawk_val_t* eval_binop_mul (hawk_rtx_t* rtx, hawk_val_t* left, hawk_val_t
|
||||
}
|
||||
|
||||
n3 = n1 + (n2 << 1);
|
||||
HAWK_ASSERT (n3 >= 0 && n3 <= 3);
|
||||
HAWK_ASSERT(n3 >= 0 && n3 <= 3);
|
||||
return (n3 == 0)? hawk_rtx_makeintval(rtx,(hawk_int_t)l1*(hawk_int_t)l2):
|
||||
(n3 == 1)? hawk_rtx_makefltval(rtx,(hawk_flt_t)r1*(hawk_flt_t)l2):
|
||||
(n3 == 2)? hawk_rtx_makefltval(rtx,(hawk_flt_t)l1*(hawk_flt_t)r2):
|
||||
@ -6120,7 +6122,7 @@ static hawk_val_t* eval_binop_mod (hawk_rtx_t* rtx, hawk_val_t* left, hawk_val_t
|
||||
hawk_val_t* res;
|
||||
|
||||
/* the mod function must be provided when the hawk object is created to be able to calculate floating-pointer remainder */
|
||||
HAWK_ASSERT (rtx->hawk->prm.math.mod != HAWK_NULL);
|
||||
HAWK_ASSERT(rtx->hawk->prm.math.mod != HAWK_NULL);
|
||||
|
||||
n1 = hawk_rtx_valtonum(rtx, left, &l1, &r1);
|
||||
n2 = hawk_rtx_valtonum(rtx, right, &l2, &r2);
|
||||
@ -6329,8 +6331,8 @@ static hawk_val_t* eval_binop_ma (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_t*
|
||||
{
|
||||
hawk_val_t* lv, * rv, * res;
|
||||
|
||||
HAWK_ASSERT (left->next == HAWK_NULL);
|
||||
HAWK_ASSERT (right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(right->next == HAWK_NULL);
|
||||
|
||||
lv = eval_expression(rtx, left);
|
||||
if (HAWK_UNLIKELY(!lv)) return HAWK_NULL;
|
||||
@ -6358,8 +6360,8 @@ static hawk_val_t* eval_binop_nm (hawk_rtx_t* rtx, hawk_nde_t* left, hawk_nde_t*
|
||||
{
|
||||
hawk_val_t* lv, * rv, * res;
|
||||
|
||||
HAWK_ASSERT (left->next == HAWK_NULL);
|
||||
HAWK_ASSERT (right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(right->next == HAWK_NULL);
|
||||
|
||||
lv = eval_expression(rtx, left);
|
||||
if (HAWK_UNLIKELY(!lv)) return HAWK_NULL;
|
||||
@ -6391,17 +6393,17 @@ static hawk_val_t* eval_unary (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_int_t l;
|
||||
hawk_flt_t r;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
exp->type == HAWK_NDE_EXP_UNR);
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
exp->left != HAWK_NULL && exp->right == HAWK_NULL);
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
exp->opcode == HAWK_UNROP_PLUS ||
|
||||
exp->opcode == HAWK_UNROP_MINUS ||
|
||||
exp->opcode == HAWK_UNROP_LNOT ||
|
||||
exp->opcode == HAWK_UNROP_BNOT);
|
||||
|
||||
HAWK_ASSERT (exp->left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->left->next == HAWK_NULL);
|
||||
left = eval_expression(rtx, exp->left);
|
||||
if (HAWK_UNLIKELY(!left)) return HAWK_NULL;
|
||||
|
||||
@ -6464,8 +6466,8 @@ static hawk_val_t* eval_incpre (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_flt_t inc_val_flt;
|
||||
hawk_nde_exp_t* exp = (hawk_nde_exp_t*)nde;
|
||||
|
||||
HAWK_ASSERT (exp->type == HAWK_NDE_EXP_INCPRE);
|
||||
HAWK_ASSERT (exp->left != HAWK_NULL && exp->right == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->type == HAWK_NDE_EXP_INCPRE);
|
||||
HAWK_ASSERT(exp->left != HAWK_NULL && exp->right == HAWK_NULL);
|
||||
|
||||
/* this way of checking if the l-value is assignable is
|
||||
* ugly as it is dependent on the node types defined in hawk.h
|
||||
@ -6490,12 +6492,12 @@ static hawk_val_t* eval_incpre (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
else
|
||||
{
|
||||
HAWK_ASSERT (!"should never happen - invalid opcode");
|
||||
HAWK_ASSERT(!"should never happen - invalid opcode");
|
||||
hawk_rtx_seterrnum(rtx, &nde->loc, HAWK_EINTERN);
|
||||
return HAWK_NULL;
|
||||
}
|
||||
|
||||
HAWK_ASSERT (exp->left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->left->next == HAWK_NULL);
|
||||
left = eval_expression(rtx, exp->left);
|
||||
if (HAWK_UNLIKELY(!left)) return HAWK_NULL;
|
||||
|
||||
@ -6550,7 +6552,7 @@ static hawk_val_t* eval_incpre (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
else /* if (n == 1) */
|
||||
{
|
||||
HAWK_ASSERT (n == 1);
|
||||
HAWK_ASSERT(n == 1);
|
||||
res = hawk_rtx_makefltval (rtx, v2 + inc_val_flt);
|
||||
}
|
||||
|
||||
@ -6583,8 +6585,8 @@ static hawk_val_t* eval_incpst (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_flt_t inc_val_flt;
|
||||
hawk_nde_exp_t* exp = (hawk_nde_exp_t*)nde;
|
||||
|
||||
HAWK_ASSERT (exp->type == HAWK_NDE_EXP_INCPST);
|
||||
HAWK_ASSERT (exp->left != HAWK_NULL && exp->right == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->type == HAWK_NDE_EXP_INCPST);
|
||||
HAWK_ASSERT(exp->left != HAWK_NULL && exp->right == HAWK_NULL);
|
||||
|
||||
/* this way of checking if the l-value is assignable is
|
||||
* ugly as it is dependent on the node types defined in hawk.h.
|
||||
@ -6609,12 +6611,12 @@ static hawk_val_t* eval_incpst (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
else
|
||||
{
|
||||
HAWK_ASSERT (!"should never happen - invalid opcode");
|
||||
HAWK_ASSERT(!"should never happen - invalid opcode");
|
||||
hawk_rtx_seterrnum(rtx, &nde->loc, HAWK_EINTERN);
|
||||
return HAWK_NULL;
|
||||
}
|
||||
|
||||
HAWK_ASSERT (exp->left->next == HAWK_NULL);
|
||||
HAWK_ASSERT(exp->left->next == HAWK_NULL);
|
||||
left = eval_expression(rtx, exp->left);
|
||||
if (HAWK_UNLIKELY(!left)) return HAWK_NULL;
|
||||
|
||||
@ -6705,7 +6707,7 @@ static hawk_val_t* eval_incpst (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
else /* if (n == 1) */
|
||||
{
|
||||
HAWK_ASSERT (n == 1);
|
||||
HAWK_ASSERT(n == 1);
|
||||
res = hawk_rtx_makefltval(rtx, v2);
|
||||
if (HAWK_UNLIKELY(!res))
|
||||
{
|
||||
@ -6743,14 +6745,14 @@ static hawk_val_t* eval_cnd (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
hawk_val_t* tv, * v;
|
||||
hawk_nde_cnd_t* cnd = (hawk_nde_cnd_t*)nde;
|
||||
|
||||
HAWK_ASSERT (cnd->test->next == HAWK_NULL);
|
||||
HAWK_ASSERT(cnd->test->next == HAWK_NULL);
|
||||
|
||||
tv = eval_expression(rtx, cnd->test);
|
||||
if (HAWK_UNLIKELY(!tv)) return HAWK_NULL;
|
||||
|
||||
hawk_rtx_refupval(rtx, tv);
|
||||
|
||||
HAWK_ASSERT (cnd->left->next == HAWK_NULL && cnd->right->next == HAWK_NULL);
|
||||
HAWK_ASSERT(cnd->left->next == HAWK_NULL && cnd->right->next == HAWK_NULL);
|
||||
v = (hawk_rtx_valtobool(rtx, tv))? eval_expression(rtx, cnd->left): eval_expression(rtx, cnd->right);
|
||||
|
||||
hawk_rtx_refdownval(rtx, tv);
|
||||
@ -6762,7 +6764,7 @@ static hawk_val_t* eval_fncall_fnc (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
/* intrinsic function */
|
||||
hawk_nde_fncall_t* call = (hawk_nde_fncall_t*)nde;
|
||||
/* the parser must make sure that the number of arguments is proper */
|
||||
HAWK_ASSERT (call->nargs >= call->u.fnc.spec.arg.min && call->nargs <= call->u.fnc.spec.arg.max);
|
||||
HAWK_ASSERT(call->nargs >= call->u.fnc.spec.arg.min && call->nargs <= call->u.fnc.spec.arg.max);
|
||||
return hawk_rtx_evalcall(rtx, call, HAWK_NULL, push_arg_from_nde, (void*)call->u.fnc.spec.arg.spec, HAWK_NULL, HAWK_NULL);
|
||||
}
|
||||
|
||||
@ -6789,7 +6791,7 @@ static HAWK_INLINE hawk_val_t* eval_fncall_fun (hawk_rtx_t* rtx, hawk_nde_t* nde
|
||||
}
|
||||
|
||||
fun = (hawk_fun_t*)HAWK_HTB_VPTR(pair);
|
||||
HAWK_ASSERT (fun != HAWK_NULL);
|
||||
HAWK_ASSERT(fun != HAWK_NULL);
|
||||
|
||||
/* cache the search result */
|
||||
call->u.fun.fun = fun;
|
||||
@ -6906,8 +6908,8 @@ hawk_val_t* hawk_rtx_evalcall (
|
||||
* ---------------------
|
||||
*/
|
||||
|
||||
HAWK_ASSERT (HAWK_SIZEOF(void*) >= HAWK_SIZEOF(rtx->stack_top));
|
||||
HAWK_ASSERT (HAWK_SIZEOF(void*) >= HAWK_SIZEOF(rtx->stack_base));
|
||||
HAWK_ASSERT(HAWK_SIZEOF(void*) >= HAWK_SIZEOF(rtx->stack_top));
|
||||
HAWK_ASSERT(HAWK_SIZEOF(void*) >= HAWK_SIZEOF(rtx->stack_base));
|
||||
|
||||
saved_stack_top = rtx->stack_top;
|
||||
|
||||
@ -6944,7 +6946,7 @@ hawk_val_t* hawk_rtx_evalcall (
|
||||
nargs = argpusher(rtx, call, apdata);
|
||||
if (nargs == (hawk_oow_t)-1) goto oops_making_stack_frame;
|
||||
|
||||
HAWK_ASSERT (nargs == call->nargs);
|
||||
HAWK_ASSERT(nargs == call->nargs);
|
||||
|
||||
if (fun)
|
||||
{
|
||||
@ -6968,7 +6970,7 @@ hawk_val_t* hawk_rtx_evalcall (
|
||||
if (fun)
|
||||
{
|
||||
/* normal hawk function */
|
||||
HAWK_ASSERT (fun->body->type == HAWK_NDE_BLK);
|
||||
HAWK_ASSERT(fun->body->type == HAWK_NDE_BLK);
|
||||
n = run_block(rtx, (hawk_nde_blk_t*)fun->body);
|
||||
}
|
||||
else
|
||||
@ -6976,7 +6978,7 @@ hawk_val_t* hawk_rtx_evalcall (
|
||||
n = 0;
|
||||
|
||||
/* intrinsic function */
|
||||
HAWK_ASSERT (call->nargs >= call->u.fnc.spec.arg.min && call->nargs <= call->u.fnc.spec.arg.max);
|
||||
HAWK_ASSERT(call->nargs >= call->u.fnc.spec.arg.min && call->nargs <= call->u.fnc.spec.arg.max);
|
||||
|
||||
if (call->u.fnc.spec.impl)
|
||||
{
|
||||
@ -7182,7 +7184,7 @@ oops_making_stack_frame:
|
||||
hawk_rtx_refdownval(rtx, rtx->stack[rtx->stack_top - 1]);
|
||||
HAWK_RTX_STACK_POP (rtx);
|
||||
}
|
||||
HAWK_ASSERT (rtx->stack_top - saved_stack_top == 4);
|
||||
HAWK_ASSERT(rtx->stack_top - saved_stack_top == 4);
|
||||
while (rtx->stack_top > saved_stack_top)
|
||||
{
|
||||
/* the stack frame prologue does not have a reference-counted value
|
||||
@ -7296,7 +7298,7 @@ static hawk_oow_t push_arg_from_nde (hawk_rtx_t* rtx, hawk_nde_fncall_t* call, v
|
||||
hawk_rtx_refupval(rtx, v);
|
||||
}
|
||||
|
||||
HAWK_ASSERT (call->nargs == nargs);
|
||||
HAWK_ASSERT(call->nargs == nargs);
|
||||
return nargs;
|
||||
}
|
||||
|
||||
@ -7403,7 +7405,7 @@ static hawk_val_t** get_reference_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var)
|
||||
hawk_val_type_t vtype;
|
||||
hawk_nde_t* remidx;
|
||||
|
||||
HAWK_ASSERT (var->idx != HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx != HAWK_NULL);
|
||||
|
||||
v = fetch_topval_from_var(rtx, var);
|
||||
vtype = HAWK_RTX_GETVALTYPE(rtx, v);
|
||||
@ -7505,7 +7507,7 @@ static hawk_val_t** get_reference_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var)
|
||||
/* if the value doesn't exist for the given key, insert a nil for it to create a placeholder for the reference */
|
||||
pair = hawk_map_upsert(map, str, len, hawk_val_nil, 0);
|
||||
if (HAWK_UNLIKELY(!pair)) { ADJERR_LOC(rtx, &var->loc); goto oops; }
|
||||
HAWK_ASSERT (HAWK_MAP_VPTR(pair) == hawk_val_nil);
|
||||
HAWK_ASSERT(HAWK_MAP_VPTR(pair) == hawk_val_nil);
|
||||
/* no reference count increment as hawk_val_nil is upserted
|
||||
hawk_rtx_refupval(rtx, HAWK_MAP_VPTR(pair)); */
|
||||
}
|
||||
@ -7671,7 +7673,7 @@ static hawk_val_t* eval_fun (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
}
|
||||
|
||||
fun = (hawk_fun_t*)HAWK_HTB_VPTR(pair);
|
||||
HAWK_ASSERT (fun != HAWK_NULL);
|
||||
HAWK_ASSERT(fun != HAWK_NULL);
|
||||
}
|
||||
|
||||
val = hawk_rtx_makefunval(rtx, fun);
|
||||
@ -7719,7 +7721,7 @@ static hawk_val_t* eval_indexed (hawk_rtx_t* rtx, hawk_nde_var_t* var)
|
||||
v = fetch_topval_from_var(rtx, var);
|
||||
vtype = HAWK_RTX_GETVALTYPE(rtx, v);
|
||||
|
||||
HAWK_ASSERT (var->idx != HAWK_NULL);
|
||||
HAWK_ASSERT(var->idx != HAWK_NULL);
|
||||
|
||||
switch (vtype)
|
||||
{
|
||||
@ -7897,7 +7899,7 @@ static hawk_val_t* __eval_getline (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
p = (hawk_nde_getline_t*)nde;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
(p->in_type == HAWK_IN_PIPE && p->in != HAWK_NULL) ||
|
||||
(p->in_type == HAWK_IN_RWPIPE && p->in != HAWK_NULL) ||
|
||||
(p->in_type == HAWK_IN_FILE && p->in != HAWK_NULL) ||
|
||||
@ -7941,7 +7943,7 @@ read_console_again:
|
||||
{
|
||||
if (p->in_type == HAWK_IN_CONSOLE)
|
||||
{
|
||||
HAWK_ASSERT (p->in == HAWK_NULL);
|
||||
HAWK_ASSERT(p->in == HAWK_NULL);
|
||||
if (rtx->nrflt.limit > 0)
|
||||
{
|
||||
/* record filter based on record number(NR) */
|
||||
@ -8004,7 +8006,7 @@ static hawk_val_t* __eval_getbline (hawk_rtx_t* rtx, hawk_nde_t* nde)
|
||||
|
||||
p = (hawk_nde_getline_t*)nde;
|
||||
|
||||
HAWK_ASSERT (
|
||||
HAWK_ASSERT(
|
||||
(p->in_type == HAWK_IN_PIPE && p->in != HAWK_NULL) ||
|
||||
(p->in_type == HAWK_IN_RWPIPE && p->in != HAWK_NULL) ||
|
||||
(p->in_type == HAWK_IN_FILE && p->in != HAWK_NULL) ||
|
||||
@ -8048,7 +8050,7 @@ read_console_again:
|
||||
{
|
||||
if (p->in_type == HAWK_IN_CONSOLE)
|
||||
{
|
||||
HAWK_ASSERT (p->in == HAWK_NULL);
|
||||
HAWK_ASSERT(p->in == HAWK_NULL);
|
||||
if (rtx->nrflt.limit > 0)
|
||||
{
|
||||
/* record filter based on record number(NR) */
|
||||
@ -8146,7 +8148,7 @@ read_again:
|
||||
#endif
|
||||
if (n == 0)
|
||||
{
|
||||
HAWK_ASSERT (HAWK_OOECS_LEN(buf) == 0);
|
||||
HAWK_ASSERT(HAWK_OOECS_LEN(buf) == 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -8171,7 +8173,7 @@ static hawk_ooch_t* idxnde_to_str (hawk_rtx_t* rtx, hawk_nde_t* nde, hawk_ooch_t
|
||||
hawk_val_t* idx;
|
||||
hawk_int_t idxint;
|
||||
|
||||
HAWK_ASSERT (nde != HAWK_NULL);
|
||||
HAWK_ASSERT(nde != HAWK_NULL);
|
||||
|
||||
if (!nde->next)
|
||||
{
|
||||
@ -8206,7 +8208,7 @@ static hawk_ooch_t* idxnde_to_str (hawk_rtx_t* rtx, hawk_nde_t* nde, hawk_ooch_t
|
||||
{
|
||||
str = out.u.cplcpy.ptr;
|
||||
*len = out.u.cplcpy.len;
|
||||
HAWK_ASSERT (str == buf);
|
||||
HAWK_ASSERT(str == buf);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8396,7 +8398,7 @@ hawk_ooch_t* hawk_rtx_format (
|
||||
} while(0)
|
||||
|
||||
/* run->format.tmp.ptr should have been assigned a pointer to a block of memory before this function has been called */
|
||||
HAWK_ASSERT (rtx->format.tmp.ptr != HAWK_NULL);
|
||||
HAWK_ASSERT(rtx->format.tmp.ptr != HAWK_NULL);
|
||||
|
||||
if (nargs_on_stack == (hawk_oow_t)-1)
|
||||
{
|
||||
@ -9019,7 +9021,7 @@ wp_mod_main:
|
||||
hawk_flt_t r;
|
||||
int n;
|
||||
|
||||
HAWK_ASSERT (HAWK_RTX_GETVALTYPE(rtx, val) == HAWK_VAL_FLT);
|
||||
HAWK_ASSERT(HAWK_RTX_GETVALTYPE(rtx, val) == HAWK_VAL_FLT);
|
||||
|
||||
hawk_rtx_refupval(rtx, v);
|
||||
n = hawk_rtx_valtoflt(rtx, v, &r);
|
||||
@ -9272,7 +9274,7 @@ hawk_bch_t* hawk_rtx_formatmbs (
|
||||
} while(0)
|
||||
|
||||
/* run->format.tmp.ptr should have been assigned a pointer to a block of memory before this function has been called */
|
||||
HAWK_ASSERT (rtx->formatmbs.tmp.ptr != HAWK_NULL);
|
||||
HAWK_ASSERT(rtx->formatmbs.tmp.ptr != HAWK_NULL);
|
||||
|
||||
if (nargs_on_stack == (hawk_oow_t)-1)
|
||||
{
|
||||
@ -9903,7 +9905,7 @@ wp_mod_main:
|
||||
hawk_flt_t r;
|
||||
int n;
|
||||
|
||||
HAWK_ASSERT (HAWK_RTX_GETVALTYPE(rtx, val) == HAWK_VAL_FLT);
|
||||
HAWK_ASSERT(HAWK_RTX_GETVALTYPE(rtx, val) == HAWK_VAL_FLT);
|
||||
|
||||
hawk_rtx_refupval(rtx, v);
|
||||
n = hawk_rtx_valtoflt(rtx, v, &r);
|
||||
|
Reference in New Issue
Block a user