Skip to content

Latest commit

 

History

History
57 lines (53 loc) · 1.38 KB

File metadata and controls

57 lines (53 loc) · 1.38 KB

Features

Current Features

  • functions
  • simple types (int, float, bool, char)
  • binary operations (=, +, -, *, /, %)
  • comparisons (<, <=, >, >=, ==, !=)
  • boolean operators (&&, ||, !)
  • bitwise operators (&, |, ^, <<, >>, ~)
  • compound binary operators (+=, -=, *=, %=, /=, &=, |=, ^=)
  • unary operators (+, -)
  • basic scope
  • extern functions
  • nested functions (temp disabled)
  • if, else if, else statements
  • for loops
  • while loops
  • loop control (continue, break)
  • function control (return)
  • modules can be defined
  • scope operator
  • using statement
  • multiple source files
  • more types (f32, f64, i8, i16, i32, i64, u8, u16, u32, u64)
  • casts (int, float, bool, char)
  • switch statement (case, default)
  • scope blocks

Features Required for Bootstrapping

  • Classes
  • Virtual Inheritance
  • Vectors
  • Maps
  • Strings
  • LLVM Interface
  • Text Output
  • File Reading/Writing
  • Memory Management
  • Pointers
  • Compile Time Platform Checks
  • Program Arguments

Future Features

  • class & inheritance
  • custom types
  • const variables
  • auto type deduction
  • compile time code

Compiler Features

  • Optimisations
  • Debug Info
  • Generate Executable
  • Incremental Building/Linking
  • Better Build Information
    • Warnings (with levels)
    • More Detailed Error Messages