Compare commits
2 Commits
acc9b94c1f
...
34d35d6039
Author | SHA1 | Date | |
---|---|---|---|
34d35d6039 | |||
a476d1b9e9 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
build/*
|
build/*
|
||||||
.cache
|
.cache
|
||||||
|
compile_commands.json
|
24
README.md
24
README.md
@@ -1,9 +1,11 @@
|
|||||||
# Lispy stuff
|
# Lispy stuff
|
||||||
|
|
||||||
|
[](https://ci.emin.software/repos/2)
|
||||||
|
|
||||||
Simple lisp-ish language compiler written in C++.
|
Simple lisp-ish language compiler written in C++.
|
||||||
|
|
||||||
Right now it doesn't compile much - it's just a parser.
|
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
|
## Build
|
||||||
|
|
||||||
@@ -16,11 +18,14 @@ cmake ..
|
|||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This will build two executables, `main` and `test`. `test` runs all tests
|
||||||
|
on the compiler itself
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
I use clangd as the language server. Appropriate `compile_commands.json`
|
I use clangd as the language server. If you want your include files to be handled
|
||||||
(required for clangd, otherwise it can not find include files) is provided.
|
correctly, you'll need to generate `compile_commands.json` yourself. You can
|
||||||
If you'd like to generate them yourself, just use cmake:
|
do this using cmake:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd build
|
cd build
|
||||||
@@ -28,4 +33,15 @@ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
|
|||||||
cp compile_commands.json ../
|
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.
|
||||||
|
|
||||||
|
@@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
Reference in New Issue
Block a user