CHatingPython
b8e1de8f68
refactor(AST): make operation node names consistent
...
Fixes #5
2026-06-03 18:25:18 +02:00
CHatingPython
2cfbc12977
refactor(AST): use pointers instead of results inside of AST nodes
2026-06-03 18:19:20 +02:00
CHatingPython
b68a559980
refactor(AST): improve function declaration AST node
...
Change p_name to be of type std::string instead of furc::token.
2026-06-03 16:11:20 +02:00
CHatingPython
d50bfc868f
refactor(AST): improve literals
...
Changed literal node to templated class and literals to aliases.
2026-06-03 14:13:28 +02:00
CHatingPython
52537e0955
refactor(AST): node location
...
Add location function to node and introduce a new abstract_node class.
Refs: #1
2026-06-03 13:47:01 +02:00
CHatingPython
af982c11ed
refactor(parser): change node handles to node results
...
Refs: #1
2026-06-03 11:57:09 +02:00
CHatingPython
d1e32baffe
refactor(parser): change value and name handles to results
...
Refs: #1
2026-06-03 11:08:51 +02:00
CHatingPython
26340c279d
refactor(parser): change body_h to body result
...
Refs: #1
2026-06-03 10:45:57 +02:00
CHatingPython
cb7a348540
refactor(lexer): change token_handle to token result
...
Refs: #1
2026-06-02 16:49:40 +02:00
CHatingPython
af10dfcd40
refactor(parser): organize the includes
2026-06-01 21:28:00 +02:00
CHatingPython
6ffe1cefbe
refactor(furc): rename some token types to PascalCase
2026-06-01 17:37:36 +02:00
CHatingPython
7caaaac4a0
feat(furc): add compound statement
...
This one: { [statement]... }
2026-06-01 17:23:00 +02:00
CHatingPython
91ef7f01a4
Add if statement
...
Signed-off-by: CHatingPython <chatingpython@gmail.com >
2026-05-31 19:16:53 +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
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
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