Graphviz A slideshow: Graphviz and Friends GraphViz2 demos GraphViz2::Marpa demos GraphViz2::Marpa::PathUtils demos MarpaX::Grammar::GraphViz2 demos MarpaX::Languages::Dash demos MarpaX::Languages::SVG::Parser: SVGs of BNFs Overview of Graphviz and Perl modules Graphviz, from AT & T Research Labs, is a stand-alone package for manipulating graphs. See Wikipedia for more on graphs. Graphviz contains an array of programs and APIs. A typical tool within this package is dot, which takes as input a (text file) graph description written in the DOT language. Such files are simply referred to as *.gv files. It can output graphs in a variety of formats. Various people have written Perl wrappers around Graphviz: Léon Brocard (1) GraphViz Leon chose to use an upper-case V in the name of his package. GraphViz was written quite some time ago, and targeted at a now-old version of Graphviz, and also hard-coded various features. This module is now maintained by Ron Savage, but is deprecated in favour of GraphViz2 (below). Tels (1) GraphViz::Easy Ron Savage (2) GraphViz2 This is my re-write from scratch of Léon's GraphViz. It uses Marpa::R2 by Jeffrey Kegler. (3) GraphViz2::Marpa This module parses Graphviz DOT files. (4) GraphViz2::Marpa::PathUtils This module is a sub-class of GraphViz2::Marpa. It provides a small set of path analysis tools, after lexing and parsing *.gv files. These tools are: (a) Finding clusters Here, a cluster is a set of nodes connected to each other, but not connected to any nodes outside the cluster. (b) Finding all paths of a fixed length starting from a given node (5) MarpaX::Languages::Dash This module uses Marpa to parse my language called DASH, and creates a tree to hold that grammar. DASH is a subset of the language parsed by Graph::Easy, which in turn is a wrapper around DOT (the Graphviz language). The default renderer which ships with MarpaX::Languages::Dash outputs the tree to a DOT file, and calls GraphViz2 to generate an SVG file. (6) MarpaX::Grammar::Parser This module uses Marpa to parse a grammar, and then creates a tree to hold that grammar. (7) MarpaX::Grammar::GraphViz2 This module uses the previous one to parse a grammar, and then turns that grammar into an image. Top