Commit graph

88 commits

Author SHA1 Message Date
83b4d23ab2 Add interpreter::value_visitor 2025-12-20 15:07:45 +03:00
8c07e1950b Simplify tree visitors 2025-12-20 13:20:44 +03:00
aee506d102 Rewrite identifier resolution using visitors 2025-12-20 13:05:51 +03:00
26ab539d3c Preprocess tabs when printing error context 2025-12-20 12:52:23 +03:00
99418bdf6a Update plans 2025-12-20 12:42:08 +03:00
6276d97c6b Add type identifier source locations 2025-12-20 01:10:56 +03:00
709c7a7a0a Introduce dedicated type tree & AST tree visitors and use them in pretty-printing 2025-12-20 01:06:54 +03:00
4175a86ae3 Rename libs/type -> libs/types, separate computed type tree from the AST type tree 2025-12-20 00:03:23 +03:00
437123f6f4 Add scope levels to identifier AST nodes & implement identifier resolution 2025-12-19 17:42:40 +03:00
8661ab6ace Spec tweaks 2025-12-18 19:14:20 +03:00
cad6c06607 Add JIT library & basic jit interface (not implemented yet) 2025-12-18 18:57:55 +03:00
d64b6db229 Remove interpreter <- parser dependency 2025-12-18 17:13:00 +03:00
9826961c76 Fix unhandled cases of casting to array & function types 2025-12-18 17:03:59 +03:00
2f5ad00b6d Add char literals 2025-12-18 16:39:01 +03:00
f22cd63a2a Print function types simpler when they have only 1 argument 2025-12-18 16:31:02 +03:00
af815e215a Add support for function values & calling non-identifier functions 2025-12-18 16:14:51 +03:00
61f1a9c079 Add support for function types 2025-12-18 15:37:38 +03:00
53d4e12a09 Functions can be any expressions and not just identifiers in function calls (AST only, not implemented in interpreter yet) 2025-12-18 14:37:06 +03:00
4867c970d8 Simplify bison grammar to use precedence rules 2025-12-18 13:54:43 +03:00
1e6f601f00 Remove unused C error reporting code from bison grammar 2025-12-18 13:47:54 +03:00
16680ad801 Add source location to all AST nodes 2025-12-18 13:07:42 +03:00
6a3835951f Make sure parsed filenames live as long as the AST 2025-12-18 12:49:53 +03:00
6aaa58f518 Refactor interpreter: parse all files before executing them & improve error reporting 2025-12-18 11:44:28 +03:00
39de1cd73c Switch to a custom source location type 2025-12-18 01:11:45 +03:00
56c8214f36 Don't allow recursive structs 2025-12-18 00:54:16 +03:00
ddf6d55c54 Make sure structs with same name but in different scopes are regarded as different types 2025-12-17 23:12:54 +03:00
04ee8e28e6 Add structures 2025-12-17 22:57:10 +03:00
fb4877c2ed Impement array element assignment 2025-12-17 16:07:39 +03:00
ff4d0a9c3e Rename 'interpreter.hpp' -> 'exec.hpp' 2025-12-17 15:53:24 +03:00
d4a4d4dbef Refactor printing AST 2025-12-17 15:51:38 +03:00
435aa61fe4 Implement array types & array values 2025-12-17 15:46:51 +03:00
bc7d24ad62 Support return statement with no expression 2025-12-17 14:22:20 +03:00
1f3c495acf Support uppercase letters and decimal digits in identifier names 2025-12-17 13:55:18 +03:00
41d3bb0f3d Implement functions in parser & interpreter 2025-12-16 19:19:46 +03:00
7ebf6982e6 Add unit type 2025-12-16 15:16:06 +03:00
ae3e2270c0 Add dedicated parse_error exception 2025-12-16 15:08:16 +03:00
4b3f87718d Check for division by zero in interpreter 2025-12-16 15:07:29 +03:00
9d7f81d7fc Initial commit: wip spec, ast definition, parser & interpreter 2025-12-16 14:01:50 +03:00