/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/14 14:49:32 by ljiriste #+# #+# */
-/* Updated: 2025/01/17 12:05:04 by ljiriste ### ########.fr */
+/* Updated: 2025/01/18 15:34:18 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
token->type = "INT";
token->str = extract_int(line, i);
if (!token->str)
- return (1);
+ return (ALLOCATION_FAILURE);
}
else
{
token->type = (char *)extract_keyword(line, i);
if (!token->type)
- return (1);
+ return (PARSING_ERROR);
}
- return (0);
+ return (SUCCESS);
}
-static int tokenize_line(const char *line, t_vec *tokens)
+static t_res tokenize_line(const char *line, t_vec *tokens)
{
size_t i;
t_token token;
+ t_res res;
i = 0;
while (line[i])
++i;
if (!line[i])
break ;
- if (create_token(&token, line, &i))
- return (1);
+ res = create_token(&token, line, &i);
+ if (res != SUCCESS)
+ return (res);
if (ft_vec_append(tokens, &token) != success)
{
free_token(&token);
- return (1);
+ return (ALLOCATION_FAILURE);
}
++i;
}
{
int fd;
char *line;
+ t_res res;
fd = open(filename, O_RDONLY);
if (fd < 0)
line = get_next_line(fd);
while (line)
{
- if (ft_strncmp(line, "//", 2) && tokenize_line(line, tokens))
+ if (ft_strncmp(line, "//", 2))
{
+ res = tokenize_line(line, tokens);
free(line);
- get_next_line(-1);
- close(fd);
- return (ALLOCATION_FAILURE);
+ if (res != SUCCESS)
+ {
+ get_next_line(-1);
+ close(fd);
+ return (res);
+ }
}
- free(line);
line = get_next_line(fd);
}
close(fd);