A compiler project written in c, the language is called np (not pascal), its supposed to be similar to c in terms of machine distance. However, it should provide features that make programming easier. You can find multiple examples of code under ./programs
Progress | Feature |
---|---|
⬜ | Low level (C style) |
⬜ | Simplicity (C style) |
⬜ | Fast (C style) |
⬜ | Useful builtins (Python style) |
Progress | Feature |
---|---|
⬜ | Compiling process max. takes 100 % more than C |
⬜ | Useful error messages |
✅ | No external libraries |
⬜ | Using selfmade lex/parse generator |
⬜ | Executable process max. takes 100 % more than C |
⬜ | Self hosted |
⬜ | Supports Linux |
⬜ | Supports Windows |
⬜ | Supports ARM |
Progress | Feature |
---|---|
⭕ | Language specification |
✔️ | Scanner |
⭕ | Parser |
⭕ | Irgen |
❌ | Codegen |
❌ | Optimizations |
- Recommended way to contribute is via vscode in Windows with wsl or simply in Linux. If you want to use another IDE do so as you wish though. The advantage of using vscode is that there is a proper workflow setup already.
- The settings for formatting and the extensions are in the /.vscode directory, you can see the recommended extensions in the extensions tab.
- Fork and make a pull request
Directory/File | Purpose |
---|---|
/src | All the source code and headers for the compiler |
/programs | Test programs to test the parser |
/gp-parsergen | Seperate project which provides the parser generator for the project |
/documentation | Contains the doxygen documentation and documentation about the language itself (i.e. lexing patterns and the bnf of the syntax) |
/build | Contains the build output and the data generated by cmake |
/.vscode | Contains launch settings, extension recommendations, settings and tasks |
/.github | Contains all github workflows |
/.gitmodules | Contains the link for github to get the parser generator |