An LLVM based compiler for Kevlar
This project is far from complete, and since I don't have any experience of writing compilers, it will probably remain so for some time.
Feel free to check back once in a while!
TODO List:
- Refactor AST to use class-based nodes (In progress)
- Implement proper expression support (In progress)
- Fix lazy loading
- Switch to esbuild
- Switch to pnpm
- Use prettier
- Use a library to process cmd flags
Here's an overview of where the compiler is at currently:
Feature | Lexer | CST | AST | Codegen |
---|---|---|---|---|
int | yes | yes | yes | no |
boolean | yes | yes | yes | no |
float | yes | yes | yes | no |
if-else | yes | yes | no | no |
No codegen functionalities has been implemented yet due to my lack of experience with C/C++.
This project is in really early stage right now and is moving slowly due to the fact that I am a solo developer without much free time, so any contributions are appriciated.
By contributing, you agree that your contributions will be licensed under the GNU General Public License Version 3
polyc path/to/program.kev [--flag1] [--flag2] [--flag3] ...
For help page, run polyc
without any arguments.
node
Clone repo, cd in, and run:
npm install
npm run build-ts
You can find the launch script in bin/polyc
To make polyc globally accessible, run
sudo npm link