improve term count prediction

This commit is contained in:
hugogogo
2026-05-01 02:11:12 +02:00
parent 241cbdaff1
commit 2eeed8580f
2 changed files with 48 additions and 28 deletions

View File

@@ -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;
}