Commit Graph

57 Commits

Author SHA1 Message Date
Karma Riuk
47379c6635 implemented simple evaluator for program,
statements and integer literals, together with
tests
2025-07-19 15:03:38 +02:00
Karma Riuk
7b01840f4d moved some stuff around in an attempt to make
things cleaner (not sure it is, but we tryin)
2025-07-19 13:41:25 +02:00
Karma Riuk
c943380d58 moved the utils for the parser to a global utils
folder for the tests (that utils is includable
only by the tests and not the src code, I added a
compiler flag only for the tests in the makefile,
but the compiler_flags.txt is global for the lsp,
gotta be careful with that)
2025-07-19 13:27:25 +02:00
Karma Riuk
20b2c4a818 added checks for operator precedence with function
call
2025-07-15 20:09:08 +02:00
Karma Riuk
2b811a4bb9 added tests for malformed function call to check
for memory safety
2025-07-15 20:00:30 +02:00
Karma Riuk
a016bbaa5e added parsing of function call 2025-07-15 19:42:43 +02:00
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