Tenderlove Making

Parsing Javascript Parser

I’ve been working hard on RKelly lately. RKelly is a ruby implementation of Kelly. Kelly is a fictional project that I made up so that I could name my project RKelly. Anyway, RKelly is a javascript parser, and will be an interpreter someday. Today I was able to get RKelly to parse and produce a parse tree of prototype.js. I couldn’t get GraphViz to export the file, but you can download the dot file here.

Here is a parse tree of a function that calculates the fibonacci sequence: fibonacci parse tree

Here is the javascript code: ~~~ javascript function f(n) { var s = 0; if(n == 0) return(s); if(n == 1) { s += 1; return(s); } else { return(f(n - 1) + f(n - 2)); } } ~~~ And the ruby code that produced that graph: ~~~ ruby require ‘rkelly’

parser = RKelly::Parser.new puts parser.parse(File.read(ARGV[0])).to_dots ~~~

I need a new computer….. It took 2 minutes to render the prototype graph! Ugh!

« go back