Skip to content

Latest commit

 

History

History
executable file
·
43 lines (43 loc) · 1.49 KB

TODO.md

File metadata and controls

executable file
·
43 lines (43 loc) · 1.49 KB

TODO

  • 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 and string[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