Commit Graph

61 Commits

Author SHA1 Message Date
Karma Riuk
98fb161bba added macro for debugging 2025-07-15 01:43:39 +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
4a9deff8da extracted the parsing of the function parameters
into it's own function (will be useful for the
parsing of the parameters in the function calls)
2025-07-15 01:18:00 +02:00
Karma Riuk
e2dfca2679 renamed function->block to function->body 2025-07-15 01:13:52 +02:00
Karma Riuk
afbabd6c9e added check for corner case 2025-07-15 01:11:46 +02:00
Karma Riuk
0b2a12cef7 added parsing for function literals 2025-07-15 00:56:40 +02:00
Karma Riuk
85f530f5f9 made the parsing functions for the different nodes
return the type they are parsing (necessary for
the parsing of the identifiers while parsing the
list of parameteres in a function literal)
2025-07-15 00:24:53 +02:00
Karma Riuk
586a172d90 removed sus blank line 2025-07-15 00:07:39 +02:00
Karma Riuk
d94bb99381 fixed implementation of parse block 2025-07-15 00:04:58 +02:00
Karma Riuk
f0f748f7f5 uncommented tracers and using a macro to enable it
or disable it
2025-07-14 20:15:18 +02:00
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
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
6cd99c22fe added a way to show the call stack of the functions 2025-07-11 19:48:55 +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
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
a7f5950a55 implemented infix operator parsing 2025-07-11 10:30:37 +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
ed3cf748e2 properly deallocating the prefix obeject 2025-07-11 09:01:09 +02:00
Karma Riuk
7f1cc6f45e can now parse prefix expressions! 2025-07-09 12:02:01 +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
c9e21213fd made setup for expression parsing 2025-07-08 15:52:40 +02:00
Karma Riuk
83df4955d4 added tests for the stringification of the program 2025-07-08 11:18:54 +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
b98424aa5f renamed let to let_stmt 2025-07-07 17:44:11 +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
de465b6122 very basic parser of let statements 2025-07-03 13:30:56 +02:00
Karma Riuk
896b9001c7 added default value to lexer field to avoid
compiler complaints
2025-07-02 23:00:09 +02:00
Karma Riuk
3547822d3e forgot the pragma once for the hpps 2025-07-02 11:17:34 +02:00
Karma Riuk
e773cb649f added the current character to the lexer struct
for cleaner structure
2025-07-01 18:59:43 +02:00
Karma Riuk
69bee723a2 implemented very simple repl 2025-07-01 18:43:25 +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