All projects

Projects

First published: Feb. 19, 2009, 9:25 p.m. MST
Last edited: Feb. 19, 2009, 9:25 p.m. MST

PyNarcissus

So, I haven't actually just been watching TV recently, as my newsletter might currently suggest. I'm trying to be productive in a few ways, and one of them is the release of PyNarcissus here.

PyNarcissus is a direct port of the Narcissus Javascript engine by Brendan Eich. Narcissus is Javascript implemented in Javascript, and, while the evaluator does a few things metacircularly, the parser was pretty much a piece of cake to write in Python.

PyNarcissus does not introduce any new features whatsoever. Correctness using the original Narcissus as a baseline was an important priority, so even the pretty-printed string-converted output of the PyNarcissus parse tree is identical to the Javascript version. Using this feature, I simply ran both parsers on all of the Spidermonkey Javascript tests to make sure that the output was the same.

Because the port was so easy, I am considering going all the way and making a full on Javascript interpreter, but that wasn't my main goal for this port, so I'm not sure I'll get there soon, if at all.

Project links

Dependencies