CHatingPython
|
d8d81851d3
|
feat(furc): introduce native and import functions
Closes: #19
|
2026-06-24 18:26:01 +02:00 |
|
CHatingPython
|
d497e2de45
|
feat: introduce arrow tokens
Refs: #16
|
2026-06-24 15:50:37 +02:00 |
|
CHatingPython
|
70b7b6a2f4
|
feat: introduce parse type function
Refs: #15
|
2026-06-24 15:30:45 +02:00 |
|
CHatingPython
|
0baf896c3a
|
feat: introduce int32 keyword
Refs: #15
|
2026-06-24 15:27:29 +02:00 |
|
CHatingPython
|
8909a0cfff
|
refactor(furc): bring back ADCE to post process
Refs: #12
|
2026-06-23 15:21:12 +02:00 |
|
CHatingPython
|
dad2c180d6
|
refactor(furc): bring back SCCP to post process
Refs: #12
|
2026-06-23 15:15:01 +02:00 |
|
CHatingPython
|
4478a839b7
|
refactor(furc): improve the SSA optimization class
Improve and rename the SSA optimization class to post process.
Refs: #12
|
2026-06-23 14:54:28 +02:00 |
|
CHatingPython
|
190aa8f985
|
refactor(furc): move arena allocator out of the parser
Refs: #12
|
2026-06-20 11:56:15 +02:00 |
|
CHatingPython
|
b35a274e81
|
refactor(furlang/ir): rename module to mod
Refs: #12
|
2026-06-16 11:25:41 +02:00 |
|
CHatingPython
|
a262014348
|
feat(furc/ssa): implement de-ssa phase
Refs: #2
|
2026-06-14 12:52:14 +02:00 |
|
CHatingPython
|
986015bc09
|
feat(furc/ssa): implement copy propagation
Refs: #2
|
2026-06-14 11:59:39 +02:00 |
|
CHatingPython
|
ac1e226b4b
|
feat(furc/ssa): add dead code elimination
Refs: #2
|
2026-06-13 22:33:57 +02:00 |
|
CHatingPython
|
d0f3637539
|
feat(furc/ssa): implement basic constant propagation
Refs: #2
|
2026-06-13 14:46:16 +02:00 |
|
CHatingPython
|
767970c69b
|
feat(furc): introduce while loop statement
Refs: #2
|
2026-06-12 23:10:26 +02:00 |
|
CHatingPython
|
b4fda8d7d0
|
feat(furc): start working on ssa optimizations
Compute dominance frontiers.
Refs: #2
|
2026-06-12 12:21:52 +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
|
ab6b65a70e
|
refactor(result): add print operator to result
Fixes #6
|
2026-06-03 16:06:59 +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
|
af982c11ed
|
refactor(parser): change node handles to node results
Refs: #1
|
2026-06-03 11:57:09 +02:00 |
|
CHatingPython
|
26340c279d
|
refactor(parser): change body_h to body result
Refs: #1
|
2026-06-03 10:45:57 +02:00 |
|
CHatingPython
|
6ce2fba9d2
|
docs: document token error
|
2026-06-03 10:43:25 +02:00 |
|
CHatingPython
|
cb7a348540
|
refactor(lexer): change token_handle to token result
Refs: #1
|
2026-06-02 16:49:40 +02:00 |
|
CHatingPython
|
9eb7d0c68f
|
docs: document parser
|
2026-06-02 12:47:51 +02:00 |
|
CHatingPython
|
16ca41b75a
|
docs: document lexer
|
2026-06-02 12:41:36 +02:00 |
|
CHatingPython
|
72dc7777fb
|
docs: document token
|
2026-06-02 12:28:39 +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
|
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
|
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
|
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
|
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
|
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 |
|