Add empty token recognition in translation to table
authorLukas Jiriste <ljiriste@student.42prague.com>
Thu, 11 Jul 2024 17:58:27 +0000 (19:58 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Sun, 21 Jul 2024 18:21:22 +0000 (20:21 +0200)
ft_parse/ft_parsing_table_generate.c

index 62503e822aa82bf4feb543658cb4f02c220d9ec4..f2615081248f76f5b10ce2c2ef90555ba7d2a485 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/27 11:16:53 by ljiriste          #+#    #+#             */
-/*   Updated: 2024/07/10 21:33:47 by ljiriste         ###   ########.fr       */
+/*   Updated: 2024/07/11 19:56:28 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -802,7 +802,7 @@ void        convert_reduces(t_vec *lookahead, const t_generator_state *state, const t_v
        while (i < state->kernel.size)
        {
                item = ft_vec_caccess(&state->kernel, i);
-               if (item->core.position == item->core.rule->constituents.size)
+               if (item->core.position == item->core.rule->constituents.size || !cmp_token_type(item->core.rule->constituents.vec, &empty_token))
                        add_reduce(lookahead, item, tokens, rules);
                ++i;
        }
@@ -810,7 +810,7 @@ void        convert_reduces(t_vec *lookahead, const t_generator_state *state, const t_v
        while (i < state->closure.size)
        {
                item = ft_vec_caccess(&state->closure, i);
-               if (item->core.position == item->core.rule->constituents.size)
+               if (item->core.position == item->core.rule->constituents.size || !cmp_token_type(item->core.rule->constituents.vec, &empty_token))
                        add_reduce(lookahead, item, tokens, rules);
                ++i;
        }