On 2010-03-22, at 11:41 PM, Ben Weaver wrote:
On Tue, Mar 23, 2010 at 12:07 AM, James Long longster@gmail.com wrote:
Yep, that's exactly what I was thinking. It might require a little more than a lightweight macro layer, though. I would like to translate "return" statements into calls to continuations, and make sure the code flow is as expressive as javascript's.
You're right, we'd definitely need continuations to make return work (among the other things that Per pointed out ;-)
Great! We should talk more about it soon. What do you think about lexers like SILex?
Sounds good. I'd be up for trying SILex. The ecmascript-for-guile project seems worth looking into as well.
I've started playing around with the Guile ecmascript parser. When using LALR-SCM I unfortunately get many parser generator errors (shift/reduce and reduce/reduce conflicts). I'm not sure how hard it is to fix.
Another approach would be to use OMeta (http://tinlizzie.org/ometa/), for which there is a Scheme version (http://www.lshift.net/blog/2008/07/01/ometa-for-scheme). The OMeta project includes a parser for JavaScript (http://www.tinlizzie.org/ometa-js/#JavaScript_Compiler) which basically produces S-expression based ASTs.
Here is an overview of OMeta: http://tinlizzie.org/ometa/dls07-slides.pdf .
Marc