/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/27 11:16:53 by ljiriste #+# #+# */
-/* Updated: 2024/07/04 14:25:35 by ljiriste ### ########.fr */
+/* Updated: 2024/07/04 14:36:08 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
const t_token *get_next_token(const t_marked_grammar_rule *rule)
{
- return (ft_vec_caccess(&rule->rule->constituents, rule->position + 1));
+ return (ft_vec_caccess(&rule->rule->constituents, rule->position));
}
int is_terminal_token(const t_token *token, const t_vec *tokens)
return (res);
}
rule.position = 0;
- i = 0;
+ i = 1;
while (i < rules->size)
{
rule.rule = ft_vec_caccess(rules, i);
t_lr1_item new_item;
t_ft_stat res;
- i = 0;
+ i = 1;
while (i < rules->size)
{
new_item.core.rule = ft_vec_caccess(rules, i);
while (i < constituents->size)
{
token = ft_vec_caccess(constituents, i);
- if (ft_vec_contains(tokens, token, void_cmp_token_type))
+ if (ft_vec_contains(tokens, token, void_cmp_token_type) || !cmp_token_type(token, &empty_token))
{
++i;
continue ;