private function display_dot($V, $E, $root, $level = 0)
{
$r = '';
foreach ($V as $id => $v) {
if (!isset($v['fullcode'])) {
if (isset($v['code'])) {
$v['fullcode'] = $v['code'];
} elseif (isset($v['analyzer'])) {
$v['fullcode'] = $v['analyzer'];
} else {
$v['fullcode'] = 'NO CODE PROVIDED';
}
}
$R = $id . ' [label="' . addslashes($v['fullcode']) . '"';
if (isset($v['atom'])) {
$R .= ' shape=box ';
}
$R .= "];\n";
$r .= $R;
}
foreach ($E as $start => $e) {
foreach ($e as $end => $label) {
if ($label == 'NEXT') {
$r .= "{$start} -> {$end} [label=\"{$label}\" color=green];\n";
} else {
$r .= "{$start} -> {$end} [label=\"{$label}\"];\n";
}
}
}
$r = " digraph graphname {\n {$r}\n }";
return $r;
}