|In response to the discussion in a previous thread (http://arclanguage.org/item?id=9912), I used the patch on arc3 to let quasiquote be written in Arc itself.|
This initial version is simply a direct port of the backquote implementation found in GNU clisp 2.47, which had a lot of unit tests that I also ported -- and all of the applicable ones pass. If you value your vision, you should probably avert your gaze from qq-test.arc (or at least squint): I rolled my own ad-hoc, feature-lacking test harness. But hey, it generates a nice-looking report.
As I said, this is just an initial implementation. The most glaring omission is that the Arc port doesn't handle mismatched unquotes. In the clisp version, these are handled by the reader macros for ` , ,@ etc., but the Arc version sticks with Scheme's reader, which does not protect from these errors. Of course, it's not too hard to fix this: it's just a matter of adding the 'level argument as in ac.scm.
While perhaps not the most opportune way to publish code (would rather just have plaintext + maybe a tar, for something this small), and though people around here seem to prefer git, I've uploaded the hg repository here: http://bitbucket.org/fallintothis/qq/