ab791dbc9b
fix: tests and main
2026-05-13 18:48:14 -06:00
ac2e783ccc
fix: tests and implementation of lexer
...
Just a few details here and there, nothing wrong, everything else is
going well.
2026-04-30 09:58:27 -06:00
630d9f53e1
test: changed lexer tests
2026-04-24 09:36:03 -06:00
7ad4eba123
fix/refactor: Modified evaluate and changed it to evaluate_tree
...
So i did what the last commit said, also fixed parse_expr because it was
still using malloc for allocating new nodes so i made it use arena_alloc
like it should, did the very first tests so it's all good, i think is
readdy to merge.
2026-04-13 08:44:30 -06:00
e4ec102cb9
rework: AST now uses an arena for allocation
...
For now it works but i dont really like that i use ParseResult, i mean
is necessary but i think i will try to make it cleaner so that i can
just directly use like parse and pass tath into evaluate, that would
require to move the main evaluate funciton into evaluate_tree or
something and evaluate takes the arena, uses evaluate_tree and frees
the arena, will try that the next commit but for now this version works
perfectly.
2026-04-13 07:57:36 -06:00
92d142b9cf
It works, basic but works, need to move out logic to places, like ASTNode array shouldn't be on the lexer or future logic for fractions and error handling in the evaluator. Just the things at the top of my head
2026-03-25 11:30:12 -06:00
845673fb0e
FUCK YEAH, it works, it was the is_valid thing fo slices that was inverted, did the test by brute force and damn, is the expected AST
2026-03-25 10:22:54 -06:00
f24671bd19
well, nothing works, at least there is something to debug
2026-03-25 07:43:00 -06:00
6377515558
Starting with the lexer, i'm starting to comprehend better what pratt parsing is and how to apply it. For now just declaring basic structure and functions
2026-03-13 07:58:38 -06:00
903fdbd6ff
I think i'm done, lexer works fine and errors work fine too, amazing actually, should be moving on to the parser so that i can construct the expression tree
2026-03-10 07:27:35 -06:00
73451fcca9
Damn, it works, the lexer actually works, that's amazing, need to test the bad cases but at least i'm sure it can detect and process correct math expressions
2026-03-10 07:08:12 -06:00
0de6cf5024
Modified the structure of the lexer, now is more easy to add types of numbers like fractions, like i could enev consider roots, irrationals, complex or imaginary, that would be dope. For now only support for integer, we need to get this shit running
2026-03-09 11:58:55 -06:00
afae8fbe3a
Made the arrangements for the mentioned changes in the last commit, for now just integers but IT WILL be capable of handling doubles as fractions
2026-03-09 09:23:06 -06:00
771069455d
First version for string_to_number, just one test, is working fine, i'm considering swithching to handling only integers for in the future to manage in special struct that manages doubles as fractions, obviously this will mean changing nodes for general numbers to integers/fractions and shit
2026-03-09 09:06:06 -06:00
194f1dd80f
Second test, just pop, almost identical to first put important for asserting pop works because it is very needed
2026-03-05 10:20:44 -06:00
79f7e327ff
First test added, changed signature for using pointers beacause i forgot you can't actually change a parameter because c copies everything, stupid from me to forget that
2026-03-05 08:27:36 -06:00
317e9f3b6b
Jut setting all up for the calculator
2026-02-28 13:59:02 -06:00