This commit is contained in:
hugogogo
2026-04-29 00:58:33 +02:00
parent 52c76767bd
commit 9ced220c00
3 changed files with 8 additions and 5 deletions

2
libft

Submodule libft updated: 2be81d5630...f86c2cf5cb

View File

@@ -1,6 +1,7 @@
#include "computorv1.h" #include "computorv1.h"
#include "lexer.h" #include "lexer.h"
#include "errors.h" #include "errors.h"
#include <stdio.h> // tmp for float debug
int main(int ac, char **av) int main(int ac, char **av)
{ {
@@ -55,7 +56,7 @@ int main(int ac, char **av)
if (tokens[i].type == TOKEN_NUMBER) if (tokens[i].type == TOKEN_NUMBER)
{ {
ft_printf("%d\n", i, tokens[i].num_value); printf("%f\n", tokens[i].num_value);
} }
else else
{ {

View File

@@ -23,7 +23,7 @@ static bool token_is_variable(const char *input, int input_pos, int *token_size)
} }
// number can be double "123.456" // number can be double "123.456"
static bool token_is_number(const char *input, int input_pos, int *token_size) static bool token_is_number(const char *input, int input_pos, int *token_size, int *float_precision)
{ {
int number_size; int number_size;
int max_number_size; int max_number_size;
@@ -124,9 +124,11 @@ int lexerize(const char *input, token tokens[MAX_TOKENS])
int token_count; int token_count;
int input_pos; int input_pos;
int token_size; int token_size;
int float_precision;
token_count = 0; token_count = 0;
input_pos = 0; input_pos = 0;
float_precision = 0;
while (input[input_pos]) while (input[input_pos])
{ {
token_size = 0; token_size = 0;
@@ -142,10 +144,10 @@ int lexerize(const char *input, token tokens[MAX_TOKENS])
tokens[token_count].type = TOKEN_VARIABLE; tokens[token_count].type = TOKEN_VARIABLE;
tokens[token_count].var_value = 'x'; tokens[token_count].var_value = 'x';
} }
else if (token_is_number(input, input_pos, &token_size)) else if (token_is_number(input, input_pos, &token_size, &float_precision))
{ {
tokens[token_count].type = TOKEN_NUMBER; tokens[token_count].type = TOKEN_NUMBER;
tokens[token_count].num_value = ft_atoi(&input[input_pos]); tokens[token_count].num_value = ft_atof(&input[input_pos]);
} }
else if (token_is_power(input, input_pos, &token_size)) else if (token_is_power(input, input_pos, &token_size))
{ {