Convert the parser to use an enum for tokens, instead of plain strings,
adding in the ability to tokenise strings properly (e.g. (foo "a b c")
calls foo with one argument). Also, track the current column and line number
while parsing.
The REPL now prints the pretty-printed result, and gives slightly nicer error
messages on failure. And, use readline to get command history and working
arrow keys.
Convert the parser to use an enum for tokens, instead of plain strings, adding in the ability to tokenise strings properly (e.g.
(foo "a b c")
calls foo with one argument). Also, track the current column and line number while parsing.The REPL now prints the pretty-printed result, and gives slightly nicer error messages on failure. And, use readline to get command history and working arrow keys.