Commit Graph

124 Commits

Author SHA1 Message Date
CHatingPython 12a131c2b8 feat(furc/SSA): insert phi nodes 2026-08-18 17:50:34 +02:00
CHatingPython 5403c0e1a4 feat(furc): actually use SSA 2026-08-18 17:49:43 +02:00
CHatingPython a311795915 fix(furc/IR): fix terminate function 2026-08-18 17:48:51 +02:00
CHatingPython 090d8ad81e feat(furc/SSA): compute dominance frontiers 2026-08-18 13:55:39 +02:00
CHatingPython 5efcf1b9b0 feat(furc/SSA): compute dominance tree 2026-08-18 00:16:32 +02:00
CHatingPython 136663aeab feat(furc/IR): add global variables 2026-08-18 00:15:43 +02:00
CHatingPython cc88d6b6a0 refactor(furc): move IR to middle-end 2026-08-10 19:57:56 +02:00
CHatingPython 0e916c314a feat(furc/IR): move IR from furlang to furc
First try baby, whoo!
2026-08-10 18:34:10 +02:00
CHatingPython b9d50c62af feat(furc/ast): add visitor pattern for AST 2026-08-10 16:44:06 +02:00
CHatingPython 4b9f58b34f feat(furc/parser): add function calls 2026-08-09 18:34:53 +02:00
CHatingPython a420ebf69f refactor(furc/parser): improve statement parsing 2026-08-09 18:34:25 +02:00
CHatingPython e1ffa8a11d refactor(furc/lexer): improve token peeking 2026-08-09 18:32:40 +02:00
CHatingPython 2126b03069 feat(furc/parser): add if expression 2026-08-09 17:26:21 +02:00
CHatingPython 47e8b1bf51 feat(furc/parser): add pre- and post- conditions 2026-08-09 17:17:47 +02:00
CHatingPython 7ebc27cab9 feat(furc/parser): add while statement 2026-08-08 00:07:38 +02:00
CHatingPython 1db13b4e10 feat(furc/parser): add return statement 2026-08-08 00:07:23 +02:00
CHatingPython 84c6795ff8 feat(furc/parser): add if statement 2026-08-08 00:04:04 +02:00
CHatingPython 212b1e2384 feat(furc/parser): add variable and group expressions 2026-08-08 00:03:19 +02:00
CHatingPython ecdf6944a7 feat(furc/lexer): add integers 2026-08-07 11:59:45 +02:00
CHatingPython 79b6b9742d feat(furc/parser): parse binary and unary ops 2026-08-07 11:24:52 +02:00
CHatingPython 2d40b9337c feat(furc/AST): add binary and unary operations 2026-08-07 11:23:16 +02:00
CHatingPython db485af7f6 feat(furc): implement a basic parser 2026-08-06 10:54:54 +02:00
CHatingPython 854343a5a3 refactor(furc/lexer): distinguish keywords 2026-08-06 10:52:30 +02:00
CHatingPython 3faafe371f feat(furc): implement lexer 2026-08-05 12:35:49 +02:00
CHatingPython 4604f5186e feat(furc): introduce token 2026-08-05 11:03:43 +02:00
CHatingPython 224468446d refactor: remove furc for later remake 2026-08-04 13:09:46 +02:00
CHatingPython 46e92deed5 feat(furvm): introduce missing push instructions
Closes: #58
2026-07-14 12:55:34 +02:00
CHatingPython 798287ef47 refactor: remove ReturnValue instruction 2026-07-13 20:33:37 +02:00
CHatingPython d49b4f5bc7 refactor: improve functions
Closes: #49
2026-07-08 00:19:37 +02:00
CHatingPython 2519560451 refactor: remove name from function
Closes: #47
2026-07-06 22:06:53 +02:00
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 a7ab214ce3 refactor: make context inherit module handle container
Refs: #39
2026-07-03 19:41:28 +02:00
CHatingPython 42f020977e feat: introduce more integer thing types
Closes: #31
2026-06-29 20:43:00 +02:00
CHatingPython 6ab9254746 refactor: improve thing types
Change thing_t enumeration to thing_type structure.

Closes: #30
2026-06-29 20:36:42 +02:00
CHatingPython 8466902281 feat(IR): improve IR functions
Add access specifiers and parameter counts to furlang's IR functions.
2026-06-28 13:21:13 +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