…g where all instances of Lupin::Types::Table had the same #hash result.
…the 'exit' variable to Kernel.exit so it can be called from Lua. Also fix () and  precedence issue where foo()['k'] and foo['k']() wouldn't work. Also remove shambles of metamethods implementation. I'll figure it out later.
… and other times were integers.
… clean up the representation of literals in the AST. Fix an occurance where true parses as false and vice versa. Implement #eql? and #hash on Lupin::Types::Value, allowing for much more natural usage of the Table type.
…) to implement some of the primitive operations on Lua values. Also implemented #type, #getmetatable, and #setmetatable, of which only #type is used at this time. Also moved Generator#try_tonumber to Lupin::Value.
… Code, and Generator. At this point, State#compile always returns a Code object that returns true, but this will change (obviously) when I build out Lupin::Generator.
…ll missing behaviors that depend on metatables.
…x for his advice.
…d the 'not' operator.
…ta after a valid match isn't ignored.
…ted matches in the parser into their own rules to make sure it only matches on those values.
…g code into match mixins. Also moved the escape sequences code out of Lupin::AST::String and into a match mixin to decouple the file format from the AST.
…to use S-expressions instead of a hand-crafted AST node tree.
… referring to Lua 5.0 instead of 5.1.
… and '-'.) Also cleaned up some whitespace mis-handling around the word operators (and/or/not). Implemented bytecode for the 'not' operator.