Files
mash/README.md

46 lines
1.1 KiB
Markdown

# 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 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:
```bash
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. 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:
```bash
cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
cp compile_commands.json ../
```
## 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.