Recently (about a month ago) I was trying to introduce new constructs to my company s in-house extension language, and struggling with a couple of reduce-reduce errors. While I eventually solved this problem, digging into the y.output file was no picnic.
As an experiment, I tried using Bison s --graph=<file> option to output a DOT file (note that our standard build uses Byacc, not Bison). As I m on a turnkey Linux box, I didn t have a Graphviz installation and could not easily install from RPMs (working on Red Hat Enterprise Linux 4). Instead, I built it from source.
As an initial experiment, I tried to run dotty with an output of Postscript. Now our internal language is your average home-grown, Turing-complete, dynamically typed scripting language, but I was unprepared for what followed. The dotty run took over four hours (2GHz dual core AMD64 box)! And when it was done, the graph that was rendered was not what I would call readable.
So, quite simply, I m looking for advice. Are there a set of switches which would improve the outcome over the default approach I took? I m looking for experience in
- optimizing render time
- improving readability of the graph
- possible advice on better graphical viewers