All scripts, input files and output files required to generate these examples are shipped in the Graph::Easy::Marpa distro.
Some sample data is deliberately faulty, and so does not show up here. Some sample data contains fake attributes, just to test the code. These will make 'dot' die, but are included here.
The output for input file data/graph.04.ge corresponds to the output for scripts/jointed.edges.pl in the GraphViz2 demo.
Input file # 1 - data/class.edge.01.ge: # Class with no attributes (and no graph). Error. edge |
# Class with no attributes (and no graph). Error. Output file # 1 - None |
Input file # 2 - data/class.edge.02.ge: # Class with attributes but no graph. Error. edge {color: green;} |
# Class with attributes but no graph. Error. Output file # 2 - None |
Input file # 3 - data/class.edge.03.ge: # Class with attributes. OK. edge {color: green} [node.1] -> [node.2] |
# Class with attributes. OK. Output file # 3 - html/class.edge.03.svg |
Input file # 4 - data/class.edge.04.ge: # Classes with and without attributes. Error. edge {color: green} graph [node.1] -> [node.2] |
# Classes with and without attributes. Error. Output file # 4 - None |
Input file # 5 - data/class.edge.05.ge: # Classes with attributes. OK. edge {color: green} node {color: lightblue} [node.1] {color: pink} -> [node.2] |
# Classes with attributes. OK. Output file # 5 - html/class.edge.05.svg |
Input file # 6 - data/class.edge.06.ge: # Class with attributes. OK. edge.blue {arrowtail: odot; color: blue; dir: both} [node.1] -> {class: blue} [node.2] |
# Class with attributes. OK. Output file # 6 - html/class.edge.06.svg |
Input file # 7 - data/class.global.01.ge: # Global class. OK. global {directed: 0} [node.1] -- [node.2] |
# Global class. OK. Output file # 7 - html/class.global.01.svg |
Input file # 8 - data/class.graph.01.ge: # Class with no attributes and no graph. Error. graph |
# Class with no attributes and no graph. Error. Output file # 8 - None |
Input file # 9 - data/class.graph.02.ge: # Class with attributes but no graph. Error. graph {color: blue} |
# Class with attributes but no graph. Error. Output file # 9 - None |
Input file # 10 - data/class.graph.03.ge: # Illegal class name. Error. x {color: blue} [node.1] |
# Illegal class name. Error. Output file # 10 - None |
Input file # 11 - data/class.graph.04.ge: # Illegal class name. Error. graph. {color: blue} [node.1] |
# Illegal class name. Error. Output file # 11 - None |
Input file # 12 - data/class.graph.05.ge: # Graph class. OK. graph {rankdir: LR} [node.1] -- [node.2] |
# Graph class. OK. Output file # 12 - html/class.graph.05.svg |
Input file # 13 - data/class.group.01.ge: # Class with no attributes and no graph. Error. group |
# Class with no attributes and no graph. Error. Output file # 13 - None |
Input file # 14 - data/class.group.02.ge: # Class with attributes but no graph. Error. group {color: red} |
# Class with attributes but no graph. Error. Output file # 14 - None |
Input file # 15 - data/class.group.03.ge: # Group without attributes. OK. (cluster.1: [node.1] -> [node.2]) |
# Group without attributes. OK. Output file # 15 - html/class.group.03.svg |
Input file # 16 - data/class.group.04.ge: # Group with attributes. OK. (cluster.1: [node.1] -> [node.2]) {class: group} |
# Group with attributes. OK. Output file # 16 - html/class.group.04.svg |
Input file # 17 - data/class.group.05.ge: # Group with attributes. OK. group {bgcolor: red} (cluster.1: [node.1] -> [node.2]) {class: group} |
# Group with attributes. OK. Output file # 17 - html/class.group.05.svg |
Input file # 18 - data/class.group.06.ge: # Edge, group and node classes. OK. edge {color: white} group {bgcolor: red} node.green {color: green; shape: rect} (cluster.1: [node.1] {class: green} -> [node.2]) {class: group} |
# Edge, group and node classes. OK. Output file # 18 - html/class.group.06.svg |
Input file # 19 - data/class.node.01.ge: # Class with no attributes and no graph. Error. node |
# Class with no attributes and no graph. Error. Output file # 19 - None |
Input file # 20 - data/class.node.02.ge: # Class with attributes but no graph. Error. node {color: yellow} |
# Class with attributes but no graph. Error. Output file # 20 - None |
Input file # 21 - data/class.node.03.ge: # Subclass with no attributes (and no graph). Error. node.green |
# Subclass with no attributes (and no graph). Error. Output file # 21 - None |
Input file # 22 - data/class.node.04.ge: # Subclass with attributes but no graph. Error. node.green {color: green} |
# Subclass with attributes but no graph. Error. Output file # 22 - None |
Input file # 23 - data/class.node.05.ge: # Unused class with attributes. OK. node.green {color: green} [node.1] -> [node.2] |
# Unused class with attributes. OK. Output file # 23 - html/class.node.05.svg |
Input file # 24 - data/class.node.06.ge: # Classes with and without attributes. Error. node.green {color: green} graph [node.1] -> [node.2] |
# Classes with and without attributes. Error. Output file # 24 - None |
Input file # 25 - data/class.node.07.ge: # Class with attributes. OK. node.green {color: green} [node.1] {color: pink} -> [node.2] |
# Class with attributes. OK. Output file # 25 - html/class.node.07.svg |
Input file # 26 - data/class.node.08.ge: # Class with attributes. OK. node.green {color: green} [node.1] {color: pink} -> [node.2] {class: green} |
# Class with attributes. OK. Output file # 26 - html/class.node.08.svg |
Input file # 27 - data/class.node.09.ge: # Classes with attributes. OK. edge {color: blue; arrowhead: odot} node.green {color: green; shape: rect} [node.1] {color: pink} -> [node.2] {class: green} |
# Classes with attributes. OK. Output file # 27 - html/class.node.09.svg |
Input file # 28 - data/edge.01.ge: # Edge. OK. -- |
# Edge. OK. Output file # 28 - html/edge.01.svg |
Input file # 29 - data/edge.02.ge: # Edge with attributes. OK. --{color:cornflowerblue} |
# Edge with attributes. OK. Output file # 29 - html/edge.02.svg |
Input file # 30 - data/edge.03.ge: # Juxtaposed edges (without comma) without attributes. OK. -- -- |
# Juxtaposed edges (without comma) without attributes. OK. Output file # 30 - html/edge.03.svg |
Input file # 31 - data/edge.04.ge: # Juxtaposed edges (with comma) without attributes. OK. --, -- |
# Juxtaposed edges (with comma) without attributes. OK. Output file # 31 - html/edge.04.svg |
Input file # 32 - data/edge.05.ge: # Juxtaposed edges (without comma) with attributes. OK. --{color:cornflowerblue} --{color:red} |
# Juxtaposed edges (without comma) with attributes. OK. Output file # 32 - html/edge.05.svg |
Input file # 33 - data/edge.06.ge: # Juxtaposed edges (with comma) with attributes. OK. --{color:cornflowerblue},--{color:red} |
# Juxtaposed edges (with comma) with attributes. OK. Output file # 33 - html/edge.06.svg |
Input file # 34 - data/edge.07.ge: # Edge followed by node. OK. --{color:cornflowerblue}[node.1]{color:red} |
# Edge followed by node. OK. Output file # 34 - html/edge.07.svg |
Input file # 35 - data/edge.08.ge: # Edges with fancy arrows. OK. [node.1]{color:green}--{color:maroon; arrowhead: box; dir: forward; label: box} [node.2]{color:blue} [node.3]{color:green}--{color:maroon; arrowhead: crow; dir: forward; label: crow} [node.4]{color:blue} [node.5]{color:green}--{color:maroon; arrowhead: diamond; dir: forward; label: diamond} [node.6]{color:blue} [node.7]{color:green}--{color:maroon; arrowhead: veevee; dir: forward; label: veevee} [node.8]{color:blue} [node.9]{color:green}--{color:maroon; arrowhead: teetee; dir: forward; label: teetee} [node.10]{color:blue} [node.11]{color:green}--{color:maroon; arrowhead: odot; dir: forward; label: odot} [node.12]{color:blue} |
# Edges with fancy arrows. OK. Output file # 35 - html/edge.08.svg |
Input file # 36 - data/edge.09.ge: # Juxtaposed edges (without any spacing) without attributes. OK. ------ |
# Juxtaposed edges (without any spacing) without attributes. OK. Output file # 36 - html/edge.09.svg |
Input file # 37 - data/graph.01.ge: # Ends with edge without attributes. OK. [node.1]{color: red}->{color: green;}->{color: red}[node.2] |
# Ends with edge without attributes. OK. Output file # 37 - html/graph.01.svg |
Input file # 38 - data/graph.02.ge: # Juxtapositioned edges (without comma). OK. [Murrumbeena] {color: blue} -> {color: green} -> {color: red} [Carnegie] {color: crimson} -> {color: brown} [Chadstone] {color: blueviolet} |
# Juxtapositioned edges (without comma). OK. Output file # 38 - html/graph.02.svg |
Input file # 39 - data/graph.03.ge: # Juxtapositioned edges (with comma). OK. [Murrumbeena] {color: blue} -> {color: green}, -> {color: red} [Carnegie] {color: crimson} -- {color: brown} [Chadstone] {color: blueviolet} |
# Juxtapositioned edges (with comma). OK. Output file # 39 - html/graph.03.svg |
Input file # 40 - data/graph.04.ge: # Reverse-engineered from GraphViz2/scripts/joint.edges.pl. OK. [Carnegie] {color: aquamarine; style: filled} -> {arrowhead: none; samehead: 1} [one] {label:''; style: filled; fillcolor: white; fixedsize: 1; width: 0; height: 0} [Murrumbeena] {color: bisque; style: filled} -> {arrowhead: none; samehead: 1} [one] [one] -> {sametail: 1} [Oakleigh] {color: blueviolet; style: filled} [Ashburton] {color: chartreuse; style: filled} -> {arrowhead: none; samehead: 1} [two] {label:''; style: filled; fillcolor: white; fixedsize: 1; width: 0; height: 0} [Chadstone] {color: coral; style: filled} -> {arrowhead: none; samehead: 1} [two] [two] -> {sametail: 1} [Waverley] {color: crimson; style: filled} |
# Reverse-engineered from GraphViz2/scripts/joint.edges.pl. OK. Output file # 40 - html/graph.04.svg |
Input file # 41 - data/group.01.ge: # Group with attributes. OK. group {bgcolor: red} (cluster.1: [node.1] -> [node.2]) {class: group} |
# Group with attributes. OK. Output file # 41 - html/group.01.svg |
Input file # 42 - data/node.01.ge: # Empty file. Error. |
# Empty file. Error. Output file # 42 - None |
Input file # 43 - data/node.02.ge: # Anonymous node without attributes. OK. [] |
# Anonymous node without attributes. OK. Output file # 43 - html/node.02.svg |
Input file # 44 - data/node.03.ge: # Named node with space. OK. [Perl 6] |
# Named node with space. OK. Output file # 44 - html/node.03.svg |
Input file # 45 - data/node.04.ge: # Anonymous node with attributes. OK. []{color:red} |
# Anonymous node with attributes. OK. Output file # 45 - html/node.04.svg |
Input file # 46 - data/node.05.ge: # Named node with attributes. OK. [node.1]{color:red} |
# Named node with attributes. OK. Output file # 46 - html/node.05.svg |
Input file # 47 - data/node.06.ge: # Juxtaposed nodes (without comma) with attributes. OK. [node.1]{color:red}[node.2]{color:blue} |
# Juxtaposed nodes (without comma) with attributes. OK. Output file # 47 - html/node.06.svg |
Input file # 48 - data/node.07.ge: # Juxtaposed nodes (with comma) with attributes. OK. [node.1]{color:red},[node.2]{color:blue} |
# Juxtaposed nodes (with comma) with attributes. OK. Output file # 48 - html/node.07.svg |
Input file # 49 - data/node.08.ge: # Named node, with spaces. OK. [ node.1 ] |
# Named node, with spaces. OK. Output file # 49 - html/node.08.svg |
Input file # 50 - data/node.09.ge: # Named node with attributes, with spaces. OK. [ node.1 ] { color : red } |
# Named node with attributes, with spaces. OK. Output file # 50 - html/node.09.svg |
Input file # 51 - data/node.10.ge: # Named node with attributes, with spaces. OK. [ node.1 ] { label : Flight Path from Melbourne to London } |
# Named node with attributes, with spaces. OK. Output file # 51 - html/node.10.svg |
Input file # 52 - data/node.11.ge: # Juxtaposed nodes (without comma) without attributes. OK. [node.1][node.2] |
# Juxtaposed nodes (without comma) without attributes. OK. Output file # 52 - html/node.11.svg |
Input file # 53 - data/node.12.ge: # Juxtaposed nodes (with comma) without attributes. OK. [node.1],[node.2] |
# Juxtaposed nodes (with comma) without attributes. OK. Output file # 53 - html/node.12.svg |
Input file # 54 - data/node.13.ge: # Anonymous node without attributes. OK. [node.1] -> [] -> [node.2] |
# Anonymous node without attributes. OK. Output file # 54 - html/node.13.svg |
Input file # 55 - data/node.14.ge: # Anonymous node with attributes. OK. [node.1] -> [] {color: red; label: 'Anonymous!'} -> [node.2] |
# Anonymous node with attributes. OK. Output file # 55 - html/node.14.svg |
Input file # 56 - data/node.15.ge: # Class node, and anonymous node. OK. node {color: red} [node.1] -> {arrowhead: odot; arrowtail: ediamond; color: green; dir: both; label: A; penwidth: 1} -> {color: blue; label: B; penwidth: 3} -> {arrowhead: box; arrowtail: invdot; color: maroon; dir: both; label: C; penwidth: 5} [] {label: 'Some node'} -> [node.2] |
# Class node, and anonymous node. OK. Output file # 56 - html/node.15.svg |
Input file # 57 - data/node.16.ge: # Node with HTML-style label. OK. [node.1] {color: pink; label: <<table border='1'><tr><td>HTML-style label</td></tr></table>>; shape: doublecircle} |
# Node with HTML-style label. OK. Output file # 57 - html/node.16.svg |
Input file # 58 - data/node.17.ge: # Node with HTML-style label. OK. [node.1] {color: red; label: <<table border='0'><tr><td>HTML-style label but without borders</td></tr></table>>; shape: tripleoctagon} |
# Node with HTML-style label. OK. Output file # 58 - html/node.17.svg |
Input file # 59 - data/subgraph.01.ge: # Group opened but not closed. Error. ( |
# Group opened but not closed. Error. Output file # 59 - None |
Input file # 60 - data/subgraph.02.ge: # Group not opened but closed. Error. ) |
# Group not opened but closed. Error. Output file # 60 - None |
Input file # 61 - data/subgraph.03.ge: # Group without a name or content. Error. () |
# Group without a name or content. Error. Output file # 61 - None |
Input file # 62 - data/subgraph.04.ge: # Group (i.e. subgraph). OK. (cluster_1:[Great]->{arrowhead: odot}[Small]){bgcolor: lightblue; label: Creatures} |
# Group (i.e. subgraph). OK. Output file # 62 - html/subgraph.04.svg |
Input file # 63 - data/subgraph.05.ge: # Group (i.e. subgraph) + Group. OK. (cluster_1: [Solar system] -> {arrowhead: diamond} [Earth]) {bgcolor: cornflowerblue; label: Locale} (cluster_2: [Great] -> {arrowhead: odot} [Small]) {bgcolor: lightblue; label: Creatures} |
# Group (i.e. subgraph) + Group. OK. Output file # 63 - html/subgraph.05.svg |
Input file # 64 - data/subgraph.06.ge: # Node + Group (i.e. subgraph). OK. [Sol] (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} |
# Node + Group (i.e. subgraph). OK. Output file # 64 - html/subgraph.06.svg |
Input file # 65 - data/subgraph.07.ge: # Group (i.e. subgraph) + Node. OK. (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} [Sol] |
# Group (i.e. subgraph) + Node. OK. Output file # 65 - html/subgraph.07.svg |
Input file # 66 - data/subgraph.08.ge: # Edge + Group (i.e. subgraph). OK. -> (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} |
# Edge + Group (i.e. subgraph). OK. Output file # 66 - html/subgraph.08.svg |
Input file # 67 - data/subgraph.09.ge: # Group (i.e. subgraph) + Edge. OK. (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} -> |
# Group (i.e. subgraph) + Edge. OK. Output file # 67 - html/subgraph.09.svg |
Input file # 68 - data/subgraph.10.ge: # Node + Edge + Group (i.e. subgraph). OK. [Andromeda] -> (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} |
# Node + Edge + Group (i.e. subgraph). OK. Output file # 68 - html/subgraph.10.svg |
Input file # 69 - data/subgraph.11.ge: # Node + Edge + Node + Edge + Group (i.e. subgraph). OK. [Andromeda] -> [Milky\sWay] -> (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} |
# Node + Edge + Node + Edge + Group (i.e. subgraph). OK. Output file # 69 - html/subgraph.11.svg |
Input file # 70 - data/subgraph.12.ge: # Group (i.e. subgraph) + Edge + Node. OK. (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} -> [Australia] |
# Group (i.e. subgraph) + Edge + Node. OK. Output file # 70 - html/subgraph.12.svg |
Input file # 71 - data/subgraph.13.ge: # Group (i.e. subgraph) + Edge + Node + Edge + Node + Edge + Node. OK. (cluster_1:[Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} -> [Australia] -> [Victoria] -> [Melbourne] -> [Murrumbeena] |
# Group (i.e. subgraph) + Edge + Node + Edge + Node + Edge + Node. OK. Output file # 71 - html/subgraph.13.svg |
Input file # 72 - data/subgraph.14.ge: # Group (i.e. subgraph) + Edge + Group. OK. (cluster_1: [Solar system]->{arrowhead: diamond}[Earth]){bgcolor: cornflowerblue; label: Locale} -> (cluster_2: [Australia] -> [Victoria] -> [Melbourne] -> [Murrumbeena]){bgcolor: lightblue; label: Home} |
# Group (i.e. subgraph) + Edge + Group. OK. Output file # 72 - html/subgraph.14.svg |
Input file # 73 - data/subgraph.15.ge: # Group (i.e. subgraph) without a node before the edge. OK. (cluster_1: -> [Small] ) |
# Group (i.e. subgraph) without a node before the edge. OK. Output file # 73 - html/subgraph.15.svg |
Input file # 74 - data/subgraph.16.ge: # Group (i.e. subgraph) without a node after the edge. OK. (cluster_1: [Small] -> ) |
# Group (i.e. subgraph) without a node after the edge. OK. Output file # 74 - html/subgraph.16.svg |
Input file # 75 - data/utf8.01.ge: # Graph with utf8 attributes. OK. [From]{color: green; label: Reichwaldstraße} -> {color:maroon; label: Πηληϊάδεω Ἀχιλῆος} [To]{color: blue; label: Δ Lady} |
# Graph with utf8 attributes. OK. Output file # 75 - html/utf8.01.svg |
Author
|
|
Date
|
2013-07-30
|
OS
|
Debian V 6
|
Perl
|
5.14.2
|