Compare commits

..

3 Commits

5 changed files with 31 additions and 2 deletions

View File

@@ -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)

1
external/arena vendored Submodule

Submodule external/arena added at 3d3b8596cc

View File

@@ -2,6 +2,7 @@
#define EVALUATOR_H
#include "lexer.h"
#include "arena.h"
#include <stdint.h>
int64_t evaluate(ASTNode *tree);

View File

@@ -2,6 +2,7 @@
#define PARSER_H
#include "lexer.h"
#include "arena.h"
#include <stdint.h>
typedef struct {

View File

@@ -1,9 +1,10 @@
#include "parser.h"
#include "lexer.h"
#include "arena.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
uint8_t node_lbp(ASTNode node) {
if (node.type == NODE_INTEGER) {