- Add classes syntax
- Add type inference to classes
- Add accessing syntax & checking
- Add type generation to classes
- Add methods to classes
- Implement
const
&val
declarations - String equals string
- Replace add, shl, etc naming with +, <<, etc
- Type promotion vs demotion syntax
- Type demotion implementation
- Only link functions when needed
- Figure out a quick way to link builtins rather than bundle them all together
- Remove allocas from single-use variables
- String references
- Add
string.length
andstring[idx]
- Raw strings using backticks
- String interpolation
- Only use
llvm-dis
on-debug
mode - Add an
opt
flag to control optimization - Complex numbers
- Complex number to string
- Complex number operations
- Add syntax when no mode is included
- Warn unused variables
- Seperate errors from global to file-based
- Add error directly into lexer/parser/checker/generation (no name)
- Try parsing multiple files
- Implement modules
- Create name for packages
- Implement way of storing project name, modules etc (maybe TOML?)
- Implement import & exports
- Ignore unused things in main modules
- More sensical errors for missing braces, brackets & parentheses
- Check for too large integers and unsigned integers
- More sensical unknown token errors
- More sensicle EOF errors
- Add control flow analysis!
- Disable looped definitions (ex: Person has a Computer, which can an array of Person)
- 0x, 0b, 0o etc numbers
- Underscore assignment
- Closures
- Empty blocks