Commit Graph

54 Commits

Author SHA1 Message Date
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
Karma Riuk
dec93f8272 implemented lexer for a more complex subset of the
monkey language
2025-06-30 00:12:28 +02:00
Karma Riuk
c322b69590 renamed IDENT to IDENTIFIER because i kept reading
indent
2025-06-29 20:04:20 +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
Karma Riuk
1c928616a4 written structure and tests for lexer, missing
implementation
2025-06-29 10:56:51 +02:00
Karma Riuk
ccfc3ed0f7 fixed bug 2025-06-29 10:56:32 +02:00
Karma Riuk
2aff81ba4c fixed token header and made the tokenTypeStrings
not seeable from outside modules
2025-06-29 10:43:12 +02:00