Speaking of OMeta/JS [old link: http://jarrett.cs.ucla.edu/ometa-js] and OMeta in general, I’ve implemented an OMeta for Scheme. Currently it runs in MzScheme, but it should be fairly portable, with dependencies only on a handful of commonly-implemented SRFIs. I intend to properly libraryise it — making it into a proper MzScheme module — and to port it to other schemes, most probably starting with SISC.
One interesting feature of this OMeta is that it implements the error-handling mechanisms suggested by Bryan Ford that I implemented previously in a packrat parsing library for Scheme. The packrat-based error-handling techniques seem to generalise fairly well to an OMeta setting.
* Browse the code here.
* Check it out with
hg clone http://www.eighty-twenty.org/hgwebdir.cgi/ometa-scheme/.
Update: Switched from hosting the ometa-scheme code in Darcs to Mercurial.