/* If there's nothing else limiting the number of loops, use
MXLOOPS as a limit. */
- if (loop->max_pass_count == -1
- && loop->index_var == NULL
- && loop->loop_condition == NULL
- && loop->end_loop_condition == NULL)
+ if (loop->max_pass_count == -1 && loop->index_var == NULL)
loop->max_pass_count = settings_get_mxloops ();
}
return false;
}
- *condition = expr_parse_pool (lexer, loop->pool, loop->ds, EXPR_BOOLEAN);
+ *condition = expr_parse_bool (lexer, loop->pool, loop->ds);
return *condition != NULL;
}
if (!lex_force_match (lexer, T_EQUALS))
return false;
- loop->first_expr = expr_parse_pool (lexer, loop->pool,
- loop->ds, EXPR_NUMBER);
+ loop->first_expr = expr_parse (lexer, loop->pool, loop->ds, VAL_NUMERIC);
if (loop->first_expr == NULL)
return false;
lex_sbc_only_once (e == &loop->last_expr ? "TO" : "BY");
return false;
}
- *e = expr_parse_pool (lexer, loop->pool, loop->ds, EXPR_NUMBER);
+ *e = expr_parse (lexer, loop->pool, loop->ds, VAL_NUMERIC);
if (*e == NULL)
return false;
}
/* Even if the loop is never entered, set the index
variable to the initial value. */
*c = case_unshare (*c);
- case_data_rw (*c, loop->index_var)->f = loop->cur;
+ *case_num_rw (*c, loop->index_var) = loop->cur;
/* Throw out pathological cases. */
if (!isfinite (loop->cur) || !isfinite (loop->by)
|| (loop->by < 0.0 && loop->cur < loop->last))
goto break_out;
*c = case_unshare (*c);
- case_data_rw (*c, loop->index_var)->f = loop->cur;
+ *case_num_rw (*c, loop->index_var) = loop->cur;
}
if (loop->loop_condition != NULL