如何在Graphviz / dot文件格式中将Ant私有目标名称用作node_ids?

时间:2015-03-18 18:11:01

标签: graphviz dot

我想使用点文件格式和Graphviz创建Ant任务和依赖关系的图形。像许多Ant脚本一样,它们使用"私有目标"。也就是说,目标名称以短划线(-)开头。

我正在列出一些像

这样的任务
<target name="foo" depends="-init">
<target name="-init">

并创建一个像这样的点文件(它有点冗长,但这不是问题)。

digraph {
  foo;
  foo -> -init;
  -init;
}

我尝试通过dot程序运行该程序来创建.PNG,并在node_id中抱怨破折号!

> dot -Tpng -o graph.png graph.gv
Error: graph.gv:3: syntax error near line 3
context:  >>> - <<< init;

我可以用下划线或其他东西替换所有破折号,但这会将可搜索性变回源文件。有没有办法逃脱或编码破折号,以便我可以保持源信息正确?


我无法找到全面的点文件格式或语言描述。这描述了AST,但没有定义node_id的有效值。

http://www.graphviz.org/content/dot-language

1 个答案:

答案 0 :(得分:1)

简单地

digraph {
  foo;
  foo -> "-init";
  "-init";
}

digraph {
  foo;
  foo -> init;
  init [label="-init"];
}

允许边缘的短名称