Skip to content

Latest commit

 

History

History
82 lines (60 loc) · 1.51 KB

todo.md

File metadata and controls

82 lines (60 loc) · 1.51 KB

Todos

Utility

  • Run files
  • Read from stdin

Basics

  • Add functions
  • Add void value
  • Call stack and scopes
  • Ifs
  • Fix lexical scope
  • Loops
  • bind operator
  • Throw / Catch
  • Array access
  • mutable state
  • fix: b + +a vs a ++ b

Docs

  • README
  • Document Grammar
  • More examples
  • Goals
  • Getting started

Compiler

  • JS Code Gen

Optimizer

  • Implment CFG data structures
  • Dead code removal
  • Static eval all the things
  • Inlining

Two Step Exec

  • Add meta functions

Utility

  • typeof function
  • Fix as_string vs to_string on Value
  • Super basic std lib
  • Basic operators

Fun

  • Better formatting
  • REPL Colors

Grammar/Parser

  • Regular "function foo() {}" style functions
  • Void expressions
  • Operator precedence
  • Fix operator precedence in more complicated cases
  • Reserved words in declarations (void, typeof)
  • Multiple semicolons after each other and in stating pos
  • Semicolons after block should be optional
  • Write custom lexer
  • Write custom parser?

Types

  • Add types to grammar
  • Basic static type checker (just check value variants)
  • Record types: just a list of slots
  • Type alias (Interface/Traits work by specifiying a type alias.)
  • Algebraic types (Option, etc)?

Complex Data Types

  • Literals for arrays
  • Literals for maps
  • References for complex types / GC
  • Equal for complex types