Jut setting all up for the calculator

This commit is contained in:
2026-02-28 13:59:02 -06:00
commit 317e9f3b6b
13 changed files with 112 additions and 0 deletions

54
.gitignore vendored Normal file
View File

@@ -0,0 +1,54 @@
# Directories
build/
build-*/
cmake-build-*/
.cache/
out/
out/Debug/
out/Release/
# Cmake files
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
CTestTestfile.cmake
Testing/
compile_commands.json
../compile_commands.json
build/compile_commands.json
# Make / Ninja
Makefile
*.ninja
*.ninja_deps
*.ninja_log
rules.ninja
# Object files
*.o
*.obj
*.lo
*.la
# Binaries
*.out
*.exe
*.dll
*.so
*.so.*
*.dylib
*.a
# Debug / Sanitizer
*.dSYM/
*.gcno
*.gcda
*.gcov
# Editors
.vscode/
.idea/
*.swp
*.swo
*~

36
CMakeLists.txt Normal file
View File

@@ -0,0 +1,36 @@
cmake_minimum_required(VERSION 3.20)
project(calculator VERSION 1.0 LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
# Export compile_commands.json (para clangd)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_compile_options(
-Wall
-Wextra
-Wpedantic
)
include_directories(include)
add_library(calculator_lib
src/lexer.c
src/parser.c
src/ast.c
src/evaluator.c
)
add_executable(calculator src/main.c)
target_link_libraries(calculator calculator_lib)
# ------------------------
# Testing
# ------------------------
enable_testing()
add_subdirectory(test)

0
include/ast.h Normal file
View File

0
include/evaluator.h Normal file
View File

0
include/lexer.h Normal file
View File

0
include/parser.h Normal file
View File

0
src/ast.c Normal file
View File

0
src/evaluator.c Normal file
View File

0
src/lexer.c Normal file
View File

7
src/main.c Normal file
View File

@@ -0,0 +1,7 @@
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
puts("Hello");
return EXIT_SUCCESS;
}

0
src/parser.c Normal file
View File

10
test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,10 @@
find_package(cmocka REQUIRED)
add_executable(test_parser test_parser.c)
target_link_libraries(test_parser
calculator_lib
cmocka::cmocka
)
add_test(NAME parser_tests COMMAND test_parser)

5
test/test_parser.c Normal file
View File

@@ -0,0 +1,5 @@
#include <stdlib.h>
int main() {
return EXIT_SUCCESS;
}