From ef8cf84456a70cd1376ab6ba72681472e0a50fe5 Mon Sep 17 00:00:00 2001 From: laentropia Date: Sat, 11 Apr 2026 22:41:19 -0600 Subject: [PATCH 1/2] addition: added arena library --- CMakeLists.txt | 27 ++++++++++++++++++++++++++- external/arena | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) create mode 160000 external/arena diff --git a/CMakeLists.txt b/CMakeLists.txt index 79429ed..a64adf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,14 @@ project(calculator VERSION 1.0 LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) +include(FetchContent) + +FetchContent_Declare( + arena + GIT_REPOSITORY https://laentropia-homelab.tail7368da.ts.net/laentropia/Arena.git + GIT_TAG main + SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/arena +) # Export compile_commands.json (para clangd) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -14,12 +22,29 @@ add_compile_options( ) -include_directories(include) +FetchContent_MakeAvailable(arena) + +add_library(arena STATIC + external/arena/src/arena.c +) + +target_include_directories(arena + PUBLIC ${CMAKE_SOURCE_DIR}/external/arena/include +) add_library(calculator_lib src/lexer.c src/parser.c src/evaluator.c + src/ASTNodeArray.c +) + +target_include_directories(calculator_lib + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include +) + +target_link_libraries(calculator_lib + PUBLIC arena ) add_executable(calculator src/main.c) diff --git a/external/arena b/external/arena new file mode 160000 index 0000000..3d3b859 --- /dev/null +++ b/external/arena @@ -0,0 +1 @@ +Subproject commit 3d3b8596ccf2e31983c0c83eb36572a1e4399ec4 From fb27e1e34c5e68f7275b92cc869dbbc560cf7a82 Mon Sep 17 00:00:00 2001 From: laentropia Date: Mon, 13 Apr 2026 06:40:31 -0600 Subject: [PATCH 2/2] addition: added arena library to this shit --- include/evaluator.h | 1 + include/parser.h | 1 + src/parser.c | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/evaluator.h b/include/evaluator.h index 78c5730..d176bd2 100644 --- a/include/evaluator.h +++ b/include/evaluator.h @@ -2,6 +2,7 @@ #define EVALUATOR_H #include "lexer.h" +#include "arena.h" #include int64_t evaluate(ASTNode *tree); diff --git a/include/parser.h b/include/parser.h index 911d964..03d5443 100644 --- a/include/parser.h +++ b/include/parser.h @@ -2,6 +2,7 @@ #define PARSER_H #include "lexer.h" +#include "arena.h" #include typedef struct { diff --git a/src/parser.c b/src/parser.c index c2ac315..6803508 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,9 +1,10 @@ #include "parser.h" #include "lexer.h" +#include "arena.h" #include #include #include -#include + uint8_t node_lbp(ASTNode node) { if (node.type == NODE_INTEGER) {