47f33f3dc0ce19121077ddf239f11c4f2739cf1a
Lispy stuff
Simple lisp-ish language compiler written in C++.
Right now it doesn't compile much - it's just a parser. The end goal is to emit bytecode. The bytecode format is not decided yet.
Build
I use cmake for the build system. I prefer to build out-of-tree, here's how to build if you've never used cmake:
cd build
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. 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:
cd build
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.
Description
Languages
C++
95.6%
CMake
4.4%