Skip to content

Latest commit

 

History

History
65 lines (61 loc) · 1.41 KB

File metadata and controls

65 lines (61 loc) · 1.41 KB

todo

lexer

  • number literals
  • string literals
  • boolean literals
  • null literals
  • identifiers
  • keywords
  • operators
  • delimiters
  • comments
  • error handling (unknown tokens)

parser

  • number literals
  • string literals
  • boolean literals
  • null literals
  • identifiers
  • functions
  • function calls
  • blocks
  • return expressions
  • if statements
  • else statements
  • binary expressions
  • unary expressions
  • variables
  • comments
  • switch statements
  • while statements
  • member access (dot operator)
  • error handling (syntax errors)

typechecker

  • variables
    • infer type from usage
    • annotation validation
  • functions
    • infer return type from usage
    • type consistency
    • parameter type validation
  • function call type validation
  • if statements
  • expressions
  • binary expressions
  • unary expressions
  • literals
  • identifiers
  • member access

code generator (llvm-bindings)

  • functions
  • returns
  • number literals
  • if statements
  • switch statements
  • while statements
  • variables
  • binary expressions
  • unary expressions
  • string comparison (for switch/case)
  • error handling (invalid IR)
  • advanced features (structs, arrays, etc.)