* REPL ** DONE Fix prompt ** TODO Catch Ctrl+C and friends Maybe use a readline type library? * Lexer ** DONE Strings ** DONE I hate the way multiple character tokens are implemented ** TODO Handle different base numbers ** TODO Token positions ** TODO String escapes * Evaluator ** DONE Fix precedence ** DONE Use macros for infix integer expression ** DONE Be able to lookup identifiers The environment was being reset every loop ** DONE Precedence is still not quite right It is because the minus operator is always considered to be prefix ** TODO Print blocks correctly ** TODO Fix ~inspect-object~ for function ** TODO Indexing strings ** TODO Check that ~index~ is a valid integer when indexing * Parser ** DONE Use ~position~ instead for precedence table ** DONE Call expressions ** DONE Fix ~parse-function-parameters~ ** DONE Fix ~parse-function-literal~ ** DONE Fix ~parse-expression-list~ It does not collect the last expression It is also an infinite loop ** DONE Signal an error in ~parse-expression~ when we can't find a prefix ** TODO Do not signal errors from lisp Or at least catch them in the main loop