Commit Graph

78 Commits

Author SHA1 Message Date
CHatingPython ee9eadeea8 feat: introduce sizeof instruction
Closes: #34
2026-07-05 22:33:15 +02:00
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 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 b5dcd6690a feat: introduce AST type class
Refs: #15
2026-06-24 15:30:28 +02:00
CHatingPython 0baf896c3a feat: introduce int32 keyword
Refs: #15
2026-06-24 15:27:29 +02:00
CHatingPython 7d2e748c27 feat(furc): introduce furvm backend to furc
Closes: #14
2026-06-24 14:56:49 +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 3006b58212 refactor(AST): add aliases for AST node pointers
Refs: #8
2026-06-03 16:20:08 +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 02ce25df2d refactor(AST): improve AST node print operator 2026-06-03 16:10:35 +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 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 9b92c06d87 refactor(handle): remove handle
Refs: #1
2026-06-03 11:59:36 +02:00
CHatingPython af982c11ed refactor(parser): change node handles to node results
Refs: #1
2026-06-03 11:57:09 +02:00
CHatingPython a1b5726271 refactor(handle): remove non-pointer handle
Previous commit rendered it obsolete.

Refs: #1
2026-06-03 11:10:01 +02:00
CHatingPython d1e32baffe refactor(parser): change value and name handles to results
Refs: #1
2026-06-03 11:08:51 +02:00
CHatingPython cf9c53a9e8 refactor(parser): add print operator to AST error 2026-06-03 10:53:34 +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 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