improve term count prediction
This commit is contained in:
40
src/lexer.c
40
src/lexer.c
@@ -152,11 +152,11 @@ static bool token_is_equal(const char *input, int input_pos, int *token_size)
|
||||
*/
|
||||
int lexerize(const char *input, token *tokens)
|
||||
{
|
||||
int token_count;
|
||||
int tokens_count;
|
||||
int input_pos;
|
||||
int token_size;
|
||||
|
||||
token_count = 0;
|
||||
tokens_count = 0;
|
||||
input_pos = 0;
|
||||
while (input[input_pos])
|
||||
{
|
||||
@@ -169,38 +169,38 @@ int lexerize(const char *input, token *tokens)
|
||||
|
||||
if (token_is_variable(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_VARIABLE;
|
||||
tokens[token_count].value_char = 'x';
|
||||
tokens[tokens_count].type = TOKEN_VARIABLE;
|
||||
tokens[tokens_count].value_char = 'x';
|
||||
}
|
||||
else if (token_is_number_int(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_NUMBER_INT;
|
||||
tokens[token_count].value_int = ft_atoi(&input[input_pos]);
|
||||
tokens[tokens_count].type = TOKEN_NUMBER_INT;
|
||||
tokens[tokens_count].value_int = ft_atoi(&input[input_pos]);
|
||||
}
|
||||
else if (token_is_number_double(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_NUMBER_DOUBLE;
|
||||
tokens[token_count].value_double = ft_atof(&input[input_pos]);
|
||||
tokens[tokens_count].type = TOKEN_NUMBER_DOUBLE;
|
||||
tokens[tokens_count].value_double = ft_atof(&input[input_pos]);
|
||||
}
|
||||
else if (token_is_power(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_POWER;
|
||||
tokens[token_count].value_char = '^';
|
||||
tokens[tokens_count].type = TOKEN_POWER;
|
||||
tokens[tokens_count].value_char = '^';
|
||||
}
|
||||
else if (token_is_sign(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_SIGN;
|
||||
tokens[token_count].value_char = input[input_pos];
|
||||
tokens[tokens_count].type = TOKEN_SIGN;
|
||||
tokens[tokens_count].value_char = input[input_pos];
|
||||
}
|
||||
else if (token_is_factor(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_FACTOR;
|
||||
tokens[token_count].value_char = input[input_pos];
|
||||
tokens[tokens_count].type = TOKEN_FACTOR;
|
||||
tokens[tokens_count].value_char = input[input_pos];
|
||||
}
|
||||
else if (token_is_equal(input, input_pos, &token_size))
|
||||
{
|
||||
tokens[token_count].type = TOKEN_EQUAL;
|
||||
tokens[token_count].value_char = '=';
|
||||
tokens[tokens_count].type = TOKEN_EQUAL;
|
||||
tokens[tokens_count].value_char = '=';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -209,7 +209,7 @@ int lexerize(const char *input, token *tokens)
|
||||
// stop_errors(ERROR_UNKNOWN_TOKEN);
|
||||
}
|
||||
|
||||
token_count++;
|
||||
tokens_count++;
|
||||
if (token_size == 0)
|
||||
{
|
||||
stop_errors(ERROR_UNKNOWN_TOKEN);
|
||||
@@ -217,8 +217,8 @@ int lexerize(const char *input, token *tokens)
|
||||
input_pos += token_size;
|
||||
}
|
||||
|
||||
tokens[token_count].type = TOKEN_END;
|
||||
tokens[token_count].value_char = '\0';
|
||||
tokens[tokens_count].type = TOKEN_END;
|
||||
tokens[tokens_count].value_char = '\0';
|
||||
|
||||
return token_count;
|
||||
return tokens_count;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user