CHatingPython
642d57622a
feat: introduce pointerof operation
...
Introduce pointerof operation and do some side-quests along the way.
Refs: #34
Closes : #17
2026-07-05 14:54:16 +02:00
CHatingPython
7b609f87c9
feat(furc): introduce function call expression and call instruction
2026-06-28 13:21:13 +02:00
CHatingPython
0bcbe1d7d1
feat(furc): add access specifiers to functions
...
Introduce public and private access specifiers to functions.
Closes : #26
2026-06-28 13:21:05 +02:00
CHatingPython
d8d81851d3
feat(furc): introduce native and import functions
...
Closes : #19
2026-06-24 18:26:01 +02:00
CHatingPython
abeb5b390b
feat(furc): introduce function declaration parameters
...
Closes : #16
2026-06-24 18:06:40 +02:00
CHatingPython
a61f5c194b
refactor(furc): improve function declarations
...
Refs: #16
2026-06-24 15:52:14 +02:00
CHatingPython
70b7b6a2f4
feat: introduce parse type function
...
Refs: #15
2026-06-24 15:30:45 +02:00
CHatingPython
190aa8f985
refactor(furc): move arena allocator out of the parser
...
Refs: #12
2026-06-20 11:56:15 +02:00
CHatingPython
767970c69b
feat(furc): introduce while loop statement
...
Refs: #2
2026-06-12 23:10:26 +02:00
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