Commit Graph

  • 47379c6635 implemented simple evaluator for program, statements and integer literals, together with tests main Karma Riuk 2025-07-19 15:03:38 +02:00
  • 7b01840f4d moved some stuff around in an attempt to make things cleaner (not sure it is, but we tryin) Karma Riuk 2025-07-19 13:41:25 +02:00
  • 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) Karma Riuk 2025-07-19 13:27:25 +02:00
  • d1dd5f9dab made our wrapper objects for all of our primitve datatypes: ints, bools and null Karma Riuk 2025-07-19 13:04:30 +02:00
  • c841cfe680 made the RLPL (read-lex-print-loop) become a RPPL (read-parse-print-loop) Karma Riuk 2025-07-15 20:21:53 +02:00
  • 20b2c4a818 added checks for operator precedence with function call Karma Riuk 2025-07-15 20:09:08 +02:00
  • 2b811a4bb9 added tests for malformed function call to check for memory safety Karma Riuk 2025-07-15 20:00:30 +02:00
  • a016bbaa5e added parsing of function call Karma Riuk 2025-07-15 19:42:43 +02:00
  • 59bff59cf7 renamed function for parsing function literal to avoid confusion with parsing function calls Karma Riuk 2025-07-15 09:25:00 +02:00
  • 98fb161bba added macro for debugging Karma Riuk 2025-07-15 01:43:39 +02:00
  • 6313027d07 reformulated the parsing of the parameters and made it memory safe Karma Riuk 2025-07-15 01:43:22 +02:00
  • 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) Karma Riuk 2025-07-15 01:18:00 +02:00
  • e2dfca2679 renamed function->block to function->body Karma Riuk 2025-07-15 01:13:52 +02:00
  • c6daa5c2af added tests for malformed function literal to check for memory leaks Karma Riuk 2025-07-15 01:11:53 +02:00
  • afbabd6c9e added check for corner case Karma Riuk 2025-07-15 01:11:46 +02:00
  • 057d6fc9f1 renamed subcase properly Karma Riuk 2025-07-15 00:58:49 +02:00
  • 0b2a12cef7 added parsing for function literals Karma Riuk 2025-07-15 00:56:12 +02:00
  • 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) Karma Riuk 2025-07-15 00:24:53 +02:00
  • 586a172d90 removed sus blank line Karma Riuk 2025-07-15 00:07:39 +02:00
  • 767a2ebcb1 added tests for malformed if to check of memory leaks Karma Riuk 2025-07-15 00:05:48 +02:00
  • d94bb99381 fixed implementation of parse block Karma Riuk 2025-07-15 00:04:58 +02:00
  • 7c55e58e1a removed captures that don't capture because of scope issues with doctest Karma Riuk 2025-07-14 23:56:51 +02:00
  • cbafb2e814 extracted and abstracted function Karma Riuk 2025-07-14 20:15:51 +02:00
  • f0f748f7f5 uncommented tracers and using a macro to enable it or disable it Karma Riuk 2025-07-14 20:15:18 +02:00
  • 1cda075f57 added guards for freeing pointers because it caused seg faults Karma Riuk 2025-07-14 20:14:54 +02:00
  • 97b81e6771 fixed mistake that caused undefined behaviour Karma Riuk 2025-07-14 20:14:39 +02:00
  • 870567ec6b removed dereferencing pointers when outputing to stdout because i wanted the option of seeing wethere a pointer was null or not Karma Riuk 2025-07-14 20:14:03 +02:00
  • 34e4bfe9c9 fixed some memory leaks Karma Riuk 2025-07-14 15:20:30 +02:00
  • 9e63c923da added parsing of if statements Karma Riuk 2025-07-14 15:19:05 +02:00
  • 86574552aa added parsing and testing for grouped expressions Karma Riuk 2025-07-12 15:22:45 +02:00
  • ab17545c93 made another test for boolean parsing in general expression Karma Riuk 2025-07-12 15:04:13 +02:00
  • e170afc840 used overloaded function to make code cleaner Karma Riuk 2025-07-11 22:17:01 +02:00
  • aaec4cefcf added prefix parsing for boolean literals Karma Riuk 2025-07-11 21:00:11 +02:00
  • 4da5f32aea added boolean literals and tests for them (no parsing yet) Karma Riuk 2025-07-11 20:55:02 +02:00
  • 8c1f4e10cd made more helper functions for testing Karma Riuk 2025-07-11 20:34:18 +02:00
  • 6cd99c22fe added a way to show the call stack of the functions Karma Riuk 2025-07-11 19:48:55 +02:00
  • c9ffeafd5f added extensive testing for operator precedence Karma Riuk 2025-07-11 11:39:55 +02:00
  • a1192204b1 fixed slight bug Karma Riuk 2025-07-11 11:39:48 +02:00
  • 7192bb318c fixed the to string function of some nodes Karma Riuk 2025-07-11 11:39:25 +02:00
  • 552e68169f fixed compiler warning Karma Riuk 2025-07-11 11:21:45 +02:00
  • 63f22a1b40 removed unused include Karma Riuk 2025-07-11 11:19:28 +02:00
  • 2174781b77 using smart pointers instead of normal ones for easier setup of tests (to call setup() multiple times without leaks) Karma Riuk 2025-07-11 11:16:16 +02:00
  • 826f4de77a updated return tests Karma Riuk 2025-07-11 11:10:29 +02:00
  • a7f5950a55 implemented infix operator parsing Karma Riuk 2025-07-11 10:30:37 +02:00
  • 6e471a91d5 fixed test Karma Riuk 2025-07-11 10:30:28 +02:00
  • 1ec438c900 made infix string better Karma Riuk 2025-07-11 09:12:42 +02:00
  • 702c34a736 written tests for infix expressions Karma Riuk 2025-07-11 09:07:33 +02:00
  • f038d30d77 written the test in a different way, since we can't use for loops around subcases Karma Riuk 2025-07-11 09:07:12 +02:00
  • ed3cf748e2 properly deallocating the prefix obeject Karma Riuk 2025-07-11 09:01:09 +02:00
  • c55c6b2b20 forgot that statement and expression had a common ancestor Karma Riuk 2025-07-11 08:45:15 +02:00
  • 7f1cc6f45e can now parse prefix expressions! Karma Riuk 2025-07-09 12:02:01 +02:00
  • c7a30a0028 made casting issues log an even better message Karma Riuk 2025-07-09 12:01:09 +02:00
  • 2ff6c695f7 removed useless import Karma Riuk 2025-07-09 12:00:57 +02:00
  • 3ec6667ba3 improved logging errors Karma Riuk 2025-07-09 11:46:47 +02:00
  • c65cefe867 extracted to a function the casting of the different types to make tests cleaner Karma Riuk 2025-07-09 11:06:28 +02:00
  • 79b1aeb45f can now parse identifiers and integer literals Karma Riuk 2025-07-08 18:14:37 +02:00
  • e3cbba08b1 fixed tests Karma Riuk 2025-07-08 18:08:17 +02:00
  • 74c555bfc0 added possibility of printing nodes Karma Riuk 2025-07-08 18:05:52 +02:00
  • 96d76153d4 added option for subcase Karma Riuk 2025-07-08 18:05:29 +02:00
  • 8fb0ef2be7 added quotes to avoid any cli issue Karma Riuk 2025-07-08 17:23:34 +02:00
  • c9e21213fd made setup for expression parsing Karma Riuk 2025-07-08 15:52:40 +02:00
  • d10e5676c1 better use of fixtures for resource allocation and dealocation Karma Riuk 2025-07-08 15:45:38 +02:00
  • 83df4955d4 added tests for the stringification of the program Karma Riuk 2025-07-08 11:18:54 +02:00
  • 902f5a16df using fixtures (not super necessary, but nice) Karma Riuk 2025-07-08 10:58:51 +02:00
  • 2dfff61346 using test suites Karma Riuk 2025-07-08 10:36:08 +02:00
  • ef624de4ef a little bit of cleanup Karma Riuk 2025-07-08 10:20:10 +02:00
  • 31cb483602 added string function to all nodes of ast Karma Riuk 2025-07-08 10:17:38 +02:00
  • da2b6716b1 moved program to it's own files Karma Riuk 2025-07-08 09:58:02 +02:00
  • 1d259e6988 forgot pragma once Karma Riuk 2025-07-08 09:56:47 +02:00
  • d13f9bf9f8 added the parsing of expression statements Karma Riuk 2025-07-08 09:51:15 +02:00
  • 08aacf0416 extracted the parsing of the "expressions" to it's own function so we can just modify that once we get there Karma Riuk 2025-07-08 09:50:41 +02:00
  • 0b9d7d9c33 added return parsing Karma Riuk 2025-07-07 18:33:39 +02:00
  • 1638ddbfa1 fixed tests Karma Riuk 2025-07-07 18:33:27 +02:00
  • b98424aa5f renamed let to let_stmt Karma Riuk 2025-07-07 17:44:11 +02:00
  • 39eafe2360 made tests for return statements Karma Riuk 2025-07-07 17:39:07 +02:00
  • 7b916b2a0b created the parser dir test to avoid having a bunch of "unrelated" tests in one file Karma Riuk 2025-07-07 17:20:21 +02:00
  • 132dc65240 added some sort of error generation when parsing errors occur Karma Riuk 2025-07-07 15:02:06 +02:00
  • bbac513aa9 checkign that the casting of the let statement doesn't throw Karma Riuk 2025-07-07 15:01:46 +02:00
  • de465b6122 very basic parser of let statements Karma Riuk 2025-07-03 13:30:56 +02:00
  • c091f7f021 added execution of valgrind on valgrind target Karma Riuk 2025-07-03 11:59:26 +02:00
  • ca74b67bb0 renamed tests to test Karma Riuk 2025-07-03 10:10:22 +02:00
  • 4da5313db5 using require instead of check to fail fast Karma Riuk 2025-07-02 23:12:28 +02:00
  • 896b9001c7 added default value to lexer field to avoid compiler complaints Karma Riuk 2025-07-02 23:00:09 +02:00
  • 6181fc8d9f added valgrind to targets to check for memory leaks Karma Riuk 2025-07-02 22:59:49 +02:00
  • d328ae60df added clangd config to disable semantic tokens on operators because seeing new and delete treated as operators was hurting my eyes Karma Riuk 2025-07-02 22:42:21 +02:00
  • 3547822d3e forgot the pragma once for the hpps Karma Riuk 2025-07-02 11:17:34 +02:00
  • e773cb649f added the current character to the lexer struct for cleaner structure Karma Riuk 2025-07-01 18:59:43 +02:00
  • 69bee723a2 implemented very simple repl Karma Riuk 2025-07-01 18:43:25 +02:00
  • aee7a741b1 added EQ and NEQ Karma Riuk 2025-07-01 18:01:45 +02:00
  • 7973f7522c extended lexer to new keywords Karma Riuk 2025-06-30 00:36:31 +02:00
  • 5cc7147909 extended single char tokens Karma Riuk 2025-06-30 00:27:30 +02:00
  • dec93f8272 implemented lexer for a more complex subset of the monkey language Karma Riuk 2025-06-30 00:12:28 +02:00
  • 69217fdf90 added test for full lexer (missing impl) Karma Riuk 2025-06-29 20:28:53 +02:00
  • c322b69590 renamed IDENT to IDENTIFIER because i kept reading indent Karma Riuk 2025-06-29 20:04:20 +02:00
  • ffff13b2e0 lexer can now read single character tokens Karma Riuk 2025-06-29 12:33:37 +02:00
  • ca05c3577a renamed EOF_ to END_OF_FILE Karma Riuk 2025-06-29 12:33:09 +02:00
  • 1c928616a4 written structure and tests for lexer, missing implementation Karma Riuk 2025-06-29 10:56:51 +02:00
  • ccfc3ed0f7 fixed bug Karma Riuk 2025-06-29 10:49:53 +02:00
  • 2aff81ba4c fixed token header and made the tokenTypeStrings not seeable from outside modules Karma Riuk 2025-06-29 10:43:12 +02:00
  • 9ad9a0b85b added src to inclusion for lsp Karma Riuk 2025-06-29 10:14:29 +02:00