ruby-graphviz 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +9 -1
- data/README.rdoc +67 -0
- data/examples/dot/cluster.dot +31 -0
- data/examples/dot/fsm.dot +20 -0
- data/examples/dot/genetic.dot +118 -0
- data/examples/dot/hello.dot +1 -0
- data/examples/dot/hello_test.rb +14 -0
- data/examples/dot/lion_share.dot +103 -0
- data/examples/dot/prof.dot +150 -0
- data/examples/dot/psg.dot +28 -0
- data/examples/dot/sdh.dot +284 -0
- data/examples/dot/siblings.dot +492 -0
- data/examples/dot/test.dot +17 -0
- data/examples/dot/unix.dot +104 -0
- data/examples/graphviz.org/TrafficLights.rb +62 -0
- data/examples/graphviz.org/cluster.rb +62 -0
- data/examples/graphviz.org/hello_world.rb +10 -0
- data/examples/graphviz.org/lion_share.rb +215 -0
- data/examples/graphviz.org/process.rb +37 -0
- data/examples/maketest.sh +0 -0
- data/examples/sample01.rb +1 -1
- data/examples/sample02.rb +3 -3
- data/examples/sample03.rb +3 -3
- data/examples/sample04.rb +3 -3
- data/examples/sample05.rb +1 -1
- data/examples/sample06.rb +46 -0
- data/examples/sample07.rb +2 -2
- data/examples/sample08.rb +3 -3
- data/examples/sample09.rb +3 -3
- data/examples/sample10.rb +3 -3
- data/examples/sample21.rb +12 -0
- data/examples/sample22.rb +10 -0
- data/lib/graphviz.rb +91 -16
- data/lib/graphviz/attrs.rb +2 -2
- data/lib/graphviz/constants.rb +1 -1
- data/lib/graphviz/dot.treetop +93 -0
- data/lib/graphviz/edge.rb +13 -1
- data/lib/graphviz/node.rb +5 -1
- data/lib/graphviz/parser.rb +244 -0
- metadata +42 -10
- data/README +0 -13
data/ChangeLog
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.9.1 :
|
2
|
+
* Bugs corrections
|
3
|
+
* Add the ability to create edge like that : node1 << node2 << node3 ...
|
4
|
+
* Complete README
|
5
|
+
* Add a DOT parser. This parser has a lot of limitations. So don't use it in a production context !
|
6
|
+
* :output and :file options are deprecated, please use :<format> => :<file>
|
7
|
+
* You can now specify multiple outputs via :<format> => :<file> (see sample 22).
|
8
|
+
|
1
9
|
0.9.0 :
|
2
10
|
* Add fdp example (sample 15)
|
3
11
|
* Add edge between cluster and node and cluster and cluster support
|
@@ -7,7 +15,7 @@
|
|
7
15
|
* Add possibility to set node or edge attribut via :
|
8
16
|
node.<attribut>=<value> or node.<attribut>( <value> )
|
9
17
|
adge.<attribut>=<value> or adge.<attribut>( <value> )
|
10
|
-
* Add GraphViz::Edge.set and GraphViz::Node.
|
18
|
+
* Add GraphViz::Edge.set and GraphViz::Node.set
|
11
19
|
* Add sample 20
|
12
20
|
* Add GraphViz.node_count and GraphViz.edge_count by Daniel Cadenas Nión
|
13
21
|
|
data/README.rdoc
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
= Ruby/GraphViz
|
2
|
+
|
3
|
+
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Gregoire Lejeune
|
4
|
+
|
5
|
+
* Doc : http://rdoc.info/projects/glejeune/Ruby-Graphviz
|
6
|
+
* Sources : http://github.com/glejeune/Ruby-Graphviz
|
7
|
+
|
8
|
+
== DESCRIPTION
|
9
|
+
|
10
|
+
Interface to the GraphViz graphing tool
|
11
|
+
|
12
|
+
== SYNOPSIS
|
13
|
+
|
14
|
+
A basic example
|
15
|
+
|
16
|
+
require 'graphviz'
|
17
|
+
|
18
|
+
# Create a new graph
|
19
|
+
g = GraphViz.new( :G, :type => :digraph )
|
20
|
+
|
21
|
+
# Create two nodes
|
22
|
+
hello = g.add_node( "Hello" )
|
23
|
+
world = g.add_node( "World" )
|
24
|
+
|
25
|
+
# Create an edge between the two nodes
|
26
|
+
g.add_edge( hello, world )
|
27
|
+
|
28
|
+
# Generate output image
|
29
|
+
g.output( :output => "png", :file => "hello_world.png" )
|
30
|
+
|
31
|
+
The same but with a block
|
32
|
+
|
33
|
+
require 'graphviz'
|
34
|
+
|
35
|
+
GraphViz::new( :G, :type => :digraph ) { |g|
|
36
|
+
g.world( :label => "World" ) << g.hello( :label => Hello )
|
37
|
+
}.output( :output => :png, :file => "hello_world.png" )
|
38
|
+
|
39
|
+
Create a graph from a file
|
40
|
+
|
41
|
+
require 'graphviz'
|
42
|
+
|
43
|
+
# In this example, hello.dot is :
|
44
|
+
# digraph G {Hello->World;}
|
45
|
+
|
46
|
+
GraphViz.parse( "hello.dot", :path => "/usr/local/bin" ) { |g|
|
47
|
+
g.get_node("Hello") { |n|
|
48
|
+
n[:label] = "Bonjour"
|
49
|
+
}
|
50
|
+
g.get_node("World") { |n|
|
51
|
+
n[:label] = "Le Monde"
|
52
|
+
}
|
53
|
+
}.output(:output => "png", :file => "sample.png")
|
54
|
+
|
55
|
+
== INSTALLATION
|
56
|
+
|
57
|
+
sudo gem install ruby-graphviz
|
58
|
+
|
59
|
+
You also need to install GraphViz[http://www.graphviz.org]
|
60
|
+
|
61
|
+
== LICENCE
|
62
|
+
|
63
|
+
Ruby/GraphViz is freely distributable according to the terms of the
|
64
|
+
GNU General Public License (see the file 'COPYING').
|
65
|
+
|
66
|
+
This program is distributed without any warranty. See the file
|
67
|
+
'COPYING' for details.
|
@@ -0,0 +1,31 @@
|
|
1
|
+
digraph G {
|
2
|
+
|
3
|
+
subgraph cluster_0 {
|
4
|
+
style=filled;
|
5
|
+
color=lightgrey;
|
6
|
+
node [style=filled,color=white];
|
7
|
+
a0 -> a1;
|
8
|
+
a1 -> a2;
|
9
|
+
a2 -> a3;
|
10
|
+
label = "process #1";
|
11
|
+
}
|
12
|
+
|
13
|
+
subgraph cluster_1 {
|
14
|
+
node [style=filled];
|
15
|
+
b0 -> b1;
|
16
|
+
b1 -> b2;
|
17
|
+
b2 -> b3;
|
18
|
+
label = "process #2";
|
19
|
+
color=blue;
|
20
|
+
}
|
21
|
+
start -> a0;
|
22
|
+
start -> b0;
|
23
|
+
a1 -> b3;
|
24
|
+
b2 -> a3;
|
25
|
+
a3 -> a0;
|
26
|
+
a3 -> end;
|
27
|
+
b3 -> end;
|
28
|
+
|
29
|
+
start [shape=Mdiamond];
|
30
|
+
end [shape=Msquare];
|
31
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
digraph finite_state_machine {
|
2
|
+
rankdir=LR;
|
3
|
+
size="8,5";
|
4
|
+
node [shape = doublecircle]; LR_0; LR_3; LR_4; LR_8;
|
5
|
+
node [shape = circle];
|
6
|
+
LR_0 -> LR_2 [ label = "SS(B)" ];
|
7
|
+
LR_0 -> LR_1 [ label = "SS(S)" ];
|
8
|
+
LR_1 -> LR_3 [ label = "S($end)" ];
|
9
|
+
LR_2 -> LR_6 [ label = "SS(b)" ];
|
10
|
+
LR_2 -> LR_5 [ label = "SS(a)" ];
|
11
|
+
LR_2 -> LR_4 [ label = "S(A)" ];
|
12
|
+
LR_5 -> LR_7 [ label = "S(b)" ];
|
13
|
+
LR_5 -> LR_5 [ label = "S(a)" ];
|
14
|
+
LR_6 -> LR_6 [ label = "S(b)" ];
|
15
|
+
LR_6 -> LR_5 [ label = "S(a)" ];
|
16
|
+
LR_7 -> LR_8 [ label = "S(b)" ];
|
17
|
+
LR_7 -> LR_5 [ label = "S(a)" ];
|
18
|
+
LR_8 -> LR_6 [ label = "S(b)" ];
|
19
|
+
LR_8 -> LR_5 [ label = "S(a)" ];
|
20
|
+
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
graph ""
|
2
|
+
{
|
3
|
+
label="((+ (* (X) (- (- (X) (X)) (X))) (% (+ (X) (X)) (COS (- (X) (X))))) (EXP (* (X) (X))) (+ (% (EXP (SIN (+ (X) (X)))) (SIN (* (X) (EXP (* (X) (X)))))) (* (X) (X))) (% (EXP (% (X) (% (X) (X)))) (EXP (SIN (X)))))";
|
4
|
+
|
5
|
+
subgraph cluster01
|
6
|
+
{
|
7
|
+
label="(+ (* (X) (- (- (X) (X)) (X))) (% (+ (X) (X)) (COS (- (X) (X)))))";
|
8
|
+
n002 ;
|
9
|
+
n002 [label="+"] ;
|
10
|
+
n002 -- n003 ;
|
11
|
+
n003 [label="*"] ;
|
12
|
+
n003 -- n004 ;
|
13
|
+
n004 [label="X"] ;
|
14
|
+
n003 -- n005 ;
|
15
|
+
n005 [label="-"] ;
|
16
|
+
n005 -- n006 ;
|
17
|
+
n006 [label="-"] ;
|
18
|
+
n006 -- n007 ;
|
19
|
+
n007 [label="X"] ;
|
20
|
+
n006 -- n008 ;
|
21
|
+
n008 [label="X"] ;
|
22
|
+
n005 -- n009 ;
|
23
|
+
n009 [label="X"] ;
|
24
|
+
n002 -- n010 ;
|
25
|
+
n010 [label="%"] ;
|
26
|
+
n010 -- n011 ;
|
27
|
+
n011 [label="+"] ;
|
28
|
+
n011 -- n012 ;
|
29
|
+
n012 [label="X"] ;
|
30
|
+
n011 -- n013 ;
|
31
|
+
n013 [label="X"] ;
|
32
|
+
n010 -- n014 ;
|
33
|
+
n014 [label="COS"] ;
|
34
|
+
n014 -- n015 ;
|
35
|
+
n015 [label="-"] ;
|
36
|
+
n015 -- n016 ;
|
37
|
+
n016 [label="X"] ;
|
38
|
+
n015 -- n017 ;
|
39
|
+
n017 [label="X"] ;
|
40
|
+
}
|
41
|
+
|
42
|
+
subgraph cluster17
|
43
|
+
{
|
44
|
+
label="(EXP (* (X) (X)))";
|
45
|
+
n018 ;
|
46
|
+
n018 [label="EXP"] ;
|
47
|
+
n018 -- n019 ;
|
48
|
+
n019 [label="*"] ;
|
49
|
+
n019 -- n020 ;
|
50
|
+
n020 [label="X"] ;
|
51
|
+
n019 -- n021 ;
|
52
|
+
n021 [label="X"] ;
|
53
|
+
}
|
54
|
+
|
55
|
+
subgraph cluster21
|
56
|
+
{
|
57
|
+
label="(+ (% (EXP (SIN (+ (X) (X)))) (SIN (* (X) (EXP (* (X) (X)))))) (* (X) (X)))";
|
58
|
+
n022 ;
|
59
|
+
n022 [label="+"] ;
|
60
|
+
n022 -- n023 ;
|
61
|
+
n023 [label="%"] ;
|
62
|
+
n023 -- n024 ;
|
63
|
+
n024 [label="EXP"] ;
|
64
|
+
n024 -- n025 ;
|
65
|
+
n025 [label="SIN"] ;
|
66
|
+
n025 -- n026 ;
|
67
|
+
n026 [label="+"] ;
|
68
|
+
n026 -- n027 ;
|
69
|
+
n027 [label="X"] ;
|
70
|
+
n026 -- n028 ;
|
71
|
+
n028 [label="X"] ;
|
72
|
+
n023 -- n029 ;
|
73
|
+
n029 [label="SIN"] ;
|
74
|
+
n029 -- n030 ;
|
75
|
+
n030 [label="*"] ;
|
76
|
+
n030 -- n031 ;
|
77
|
+
n031 [label="X"] ;
|
78
|
+
n030 -- n032 ;
|
79
|
+
n032 [label="EXP"] ;
|
80
|
+
n032 -- n033 ;
|
81
|
+
n033 [label="*"] ;
|
82
|
+
n033 -- n034 ;
|
83
|
+
n034 [label="X"] ;
|
84
|
+
n033 -- n035 ;
|
85
|
+
n035 [label="X"] ;
|
86
|
+
n022 -- n036 ;
|
87
|
+
n036 [label="*"] ;
|
88
|
+
n036 -- n037 ;
|
89
|
+
n037 [label="X"] ;
|
90
|
+
n036 -- n038 ;
|
91
|
+
n038 [label="X"] ;
|
92
|
+
}
|
93
|
+
|
94
|
+
subgraph cluster38
|
95
|
+
{
|
96
|
+
label="(% (EXP (% (X) (% (X) (X)))) (EXP (SIN (X))))";
|
97
|
+
n039 ;
|
98
|
+
n039 [label="%"] ;
|
99
|
+
n039 -- n040 ;
|
100
|
+
n040 [label="EXP"] ;
|
101
|
+
n040 -- n041 ;
|
102
|
+
n041 [label="%"] ;
|
103
|
+
n041 -- n042 ;
|
104
|
+
n042 [label="X"] ;
|
105
|
+
n041 -- n043 ;
|
106
|
+
n043 [label="%"] ;
|
107
|
+
n043 -- n044 ;
|
108
|
+
n044 [label="X"] ;
|
109
|
+
n043 -- n045 ;
|
110
|
+
n045 [label="X"] ;
|
111
|
+
n039 -- n046 ;
|
112
|
+
n046 [label="EXP"] ;
|
113
|
+
n046 -- n047 ;
|
114
|
+
n047 [label="SIN"] ;
|
115
|
+
n047 -- n048 ;
|
116
|
+
n048 [label="X"] ;
|
117
|
+
}
|
118
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
digraph G {Hello->World;}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
$:.unshift( "../../lib" );
|
4
|
+
require "graphviz"
|
5
|
+
|
6
|
+
GraphViz.parse( "hello.dot", :path => "/usr/local/bin" ) { |g|
|
7
|
+
g.get_node("Hello") { |n|
|
8
|
+
n.label = "Bonjour"
|
9
|
+
}
|
10
|
+
g.get_node("World") { |n|
|
11
|
+
n.label = "Le Monde"
|
12
|
+
}
|
13
|
+
}.output(:output => "png", :file => "sample.png")
|
14
|
+
|
@@ -0,0 +1,103 @@
|
|
1
|
+
digraph Ped_Lion_Share {
|
2
|
+
ratio = "auto" ;
|
3
|
+
label = "Pedigree Lion_Share" ;
|
4
|
+
|
5
|
+
"001" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
6
|
+
"002" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
7
|
+
"003" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
8
|
+
"004" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
9
|
+
"005" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
10
|
+
"006" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
11
|
+
"007" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
12
|
+
"009" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
13
|
+
"014" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
14
|
+
"015" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
15
|
+
"016" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
16
|
+
"ZZ01" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
17
|
+
"ZZ02" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
18
|
+
"017" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
19
|
+
"012" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
20
|
+
"008" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
21
|
+
"011" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
22
|
+
"013" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
23
|
+
"010" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
24
|
+
"023" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
25
|
+
"020" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
26
|
+
"021" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
27
|
+
"018" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
28
|
+
"025" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
29
|
+
"019" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
30
|
+
"022" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
31
|
+
"024" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
32
|
+
"027" [shape=circle , regular=1,style=filled,fillcolor=white ] ;
|
33
|
+
"026" [shape=box , regular=1,style=filled,fillcolor=white ] ;
|
34
|
+
"028" [shape=box , regular=1,style=filled,fillcolor=grey ] ;
|
35
|
+
"marr0001" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
36
|
+
"001" -> "marr0001" [dir=none,weight=1] ;
|
37
|
+
"007" -> "marr0001" [dir=none,weight=1] ;
|
38
|
+
"marr0001" -> "017" [dir=none, weight=2] ;
|
39
|
+
"marr0002" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
40
|
+
"001" -> "marr0002" [dir=none,weight=1] ;
|
41
|
+
"ZZ02" -> "marr0002" [dir=none,weight=1] ;
|
42
|
+
"marr0002" -> "012" [dir=none, weight=2] ;
|
43
|
+
"marr0003" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
44
|
+
"002" -> "marr0003" [dir=none,weight=1] ;
|
45
|
+
"003" -> "marr0003" [dir=none,weight=1] ;
|
46
|
+
"marr0003" -> "008" [dir=none, weight=2] ;
|
47
|
+
"marr0004" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
48
|
+
"002" -> "marr0004" [dir=none,weight=1] ;
|
49
|
+
"006" -> "marr0004" [dir=none,weight=1] ;
|
50
|
+
"marr0004" -> "011" [dir=none, weight=2] ;
|
51
|
+
"marr0005" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
52
|
+
"002" -> "marr0005" [dir=none,weight=1] ;
|
53
|
+
"ZZ01" -> "marr0005" [dir=none,weight=1] ;
|
54
|
+
"marr0005" -> "013" [dir=none, weight=2] ;
|
55
|
+
"marr0006" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
56
|
+
"004" -> "marr0006" [dir=none,weight=1] ;
|
57
|
+
"009" -> "marr0006" [dir=none,weight=1] ;
|
58
|
+
"marr0006" -> "010" [dir=none, weight=2] ;
|
59
|
+
"marr0007" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
60
|
+
"005" -> "marr0007" [dir=none,weight=1] ;
|
61
|
+
"015" -> "marr0007" [dir=none,weight=1] ;
|
62
|
+
"marr0007" -> "023" [dir=none, weight=2] ;
|
63
|
+
"marr0008" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
64
|
+
"005" -> "marr0008" [dir=none,weight=1] ;
|
65
|
+
"016" -> "marr0008" [dir=none,weight=1] ;
|
66
|
+
"marr0008" -> "020" [dir=none, weight=2] ;
|
67
|
+
"marr0009" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
68
|
+
"005" -> "marr0009" [dir=none,weight=1] ;
|
69
|
+
"012" -> "marr0009" [dir=none,weight=1] ;
|
70
|
+
"marr0009" -> "021" [dir=none, weight=2] ;
|
71
|
+
"marr0010" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
72
|
+
"008" -> "marr0010" [dir=none,weight=1] ;
|
73
|
+
"017" -> "marr0010" [dir=none,weight=1] ;
|
74
|
+
"marr0010" -> "018" [dir=none, weight=2] ;
|
75
|
+
"marr0011" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
76
|
+
"011" -> "marr0011" [dir=none,weight=1] ;
|
77
|
+
"023" -> "marr0011" [dir=none,weight=1] ;
|
78
|
+
"marr0011" -> "025" [dir=none, weight=2] ;
|
79
|
+
"marr0012" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
80
|
+
"013" -> "marr0012" [dir=none,weight=1] ;
|
81
|
+
"014" -> "marr0012" [dir=none,weight=1] ;
|
82
|
+
"marr0012" -> "019" [dir=none, weight=2] ;
|
83
|
+
"marr0013" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
84
|
+
"010" -> "marr0013" [dir=none,weight=1] ;
|
85
|
+
"021" -> "marr0013" [dir=none,weight=1] ;
|
86
|
+
"marr0013" -> "022" [dir=none, weight=2] ;
|
87
|
+
"marr0014" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
88
|
+
"019" -> "marr0014" [dir=none,weight=1] ;
|
89
|
+
"020" -> "marr0014" [dir=none,weight=1] ;
|
90
|
+
"marr0014" -> "024" [dir=none, weight=2] ;
|
91
|
+
"marr0015" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
92
|
+
"022" -> "marr0015" [dir=none,weight=1] ;
|
93
|
+
"025" -> "marr0015" [dir=none,weight=1] ;
|
94
|
+
"marr0015" -> "027" [dir=none, weight=2] ;
|
95
|
+
"marr0016" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
96
|
+
"024" -> "marr0016" [dir=none,weight=1] ;
|
97
|
+
"018" -> "marr0016" [dir=none,weight=1] ;
|
98
|
+
"marr0016" -> "026" [dir=none, weight=2] ;
|
99
|
+
"marr0017" [shape=diamond,style=filled,label="",height=.1,width=.1] ;
|
100
|
+
"026" -> "marr0017" [dir=none,weight=1] ;
|
101
|
+
"027" -> "marr0017" [dir=none,weight=1] ;
|
102
|
+
"marr0017" -> "028" [dir=none, weight=2] ;
|
103
|
+
}
|
@@ -0,0 +1,150 @@
|
|
1
|
+
digraph prof {
|
2
|
+
size="6,4"; ratio = fill;
|
3
|
+
node [style=filled];
|
4
|
+
start -> main [color="0.002 0.999 0.999"];
|
5
|
+
start -> on_exit [color="0.649 0.701 0.701"];
|
6
|
+
main -> sort [color="0.348 0.839 0.839"];
|
7
|
+
main -> merge [color="0.515 0.762 0.762"];
|
8
|
+
main -> term [color="0.647 0.702 0.702"];
|
9
|
+
main -> signal [color="0.650 0.700 0.700"];
|
10
|
+
main -> sbrk [color="0.650 0.700 0.700"];
|
11
|
+
main -> unlink [color="0.650 0.700 0.700"];
|
12
|
+
main -> newfile [color="0.650 0.700 0.700"];
|
13
|
+
main -> fclose [color="0.650 0.700 0.700"];
|
14
|
+
main -> close [color="0.650 0.700 0.700"];
|
15
|
+
main -> brk [color="0.650 0.700 0.700"];
|
16
|
+
main -> setbuf [color="0.650 0.700 0.700"];
|
17
|
+
main -> copyproto [color="0.650 0.700 0.700"];
|
18
|
+
main -> initree [color="0.650 0.700 0.700"];
|
19
|
+
main -> safeoutfil [color="0.650 0.700 0.700"];
|
20
|
+
main -> getpid [color="0.650 0.700 0.700"];
|
21
|
+
main -> sprintf [color="0.650 0.700 0.700"];
|
22
|
+
main -> creat [color="0.650 0.700 0.700"];
|
23
|
+
main -> rem [color="0.650 0.700 0.700"];
|
24
|
+
main -> oldfile [color="0.650 0.700 0.700"];
|
25
|
+
sort -> msort [color="0.619 0.714 0.714"];
|
26
|
+
sort -> filbuf [color="0.650 0.700 0.700"];
|
27
|
+
sort -> newfile [color="0.650 0.700 0.700"];
|
28
|
+
sort -> fclose [color="0.650 0.700 0.700"];
|
29
|
+
sort -> setbuf [color="0.650 0.700 0.700"];
|
30
|
+
sort -> setfil [color="0.650 0.700 0.700"];
|
31
|
+
msort -> qsort [color="0.650 0.700 0.700"];
|
32
|
+
msort -> insert [color="0.650 0.700 0.700"];
|
33
|
+
msort -> wline [color="0.650 0.700 0.700"];
|
34
|
+
msort -> div [color="0.650 0.700 0.700"];
|
35
|
+
msort -> cmpsave [color="0.650 0.700 0.700"];
|
36
|
+
merge -> insert [color="0.650 0.700 0.700"];
|
37
|
+
merge -> rline [color="0.650 0.700 0.700"];
|
38
|
+
merge -> wline [color="0.650 0.700 0.700"];
|
39
|
+
merge -> unlink [color="0.650 0.700 0.700"];
|
40
|
+
merge -> fopen [color="0.650 0.700 0.700"];
|
41
|
+
merge -> fclose [color="0.650 0.700 0.700"];
|
42
|
+
merge -> setfil [color="0.650 0.700 0.700"];
|
43
|
+
merge -> mul [color="0.650 0.700 0.700"];
|
44
|
+
merge -> setbuf [color="0.650 0.700 0.700"];
|
45
|
+
merge -> cmpsave [color="0.650 0.700 0.700"];
|
46
|
+
insert -> cmpa [color="0.650 0.700 0.700"];
|
47
|
+
wline -> flsbuf [color="0.649 0.700 0.700"];
|
48
|
+
qsort -> cmpa [color="0.650 0.700 0.700"];
|
49
|
+
rline -> filbuf [color="0.649 0.700 0.700"];
|
50
|
+
xflsbuf -> write [color="0.650 0.700 0.700"];
|
51
|
+
flsbuf -> xflsbuf [color="0.649 0.700 0.700"];
|
52
|
+
filbuf -> read [color="0.650 0.700 0.700"];
|
53
|
+
term -> unlink [color="0.650 0.700 0.700"];
|
54
|
+
term -> signal [color="0.650 0.700 0.700"];
|
55
|
+
term -> setfil [color="0.650 0.700 0.700"];
|
56
|
+
term -> exit [color="0.650 0.700 0.700"];
|
57
|
+
endopen -> open [color="0.650 0.700 0.700"];
|
58
|
+
fopen -> endopen [color="0.639 0.705 0.705"];
|
59
|
+
fopen -> findiop [color="0.650 0.700 0.700"];
|
60
|
+
newfile -> fopen [color="0.634 0.707 0.707"];
|
61
|
+
newfile -> setfil [color="0.650 0.700 0.700"];
|
62
|
+
fclose -> fflush [color="0.642 0.704 0.704"];
|
63
|
+
fclose -> close [color="0.650 0.700 0.700"];
|
64
|
+
fflush -> xflsbuf [color="0.635 0.707 0.707"];
|
65
|
+
malloc -> morecore [color="0.325 0.850 0.850"];
|
66
|
+
malloc -> demote [color="0.650 0.700 0.700"];
|
67
|
+
morecore -> sbrk [color="0.650 0.700 0.700"];
|
68
|
+
morecore -> getfreehdr [color="0.650 0.700 0.700"];
|
69
|
+
morecore -> free [color="0.650 0.700 0.700"];
|
70
|
+
morecore -> getpagesize [color="0.650 0.700 0.700"];
|
71
|
+
morecore -> putfreehdr [color="0.650 0.700 0.700"];
|
72
|
+
morecore -> udiv [color="0.650 0.700 0.700"];
|
73
|
+
morecore -> umul [color="0.650 0.700 0.700"];
|
74
|
+
on_exit -> malloc [color="0.325 0.850 0.850"];
|
75
|
+
signal -> sigvec [color="0.650 0.700 0.700"];
|
76
|
+
moncontrol -> profil [color="0.650 0.700 0.700"];
|
77
|
+
getfreehdr -> sbrk [color="0.650 0.700 0.700"];
|
78
|
+
free -> insert [color="0.650 0.700 0.700"];
|
79
|
+
insert -> getfreehdr [color="0.650 0.700 0.700"];
|
80
|
+
setfil -> div [color="0.650 0.700 0.700"];
|
81
|
+
setfil -> rem [color="0.650 0.700 0.700"];
|
82
|
+
sigvec -> sigblock [color="0.650 0.700 0.700"];
|
83
|
+
sigvec -> sigsetmask [color="0.650 0.700 0.700"];
|
84
|
+
doprnt -> urem [color="0.650 0.700 0.700"];
|
85
|
+
doprnt -> udiv [color="0.650 0.700 0.700"];
|
86
|
+
doprnt -> strlen [color="0.650 0.700 0.700"];
|
87
|
+
doprnt -> localeconv [color="0.650 0.700 0.700"];
|
88
|
+
sprintf -> doprnt [color="0.650 0.700 0.700"];
|
89
|
+
cmpa [color="0.000 1.000 1.000"];
|
90
|
+
wline [color="0.201 0.753 1.000"];
|
91
|
+
insert [color="0.305 0.625 1.000"];
|
92
|
+
rline [color="0.355 0.563 1.000"];
|
93
|
+
sort [color="0.408 0.498 1.000"];
|
94
|
+
qsort [color="0.449 0.447 1.000"];
|
95
|
+
write [color="0.499 0.386 1.000"];
|
96
|
+
read [color="0.578 0.289 1.000"];
|
97
|
+
msort [color="0.590 0.273 1.000"];
|
98
|
+
merge [color="0.603 0.258 1.000"];
|
99
|
+
unlink [color="0.628 0.227 1.000"];
|
100
|
+
filbuf [color="0.641 0.212 1.000"];
|
101
|
+
open [color="0.641 0.212 1.000"];
|
102
|
+
sbrk [color="0.647 0.204 1.000"];
|
103
|
+
signal [color="0.647 0.204 1.000"];
|
104
|
+
moncontrol [color="0.647 0.204 1.000"];
|
105
|
+
xflsbuf [color="0.650 0.200 1.000"];
|
106
|
+
flsbuf [color="0.650 0.200 1.000"];
|
107
|
+
div [color="0.650 0.200 1.000"];
|
108
|
+
cmpsave [color="0.650 0.200 1.000"];
|
109
|
+
rem [color="0.650 0.200 1.000"];
|
110
|
+
setfil [color="0.650 0.200 1.000"];
|
111
|
+
close [color="0.650 0.200 1.000"];
|
112
|
+
fclose [color="0.650 0.200 1.000"];
|
113
|
+
fflush [color="0.650 0.200 1.000"];
|
114
|
+
setbuf [color="0.650 0.200 1.000"];
|
115
|
+
endopen [color="0.650 0.200 1.000"];
|
116
|
+
findiop [color="0.650 0.200 1.000"];
|
117
|
+
fopen [color="0.650 0.200 1.000"];
|
118
|
+
mul [color="0.650 0.200 1.000"];
|
119
|
+
newfile [color="0.650 0.200 1.000"];
|
120
|
+
sigblock [color="0.650 0.200 1.000"];
|
121
|
+
sigsetmask [color="0.650 0.200 1.000"];
|
122
|
+
sigvec [color="0.650 0.200 1.000"];
|
123
|
+
udiv [color="0.650 0.200 1.000"];
|
124
|
+
urem [color="0.650 0.200 1.000"];
|
125
|
+
brk [color="0.650 0.200 1.000"];
|
126
|
+
getfreehdr [color="0.650 0.200 1.000"];
|
127
|
+
strlen [color="0.650 0.200 1.000"];
|
128
|
+
umul [color="0.650 0.200 1.000"];
|
129
|
+
doprnt [color="0.650 0.200 1.000"];
|
130
|
+
copyproto [color="0.650 0.200 1.000"];
|
131
|
+
creat [color="0.650 0.200 1.000"];
|
132
|
+
demote [color="0.650 0.200 1.000"];
|
133
|
+
exit [color="0.650 0.200 1.000"];
|
134
|
+
free [color="0.650 0.200 1.000"];
|
135
|
+
getpagesize [color="0.650 0.200 1.000"];
|
136
|
+
getpid [color="0.650 0.200 1.000"];
|
137
|
+
initree [color="0.650 0.200 1.000"];
|
138
|
+
insert [color="0.650 0.200 1.000"];
|
139
|
+
localeconv [color="0.650 0.200 1.000"];
|
140
|
+
main [color="0.650 0.200 1.000"];
|
141
|
+
malloc [color="0.650 0.200 1.000"];
|
142
|
+
morecore [color="0.650 0.200 1.000"];
|
143
|
+
oldfile [color="0.650 0.200 1.000"];
|
144
|
+
on_exit [color="0.650 0.200 1.000"];
|
145
|
+
profil [color="0.650 0.200 1.000"];
|
146
|
+
putfreehdr [color="0.650 0.200 1.000"];
|
147
|
+
safeoutfil [color="0.650 0.200 1.000"];
|
148
|
+
sprintf [color="0.650 0.200 1.000"];
|
149
|
+
term [color="0.650 0.200 1.000"];
|
150
|
+
}
|