Fix bug where if an unquoted variable contains anthing besides a LeafNode, it doesn't evaluate the expression.
Fix bug where if an unquoted variable contains anthing besides a LeafNode, it doesn't evaluate the expression.

For example, say you have (def foo (. bar "some string")) and later have ~foo. This will insert the expression (. bar "some string") when we really just want the evaluated value of that expression.

To accomplish this, the get_binding function uses Node:: to add code that will rebind the variable to the final evaluated value of an expression inside the relevant scope. The scope is found because the Scope class now has a static field called  that keeps track of all created scopes.

girvo/pharen,Scriptor/pharen,Scriptor/pharen,girvo/pharen