I was curious Because I want the language to be more or less platform-independent and because of the ease-of-use, the compiler uses llvm as its backend. The Kaleidoscope Tutorial served as a basis for this project. I added features to it and used my own syntax. My goal with this language is to be able to teach others how to solve problems instead of writing code, so it should be as simple as possible.
You can find the docs in the Docs.md file.
- It's currently a bit of a manual a pain in the ass to add new core functions and they have to be specifically declared as external in the code
- Functions
- Calls
- Scopes
- Control flow:
- If-Else-Statements
- For-Loops
- While-Loops
- Types
- Numbers
- Strings
- Booleans
- Lists
- Variably sized lists
- Robust Type Checking
- General Features:
- Comments
- Importing of other files
- ASM Block
- Pointers
- Structures
- Standard Library
- Math
- String
- IO
- Random
- Time
- Better Errors
- Documentation
- Type checking (kinda)