Fixed a bug in the AST Grower which made the keyword word unusable

This commit is contained in:
Eric-Paul Ickhorn 2023-11-28 19:34:51 +01:00
parent dc13ca8bfa
commit 5cecbaf11d
1 changed files with 11 additions and 7 deletions

View File

@ -68,8 +68,8 @@ i32_t pac_grow_item(pac_tlist_s *tlist, pac_ast_item_s *item)
{
item->type = PAC_AST_ITEM_SET;
item->data.set = PAC_AST_SET_WORD;
return 1;
SKIP_TOKEN;
return 1;
}
if(CURRENT.type == PAC_TOKEN_KEYWORD_INTEGER)
@ -101,17 +101,20 @@ i32_t pac_grow_variant(pac_tlist_s *tlist, pac_ast_variant_s *variant)
++variant->num_items;
if(success < 0)
{
return success - 1;
if(CURRENT.type == PAC_TOKEN_SIGN_VERTICAL_BAR)
return tlist->cursor - start_index;
if(CURRENT.type == PAC_TOKEN_SIGN_SEMICOLON)
}
if(
(CURRENT.type == PAC_TOKEN_SIGN_VERTICAL_BAR)
|| (CURRENT.type == PAC_TOKEN_SIGN_SEMICOLON)
) {
return tlist->cursor - start_index;
}
if(CURRENT.type != PAC_TOKEN_SIGN_COMMA)
{
return -1;
}
SKIP_TOKEN;
}
return -1;
@ -183,6 +186,7 @@ i32_t pac_grow_rule(pac_tlist_s *tlist, pac_ast_rule_s *rule)
if(CURRENT.type == PAC_TOKEN_SIGN_SEMICOLON)
{
printf("Continuing with next rule.\n");
SKIP_TOKEN;
return 2;
}
SKIP_TOKEN;