CHatingPython
1f4d0b992d
docs: document location
2026-06-02 12:30:18 +02:00
CHatingPython
72dc7777fb
docs: document token
2026-06-02 12:28:39 +02:00
CHatingPython
dd6344aab6
docs: document AST nodes
2026-06-02 12:12:48 +02:00
CHatingPython
af10dfcd40
refactor(parser): organize the includes
2026-06-01 21:28:00 +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
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
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
CHatingPython
646d185d40
Implement basic IR generator
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:53 +02:00
CHatingPython
f431d9b725
Fix AST visitor
...
Add default constructor
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:52 +02:00
CHatingPython
b2e33e1bdd
Add AST visitor
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:52 +02:00
CHatingPython
2395ee9977
Forward furc ast
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:52 +02:00
CHatingPython
737f637a38
Add comparison operators
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
f4efb53531
Add var assign expression
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
8d162f926a
Add var read expression
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
1fa9e50b57
Remove the paren expression
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
b8b13d1635
Add paren expression
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
f178b09f89
Add unary expression parsing
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
86988ffea5
Add node_handle alias suffix _h
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:51 +02:00
CHatingPython
f130553e20
Parse binop expressions
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
e205d67443
Introduce binop_expression_node
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
48593a4350
Add ast::node and handle<T*, Error> comparison
...
And parser test for literals fingerscrossed
This commit is good, innit? But there will also be second one, and dessert
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
4a58e97812
Add git hooks
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
7017d83204
Add default constructor to handle
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
ad84bc50bd
Add integers to lexer
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:50 +02:00
CHatingPython
cbb2efc187
Improve AST nodes
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
156aa224ee
Use arena in parser
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
2cf4ff90a5
Parser tests
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
535b088f81
Add comments to lexer
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
438288f8f1
Add gtest
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
7df35fc075
Basic parser
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:49 +02:00
CHatingPython
28f6deaba5
Basic lexer
2026-05-24 14:57:57 +02:00