Lisp like go scripting
A Looks like lisp, but all Operations on data is done using functions that hook back out into go. The lisp code is only used to construct data flows on arbitrary lists and dicts.
Should result in fast execution with little to no overhead.
- Lexer(io.Reader) -> Token[]
- Parser(Token[]) -> Ast, error
- Compiler(Runtime, Ast) -> Program, error
Expected flow:
- Write lisp like code and load it into go using an io.Reader interface
- Lex the code into an array of Tokens
- Parse the array of tokens into an Ast or a parse error
- Prepare a Runtime with functions and data types
- Compile the Ast into a Program by checking it against the Runtime through static type analysis
- Call functions on the resulting Program