Commit Graph

51 Commits

Author SHA1 Message Date
Karma Riuk
6313027d07 reformulated the parsing of the parameters and
made it memory safe
2025-07-15 01:43:22 +02:00
Karma Riuk
e2dfca2679 renamed function->block to function->body 2025-07-15 01:13:52 +02:00
Karma Riuk
c6daa5c2af added tests for malformed function literal to
check for memory leaks
2025-07-15 01:11:53 +02:00
Karma Riuk
057d6fc9f1 renamed subcase properly 2025-07-15 00:58:49 +02:00
Karma Riuk
0b2a12cef7 added parsing for function literals 2025-07-15 00:56:40 +02:00
Karma Riuk
767a2ebcb1 added tests for malformed if to check of memory
leaks
2025-07-15 00:05:48 +02:00
Karma Riuk
7c55e58e1a removed captures that don't capture because of
scope issues with doctest
2025-07-14 23:56:51 +02:00
Karma Riuk
cbafb2e814 extracted and abstracted function 2025-07-14 20:15:51 +02:00
Karma Riuk
9e63c923da added parsing of if statements 2025-07-14 15:19:05 +02:00
Karma Riuk
86574552aa added parsing and testing for grouped expressions 2025-07-12 15:22:45 +02:00
Karma Riuk
ab17545c93 made another test for boolean parsing in general
expression
2025-07-12 15:07:47 +02:00
Karma Riuk
aaec4cefcf added prefix parsing for boolean literals 2025-07-11 21:00:11 +02:00
Karma Riuk
4da5f32aea added boolean literals and tests for them (no
parsing yet)
2025-07-11 20:55:02 +02:00
Karma Riuk
8c1f4e10cd made more helper functions for testing 2025-07-11 20:34:18 +02:00
Karma Riuk
6cd99c22fe added a way to show the call stack of the functions 2025-07-11 19:48:55 +02:00
Karma Riuk
c9ffeafd5f added extensive testing for operator precedence 2025-07-11 11:39:55 +02:00
Karma Riuk
a1192204b1 fixed slight bug 2025-07-11 11:39:48 +02:00
Karma Riuk
63f22a1b40 removed unused include 2025-07-11 11:19:28 +02:00
Karma Riuk
2174781b77 using smart pointers instead of normal ones for
easier setup of tests (to call setup() multiple
times without leaks)
2025-07-11 11:16:16 +02:00
Karma Riuk
826f4de77a updated return tests 2025-07-11 11:10:29 +02:00
Karma Riuk
a7f5950a55 implemented infix operator parsing 2025-07-11 10:30:37 +02:00
Karma Riuk
6e471a91d5 fixed test 2025-07-11 10:30:28 +02:00
Karma Riuk
702c34a736 written tests for infix expressions 2025-07-11 09:07:33 +02:00
Karma Riuk
f038d30d77 written the test in a different way, since we
can't use for loops around subcases
2025-07-11 09:07:12 +02:00
Karma Riuk
c55c6b2b20 forgot that statement and expression had a common
ancestor
2025-07-11 08:45:15 +02:00
Karma Riuk
7f1cc6f45e can now parse prefix expressions! 2025-07-09 12:02:01 +02:00
Karma Riuk
c7a30a0028 made casting issues log an even better message 2025-07-09 12:01:09 +02:00
Karma Riuk
2ff6c695f7 removed useless import 2025-07-09 12:00:57 +02:00
Karma Riuk
3ec6667ba3 improved logging errors 2025-07-09 11:46:47 +02:00
Karma Riuk
c65cefe867 extracted to a function the casting of the
different types to make tests cleaner
2025-07-09 11:07:21 +02:00
Karma Riuk
79b1aeb45f can now parse identifiers and integer literals 2025-07-09 10:16:13 +02:00
Karma Riuk
c9e21213fd made setup for expression parsing 2025-07-08 15:52:40 +02:00
Karma Riuk
d10e5676c1 better use of fixtures for resource allocation and
dealocation
2025-07-08 15:45:38 +02:00
Karma Riuk
83df4955d4 added tests for the stringification of the program 2025-07-08 11:18:54 +02:00
Karma Riuk
902f5a16df using fixtures (not super necessary, but nice) 2025-07-08 10:58:51 +02:00
Karma Riuk
2dfff61346 using test suites 2025-07-08 10:48:35 +02:00
Karma Riuk
1638ddbfa1 fixed tests 2025-07-07 18:33:27 +02:00
Karma Riuk
b98424aa5f renamed let to let_stmt 2025-07-07 17:44:11 +02:00
Karma Riuk
39eafe2360 made tests for return statements 2025-07-07 17:39:07 +02:00
Karma Riuk
7b916b2a0b created the parser dir test to avoid having a
bunch of "unrelated" tests in one file
2025-07-07 17:20:21 +02:00
Karma Riuk
132dc65240 added some sort of error generation when parsing
errors occur
2025-07-07 15:04:23 +02:00
Karma Riuk
bbac513aa9 checkign that the casting of the let statement
doesn't throw
2025-07-07 15:01:46 +02:00
Karma Riuk
de465b6122 very basic parser of let statements 2025-07-03 13:30:56 +02:00
Karma Riuk
4da5313db5 using require instead of check to fail fast 2025-07-02 23:12:28 +02:00
Karma Riuk
aee7a741b1 added EQ and NEQ 2025-07-01 18:01:45 +02:00
Karma Riuk
7973f7522c extended lexer to new keywords 2025-06-30 00:36:31 +02:00
Karma Riuk
5cc7147909 extended single char tokens 2025-06-30 00:27:30 +02:00
Karma Riuk
69217fdf90 added test for full lexer (missing impl) 2025-06-29 20:28:53 +02:00
Karma Riuk
ffff13b2e0 lexer can now read single character tokens 2025-06-29 12:33:37 +02:00
Karma Riuk
ca05c3577a renamed EOF_ to END_OF_FILE 2025-06-29 12:33:09 +02:00