用Graphviz排序过渡布局

用Graphviz排序过渡布局,graphviz,dot,Graphviz,Dot,我正在将正则表达式转换为有限自动机,并且需要“优先”转换。目前,我正在通过使用优先级标记各个转换来实现这一点。是否有一种直接“排序”转换的方法,即能够将一个转换置于另一个转换之上?例如,给定Graphviz输入: digraph finite_state_machine { rankdir = LR; size="8,5" node [shape = doublecircle]; 5; node [shape = circle]; 0 -> 1 [l

我正在将正则表达式转换为有限自动机,并且需要“优先”转换。目前,我正在通过使用优先级标记各个转换来实现这一点。是否有一种直接“排序”转换的方法,即能够将一个转换置于另一个转换之上?例如,给定Graphviz输入:

digraph finite_state_machine {
  rankdir = LR;
  size="8,5"
  node [shape = doublecircle]; 5;
  node [shape = circle];
  0 -> 1 [label = "(0) ε"];
  1 -> 2 [label = "(0) ε"];
  2 -> 3 [label = "(0) ε"];
  3 -> 5 [label = "(0) ε"];
  3 -> 4 [label = "(1) ε"];
  4 -> 3 [label = "(0) A-Z"];
  6 -> 0 [label = "(0) ε"];
}
输出如下所示:


如果可能的话,我希望低优先级的转换总是“高于”高优先级的转换。这可以通过graphviz实现吗?我使用关键字“rank”和“priority”在线搜索,但没有找到任何内容。

rank=same应该允许您对节点进行排序/优先级排序,但rankdir LR时Graphviz中存在一个错误