Language- and Compiler development tools in .NET.
Yoakke is a collection of libraries aimed at compiler- and language developers to help them in their development. Most common tasks - like lexing and parsing - are completely automated, but extensibility is kept in mind at every step. All components let you roll your custom solution, but are capable enough to fit most cases by default.
Yoakke is still early in development. You can play around with the libraries, but there may be bugs or missing features. Please open an issue if you find a bug, or miss an important feature. All contributions are welcome!
If you want to try out the latest features, there are nightly releases on NuGet!
If you are experiencing build issues when using Visual Studio around Source Generators, please try enabling the option described here.
The most usable component is probably the syntax toolkit, called SynKit. There are many more components planned, see the next section for the roadmap.
This is a list of the libraries that are planned for implementation, along with their status:
- SynKit (π): A syntax toolkit to cover most syntax needs
- Lexer (π)
- Parser (π)
- Error reporting (π)
- Language Server Protocol (π)
- Custom IR and VM (π)
- Native backends (π)
- C front-end (π§)
Legend
- Done: β
- Consider mostly done: π
- Work in progress: π§
- Planned: π
Documentation is very much work-in-progress, but you can always find the latest version in the Documentation folder. Feel free to open up Pull-Requests, if you see mistakes!
Make sure to read our contributing document! Some developer documents about describing the projects is - hopefully - coming soon aswell.
Work in progress...
Work in progress...
If you use Yoakke and would be willing to show it, here is a badge you can copy-paste into your readme:
<a href="https://github.com/LanguageDev/Yoakke" alt="Using Yoakke"><img src="https://raw.githubusercontent.com/LanguageDev/Yoakke/master/.github/resources/UsingYoakke.svg" title="Using Yoakke" alt="Using Yoakke"/></a>
Thanks goes to these wonderful people (emoji key):
LPeter1997 |
WhiteBlackGoose |
Zachary Patten |
Neko |
Sang |
lucyelle |
PΓ©ter FΓ³nad |
Andrii Kurdiumov |
Friedrich von Never |
Chris |
Sam Harwell |
Cole Tobin |
Ikko Ashimine |
This project follows the all-contributors specification. Contributions of any kind welcome!