* obj::Bool builtin type is used for truthiness and decision-making
* Branches are compiled and seem to be working for basic integer
comparison
* Updated version of Shredder to what is current as of writing
* CheckTruth VM instruction that will explicitly set the condition flag
* Probably some other stuff
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
* Builtin functions print and println have been added
* If a global lookup fails, the VM will attempt to look up a builtin
* Vm::call(fun, args) allows interrupting the current execution state
and starting a new function instead. It will return the value left on
top of the stack.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
Functions are compiled in the most naiive way right now. I want to fix
up how scope lookups are done before it becomes too much to update.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
* Add lexer and parser using lrpar crate
* AST is added and constructed via lexer and parser
* Command line program `not` will read a file and parse it
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>