Lispy stuff

status-badge

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
mashed potatoes or sth idk
Readme 97 KiB
Languages
C++ 95.6%
CMake 4.4%