Skip to content

Latest commit

 

History

History
47 lines (46 loc) · 1.41 KB

TODO.md

File metadata and controls

47 lines (46 loc) · 1.41 KB
  • Better tests for IR
  • Make else blocks optional
  • Handle semicolons for multiple expressions
  • Handle empty function bodies
  • Create parse_block() abstraction
  • Reorganize
  • Test for all lexer errors
  • Test for all parser errors
  • Test for all type_checker errors
  • Test for all codegen errors
  • Test running code
  • More dead code detection
  • More context in parser errors
  • More context in codegen errors
  • Include file name in error
  • Add while
  • Desugar for loops
  • For loops ending in next need to handle conditional properly
  • break/next labels
  • Fix main exit code
  • Decide on redundant errors in codegen and the type checker
  • Force comparisons to be bools (parser)
  • Extensive testing of binops, especially compares
  • Ensure conditionals are bools
  • Add parser test for else if
  • Contextual type checking errors
  • Type checker variable shadowing
  • Block scope
  • Token output should be line based
  • Token output should include context info
  • Convert Err(NONCANBE)'s to fatal
  • Type hints in function arguments

Roadmap

  • Formalize grammar
  • Add primitive types
  • Add array types
  • Add desugar phase
  • Add string type
  • Globals
  • Type inference
  • Pointer types
  • Custom types
  • Manual memory management
  • Basic RAII
  • HashMap type
  • Parser error recovery