graphvizを使ってステートマシン図を書いた話
プログラム書いていて、記録と仕様化するために、ステートマシンをどうやって描こうかなと思って調べたらgraphvizというものがあるのを知りました。 試しに使ってみるとなかなか悪くないので、以下忘備録として記載します。 ちなみに、はてなブログにsvgを記載するにはもう一工夫必要でした、、 別の記事に記載予定です。
参考:
1. 噂のGraphvizを使ってみる - Qiita
2. https://graphviz.gitlab.io/_pages/Gallery/directed/fsm.html
インストール
grpaphviz実行
dotファイル例 (試しに作っているプリプロセッサのステートマシンです)
// sm.dot digraph finite_state_machine { // rankdir=LR; rankdir=TB; size="8,5" // node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8; node [shape = doublecircle]; NORMAL; node [shape = circle]; NORMAL -> IF_TRUE [ label = "`ifdef true" ]; NORMAL -> IF_FALSE [ label = "`ifdef false" ]; IF_TRUE -> EL_FALSE [ label = "`else" ]; IF_FALSE -> EL_TRUE [ label = "`else" ]; EL_TRUE -> NORMAL [ label = "`endif" ]; EL_FALSE -> NORMAL [ label = "`endif" ]; }