move next word reading to its own function

This commit is contained in:
tocariimaa 2025-02-05 13:32:26 -03:00
parent d188cb033d
commit a033c22ff3

24
pila.c
View file

@ -387,14 +387,30 @@ compile_end_nat(RpnState *st)
add_word(st, w);
}
void
tick_nat(RpnState *st)
Str
next_word(RpnState *st)
{
skip_whitespace(&st->rsp, st->rep);
return read_word_name(&st->rsp, st->rep);
}
Word *
next_word_read_get(RpnState *st)
{
Str wn;
skip_whitespace(&st->rsp, st->rep);
wn = read_word_name(&st->rsp, st->rep);
wn = Str_new(wn.s, wn.len);
Word *w = search_word(st, wn);
if (w == nil)
return nil;
return w;
}
void
tick_nat(RpnState *st)
{
Word *w = next_word_read_get(st);
if (w == nil) {
push_val(st, BOX_INTN(0));
return;
@ -442,9 +458,7 @@ to_number_nat(RpnState *st)
void
parse_word_nat(RpnState *st)
{
skip_whitespace(&st->rsp, st->rep);
Str wn = read_word_name(&st->rsp, st->rep);
push_val(st, BOX_STR(wn));
push_val(st, BOX_STR(next_word(st)));
}
void