Commit graph

38 commits

Author SHA1 Message Date
29c936c19c Rework grammar to support input files without a newline in the end 2026-03-18 19:03:31 +03:00
bcdcc9e752 Fix identifier & literal source locations in parser 2026-03-15 16:33:29 +03:00
4b555c2ad4 Fix filename tracking in locations & separate prelude location and full block location for AST nodes containing statement lists 2026-03-14 00:48:46 +03:00
3981b78b2d Rename parser::finilize -> finalize 2026-03-13 17:18:55 +03:00
902d272deb Fix empty location in if chains 2026-03-13 13:39:01 +03:00
c8cd86dd0b Add foreign functions (stub in interpreter, implemented in aarch64 compiler) 2026-03-13 11:01:53 +03:00
13a9ba24f2 Refactor: split function definition & declaration in ast 2026-03-12 21:45:21 +03:00
927368aa80 Add short-circuiting versions of and/or (&& and ||) and implement them for bools and integers in interpreter and aarch64 compiler 2026-03-12 21:37:15 +03:00
4def0b096d Fix parsing half-floats on non-clang 2026-01-07 14:47:57 +03:00
7ddc8ba25d Add f16 type & literals support in parser, type checker & interpreter 2026-01-05 00:36:11 +03:00
45e19e47b2 Fix parsing floating-point literals on clang 2026-01-05 00:04:25 +03:00
474e5da9d1 Fix unary minus precedence 2026-01-03 22:36:50 +03:00
da39ae1225 MacOS fixes: lower CMake version, use strtoll instead of from_chars 2026-01-02 11:34:52 +03:00
dea5c18cfd Explicitly mark constructor AST nodes 2025-12-23 13:43:54 +03:00
7bca803136 Add scope level to return statement 2025-12-23 12:16:49 +03:00
c3c208b6a3 Rename numeric_literal -> primitive_literal 2025-12-22 23:49:08 +03:00
58154b9e6e Handle return statement outside function scope in AST finilizator 2025-12-22 18:33:37 +03:00
049cf7335a Add single-line comments 2025-12-22 18:27:13 +03:00
5419f87a56 Support zero-initialization of built-in types and structs 2025-12-20 16:09:25 +03:00
6276d97c6b Add type identifier source locations 2025-12-20 01:10:56 +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
2f5ad00b6d Add char literals 2025-12-18 16:39:01 +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
39de1cd73c Switch to a custom source location type 2025-12-18 01:11:45 +03:00
04ee8e28e6 Add structures 2025-12-17 22:57:10 +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
9d7f81d7fc Initial commit: wip spec, ast definition, parser & interpreter 2025-12-16 14:01:50 +03:00