Compare commits
2 Commits
acc9b94c1f
...
34d35d6039
Author | SHA1 | Date | |
---|---|---|---|
34d35d6039 | |||
a476d1b9e9 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
build/*
|
||||
.cache
|
||||
.cache
|
||||
compile_commands.json
|
24
README.md
24
README.md
@@ -1,9 +1,11 @@
|
||||
# Lispy stuff
|
||||
|
||||
[](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.
|
||||
|
||||
|
@@ -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