- Implement function declaration and call
- Change the precalculated variable stack positions to contain the
offset from the end instead of the absolute position. This is
important for passing fun args on the stack
- Add the ability to offset the stackframes. This is used to delete the
stack where the fun args have been stored before the block executes
- Implement exit type for blocks in interpreter. This is used to get the
return values and propagate them where needed
- Add recursive fibonacci examples
- Declarations are now separate statements
- Generate unknown var errors when vars are not declared
- Replace Peekable by new custom PutBackIter type that allows for
unlimited putback and therefore look-ahead
- Extract keywords, literals and combo tokens into separate sub-enums
- Add a macro for quickly generating all tokens including the sub-enum
tokens. This also takes less chars to write