1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
defdesign kuku {
defstyle aaa [style=bold]
graph [bgcolor=red];
}
defproc probe($target, $label="yesyes") {
if $label==yesyes then defstyle tmp [style=double]
else defstyle tmp [style=bold];
{$$+m,$$+n,$$+o,$$+p,$$+q}->$target;
$$+m--$$+q [label=$label][tmp];
if $target<=struct2 then $$+q..$$+p::\c(red)struct1 or struct2[]
else $$+r>>$$+q;
if $target>struct2 then $$+q..$$+p::\c(red)struct3 or xx;
};
digraph structs {
# defstyle aaa [style=bold]
rankdir=LR
replay probe(xx);
subgraph cluster_aa {
subgraph cluster_in {
a[shadow_offset=5, shadow_blur=2][aaa];
a, x->y;
}
a->b a->b::\c(red)aaa\c(blue)bbbb\c()aaaa;
f[style="bold,dashed,filled,rounded",shape=box];
}
node [shape=record];
struct1 [label="<f0> left|<f1> mid\ dle|<f2> right"];
struct2 [label="<f0> one|<f1> two"];
struct3 [label="hello\nworld |{ b |{c|<here> d|e}| f}| g | h"];
struct1:f1 -> struct2:f0;
struct1:f2 -> struct3:here;
replay probe(struct1, "oh-my");
replay probe;
replay probe();
replay probe(, "error");
replay probe(, "error", 4);
replay probe(struct2);
replay probe(struct3);
}
graph{aa--bb}
|