Commit Graph

4 Commits

Author SHA1 Message Date
Elf M. Sternberg 3e17e69746 [refactor] Got throw/catch working with self-evaluating expressions
This was a pain point.  I had hacked the "names" of symbols into the
throw/catch representation, never appreciating how badly I was screwing
up my understanding of LiSP.  The symbols are supposed to evaluate
to something.  When they're self-evaluating expressions (strings and
numbers), those become the keys in the block stack that matter.  Getting
SEE's right, whether they're quoted or not, was really signficant.

This is cool.  Now, on to rewind/protect!
2015-07-31 07:34:12 -07:00
Elf M. Sternberg 39f6a09d51 [feat] Most throw/catch conditions work.
I've hit a snag with respect to self-evaluating objects, and the ad-hoc evaluation of
program labels is messed up because of it.  I'm going to have to refactor.
Oddly enough, the strategy I hit upon appears to be the same one found
in Wisp, rather than Clojurescript.

This may actually be an internal detail; the version rendered for the user may actually
not care.  I hope not; the performance could become hairy pretty quickly.
2015-07-21 16:16:13 -07:00
Elf M. Sternberg c816fa9eb8 [chore] cleaned up after a lint pass 2015-07-08 20:46:36 -07:00
Elf M. Sternberg 1c113a2f7a [test] Tests for 'block' and 'return' added. All tests passing. W00t! 2015-07-08 20:36:56 -07:00