split files
This commit is contained in:
@@ -1,71 +1,6 @@
|
||||
|
||||
#include "computorv1.h"
|
||||
|
||||
int stop_errors(int err)
|
||||
{
|
||||
switch (err)
|
||||
{
|
||||
case -ERROR_UNKNOWN_TOKEN:
|
||||
ft_putstr_fd("error: unknown token\n", STDERR_FILENO);
|
||||
break;
|
||||
|
||||
default:
|
||||
ft_putstr_fd("unknown error\n", STDERR_FILENO);
|
||||
break;
|
||||
}
|
||||
|
||||
exit(err);
|
||||
}
|
||||
|
||||
int skip_whitespace(const char *input, int input_pos)
|
||||
{
|
||||
while (ft_isspace(input[input_pos]))
|
||||
{
|
||||
input_pos++;
|
||||
}
|
||||
return input_pos;
|
||||
}
|
||||
|
||||
int token_is_plus(const char *input, int input_pos)
|
||||
{
|
||||
return (input[input_pos] == '+');
|
||||
}
|
||||
|
||||
int lexerize(const char *input)
|
||||
{
|
||||
int token_count = 0;
|
||||
int input_pos = 0;
|
||||
int token_size = 0;
|
||||
|
||||
while (input[input_pos])
|
||||
{
|
||||
input_pos = skip_whitespace(input, input_pos);
|
||||
|
||||
if (input[input_pos] == '\0')
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
token_size = token_is_plus(input, input_pos);
|
||||
if (token_size)
|
||||
{
|
||||
tokens[token_count].type = TOKEN_PLUS;
|
||||
tokens[token_count].var_value = '+';
|
||||
}
|
||||
|
||||
if (token_size == 0)
|
||||
{
|
||||
stop_errors(-ERROR_UNKNOWN_TOKEN);
|
||||
}
|
||||
token_count++;
|
||||
input_pos += token_size;
|
||||
}
|
||||
|
||||
// Add end token
|
||||
tokens[token_count].type = TOKEN_END;
|
||||
tokens[token_count].var_value = '\0';
|
||||
return 1;
|
||||
}
|
||||
#include "lexer.h"
|
||||
#include "errors.h"
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
@@ -86,7 +21,8 @@ int main(int ac, char **av)
|
||||
i++;
|
||||
}
|
||||
|
||||
ret = lexerize(av[1]);
|
||||
token tokens[MAX_TOKENS];
|
||||
ret = lexerize(av[1], tokens);
|
||||
if (ret <= 0)
|
||||
{
|
||||
stop_errors(ret);
|
||||
|
||||
Reference in New Issue
Block a user