Commit Graph

88 Commits

Author SHA1 Message Date
Karma Riuk
1cda075f57 added guards for freeing pointers because it
caused seg faults
2025-07-14 20:14:54 +02:00
Karma Riuk
97b81e6771 fixed mistake that caused undefined behaviour 2025-07-14 20:14:39 +02:00
Karma Riuk
870567ec6b removed dereferencing pointers when outputing to
stdout because i wanted the option of seeing
wethere a pointer was null or not
2025-07-14 20:14:03 +02:00
Karma Riuk
34e4bfe9c9 fixed some memory leaks 2025-07-14 15:20:30 +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
e170afc840 used overloaded function to make code cleaner 2025-07-11 22:17:01 +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
7192bb318c fixed the to string function of some nodes 2025-07-11 11:39:45 +02:00
Karma Riuk
552e68169f fixed compiler warning 2025-07-11 11:21:45 +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
1ec438c900 made infix string better 2025-07-11 09:12:42 +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
ed3cf748e2 properly deallocating the prefix obeject 2025-07-11 09:01:09 +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
e3cbba08b1 fixed tests 2025-07-08 18:08:17 +02:00
Karma Riuk
74c555bfc0 added possibility of printing nodes 2025-07-08 18:05:52 +02:00
Karma Riuk
96d76153d4 added option for subcase 2025-07-08 18:05:29 +02:00
Karma Riuk
8fb0ef2be7 added quotes to avoid any cli issue 2025-07-08 17:23:34 +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
ef624de4ef a little bit of cleanup 2025-07-08 10:20:10 +02:00
Karma Riuk
31cb483602 added string function to all nodes of ast 2025-07-08 10:17:38 +02:00
Karma Riuk
da2b6716b1 moved program to it's own files 2025-07-08 09:59:11 +02:00
Karma Riuk
1d259e6988 forgot pragma once 2025-07-08 09:56:47 +02:00
Karma Riuk
d13f9bf9f8 added the parsing of expression statements 2025-07-08 09:51:15 +02:00
Karma Riuk
08aacf0416 extracted the parsing of the "expressions" to it's
own function so we can just modify that once we
get there
2025-07-08 09:50:41 +02:00
Karma Riuk
0b9d7d9c33 added return parsing 2025-07-07 18:34:46 +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