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:
Here is the javascript code:
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:
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!