136 Commits

Author SHA1 Message Date
CHatingPython 16b6b9549c feat(furvm): add push byte as int instruction 2026-06-06 17:49:49 +02:00
CHatingPython c6ec18aeb8 feat(furvm): add return instructions 2026-06-06 17:43:35 +02:00
CHatingPython 4895489511 refactor(furvm): add id to module 2026-06-06 12:53:31 +02:00
CHatingPython 5407f8cda7 refactor(furvm): remove function from fwd.hpp 2026-06-05 18:31:06 +02:00
CHatingPython 2030b66c7d docs: add missing alias comment 2026-06-05 18:17:05 +02:00
CHatingPython 0304911516 refactor: add bytecode to module 2026-06-05 18:16:54 +02:00
CHatingPython 6481c9c71d refactor(furvm): change instruction_t base to furvm::byte 2026-06-05 18:14:25 +02:00
CHatingPython 6605b3264f docs: fix typo in PushConstant instruction 2026-06-05 18:06:54 +02:00
CHatingPython 66fdd1dc9c feat(furvm): introduce module, instruction and constant 2026-06-05 17:55:40 +02:00
CHatingPython 2f9328d85a feat(furvm): introduce context 2026-06-05 12:17:00 +02:00
CHatingPython 4a3ce6040c chore: init furvm 2026-06-04 11:06:31 +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
Aleksander Krajewski 1b9514c49c Merge pull request #7 from CHatingPython/remove-handle
Remove handle
2026-06-03 14:14:38 +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 3491f9aebb refactor(result): add value comparison operators 2026-06-02 16:03:38 +02:00
Aleksander Krajewski d422b80907 Merge pull request #4 from CHatingPython/docs
Add doxygen documentation
2026-06-02 14:01:39 +02:00
CHatingPython 66a46d8b88 docs: document IR 2026-06-02 13:57:23 +02:00
CHatingPython fd98474a86 docs: document result 2026-06-02 13:16:55 +02:00
CHatingPython 7ac994511c docs: document arena allocator 2026-06-02 12:56:58 +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 ece2df477a docs: tweak doxygen settings 2026-06-02 10:55:28 +02:00
CHatingPython a277ae570b docs: add doxygen support 2026-06-02 10:17:52 +02:00
CHatingPython e47cb4569e docs: add the formalities
I don't speak english, sorry
2026-06-01 23:56:15 +02:00
Aleksander Krajewski 4faff6b75a Merge pull request #3 from CHatingPython/irgen
IR generation
2026-06-01 23:27:39 +02:00
CHatingPython 18d99d4a86 test(lexer): refactor the test suite to use fixtures
Shoutout to my man - Krotek-man for giving me this awesome tip. I guess you really could say that the student became master. Also shoutout to stasiu for giving me his tip.
2026-06-01 23:07:55 +02:00
CHatingPython 270a3394e4 fix(result, furlang): fix value construction for error result constructor 2026-06-01 23:05:21 +02:00
CHatingPython af10dfcd40 refactor(parser): organize the includes 2026-06-01 21:28:00 +02:00
CHatingPython 6775ddf7d4 fix(furlang): use std::free() instead of delete in arena 2026-06-01 21:14:56 +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 de49674f81 refactor(IR): add branch instruction on block exit in if statement 2026-06-01 18:11:38 +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