IR generation #3

Merged
CHatingPython merged 15 commits from irgen into master 2026-06-01 21:27:39 +00:00

15 Commits

Author SHA1 Message Date
CHatingPython 18d99d4a86 test(lexer): refactor the test suite to use fixtures
Shoutout to my man - Krotek-man for giving me this awesome tip. I guess you really could say that the student became master. Also shoutout to stasiu for giving me his tip.
2026-06-01 23:07:55 +02:00
CHatingPython 270a3394e4 fix(result, furlang): fix value construction for error result constructor 2026-06-01 23:05:21 +02:00
CHatingPython af10dfcd40 refactor(parser): organize the includes 2026-06-01 21:28:00 +02:00
CHatingPython 6775ddf7d4 fix(furlang): use std::free() instead of delete in arena 2026-06-01 21:14:56 +02:00
CHatingPython 62619cd0bc refactor(IR)!: change IR block structure
It now requires an exit instruction.
2026-06-01 18:27:36 +02:00
CHatingPython de49674f81 refactor(IR): add branch instruction on block exit in if statement 2026-06-01 18:11:38 +02:00
CHatingPython 045ce7be59 fix(IR): use register operands instead of variable for local variables 2026-06-01 18:06:03 +02:00
CHatingPython 011e0e8bad refactor(furc): introduce ir_register type 2026-06-01 17:47:40 +02:00
CHatingPython b6e5f1f5cc refactor(furc): mark AST nodes as final 2026-06-01 17:44:40 +02:00
CHatingPython 6ffe1cefbe refactor(furc): rename some token types to PascalCase 2026-06-01 17:37:36 +02:00
CHatingPython 0958389b90 refactor(furc): unify visit functions in AST visitor 2026-06-01 17:28:40 +02:00
CHatingPython 7caaaac4a0 feat(furc): add compound statement
This one: { [statement]... }
2026-06-01 17:23:00 +02:00
CHatingPython 55f4435670 fix(furc): bring back the LIBFURC guard to main.cpp 2026-05-31 20:12:23 +02:00
CHatingPython 9b1a7d5a0b Implement var read and assign IR
Signed-off-by: CHatingPython <chatingpython@gmail.com>
2026-05-31 19:16:53 +02:00
CHatingPython 91ef7f01a4 Add if statement
Signed-off-by: CHatingPython <chatingpython@gmail.com>
2026-05-31 19:16:53 +02:00