Compare commits

...

2 Commits

Author SHA1 Message Date
34d35d6039 compile_commands.json should be generated per person
All checks were successful
ci/woodpecker/push/workflow Pipeline was successful
2025-09-30 21:44:14 +03:00
a476d1b9e9 Updated README.md, added status badge for continuous integration 2025-09-30 21:39:59 +03:00
3 changed files with 22 additions and 13 deletions

3
.gitignore vendored
View File

@@ -1,2 +1,3 @@
build/*
.cache
.cache
compile_commands.json

View File

@@ -1,9 +1,11 @@
# Lispy stuff
[![status-badge](https://ci.emin.software/api/badges/2/status.svg)](https://ci.emin.software/repos/2)
Simple lisp-ish language compiler written in C++.
Right now it doesn't compile much - it's just a parser.
The goal is to emit bytecode. The bytecode format is not decided yet.
The end goal is to emit bytecode. The bytecode format is not decided yet.
## Build
@@ -16,11 +18,14 @@ cmake ..
make
```
This will build two executables, `main` and `test`. `test` runs all tests
on the compiler itself
## Development
I use clangd as the language server. Appropriate `compile_commands.json`
(required for clangd, otherwise it can not find include files) is provided.
If you'd like to generate them yourself, just use cmake:
I use clangd as the language server. If you want your include files to be handled
correctly, you'll need to generate `compile_commands.json` yourself. You can
do this using cmake:
```bash
cd build
@@ -28,4 +33,15 @@ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
cp compile_commands.json ../
```
After this, clangd should not give you errors on every included header.
## Progress
Woodpecker CI/CD system is integrated.
Currently using Catch2 for unit testing.
Lexing - complete, more token types may be added as necessary
Parsing - This is the next step.
Optimizations -
Emitting Bytecode - the goal.

View File

@@ -1,8 +0,0 @@
[
{
"directory": "/home/haxala1r/Desktop/Programming/C++/lispy-stuff/build",
"command": "/usr/bin/c++ -I/home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/include -o CMakeFiles/main.dir/src/main.cpp.o -c /home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/main.cpp",
"file": "/home/haxala1r/Desktop/Programming/C++/lispy-stuff/src/main.cpp",
"output": "CMakeFiles/main.dir/src/main.cpp.o"
}
]