/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/20 13:23:20 by ljiriste #+# #+# */
-/* Updated: 2024/07/04 12:21:27 by ljiriste ### ########.fr */
+/* Updated: 2024/07/07 09:44:08 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
t_token ft_token_dup(const t_token *token);
ssize_t find_token_index(t_token token, const t_vec *tokens);
+size_t get_terminal_tokens_num(t_vec *tokens);
t_ft_stat load_rules(t_vec *rules, const char *rules_filename);
int add_line(t_vec *states, const char *line, size_t lookahead_size);
int follow_rule(t_stack *stack, size_t rule_num,
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/27 11:16:53 by ljiriste #+# #+# */
-/* Updated: 2024/07/07 09:17:53 by ljiriste ### ########.fr */
+/* Updated: 2024/07/07 09:44:14 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
return (res);
}
res = categorize_tokens(&table->tokens, &table->rules);
+ table->terminal_tokens_num = get_terminal_tokens_num(&table->tokens);
if (res != success)
ft_vec_free(&table->rules, ft_free_rule);
return (res);
/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/20 12:34:17 by ljiriste #+# #+# */
-/* Updated: 2024/06/20 17:45:54 by ljiriste ### ########.fr */
+/* Updated: 2024/07/07 09:44:09 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
return (tokens);
}
-static size_t get_terminal_tokens_num(t_vec *tokens)
-{
- size_t i;
- t_token *token;
-
- i = 0;
- while (i < tokens->size)
- {
- token = (t_token *)ft_vec_access(tokens, i);
- if (!ft_strcmp(token->type, "$"))
- return (i);
- ++i;
- }
- return (0);
-}
-
static int is_consistent(__attribute__((unused)) t_parsing_table *table)
{
return (1);
/* By: ljiriste <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/21 15:30:29 by ljiriste #+# #+# */
-/* Updated: 2024/07/04 12:14:30 by ljiriste ### ########.fr */
+/* Updated: 2024/07/07 09:43:29 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
}
return (-1);
}
+
+size_t get_terminal_tokens_num(t_vec *tokens)
+{
+ size_t i;
+ t_token *token;
+
+ i = 0;
+ while (i < tokens->size)
+ {
+ token = (t_token *)ft_vec_access(tokens, i);
+ if (!ft_strcmp(token->type, "$"))
+ return (i);
+ ++i;
+ }
+ return (0);
+}