Skip to content
This repository has been archived by the owner on Jan 18, 2025. It is now read-only.

Latest commit

 

History

History
67 lines (45 loc) · 1.34 KB

todo.md

File metadata and controls

67 lines (45 loc) · 1.34 KB

Goals

Try to implement a tiny language but full dev stack.

  • JS is our C++
  • no dependencies
  • pico JS implementation
  • it's fun and easy to follow

Stream 1

  • simple lexer (tokenazier)
  • context aware errors for lexer

Stream 2

  • simple parser (produces AST)
  • context aware errors for parser

Stream 3

  • just test things as they are

Stream 4

  • add operator precedence

Stream 5

  • add suport for both division and regexps
  • add suport for comments

Stream 6

  • remove logging 🤦‍♂️
  • do some refactoring
  • implement AST evaluator
  • context aware errors for evaluator
  • implement some simple exception logic

Stream 7

  • primitive type checking

Stream 8

  • finish the refactoring
  • add some syntax highlighting

Stream 9

  • extend lexer and parser with conditionals etc

Later

  • implement functions and then closures
  • macroses
  • maybe switch lexing mode from "expression" to "operator"
  • syntax highlight the error messages
  • bytecode emission and execution
  • implement some more complex exception propagation
  • babel-like transformations and code emition
  • VSCode language server
  • try bison in JS
  • emit WASM friendly output
  • try true exceptions
  • maybe something like source code rewrite as in prettier