Commit Graph

34 Commits

Author SHA1 Message Date
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