5

それで、私は言語に取り組んでいて、主に好奇心から、ファイルの抽象構文ツリーを視覚化できるかどうかを確認したかったのです。いくつか調べた後、graphviz dot を見つけ、AST prettyprinter を変換して、この種の形式に出力できるようにしました。

digraph G {
    main -> parse -> execute;
    main -> init;
    main -> cleanup;
    execute -> make_string;
    execute -> printf
    init -> make_string;
    main -> printf;
    execute -> compare;
}

しかし、私の問題は、実行するときです

dot -Tpng dotf.gv -o graph.png

入力ファイルでは、幅が 8000 ピクセルのファイルになってしまいますが、これは実用的ではありません。ここを参照してください。

解決できるかわかりませんが、どなたか教えていただけると助かります。

4

1 に答える 1

2

最初に行うことは、以下を挿入して、デフォルトの下から上へのランキングから左から右へのグラフの方向を設定することです。

rankdir=LR;

... .dot ファイル内。これにより、グラフは左から右に配置され、長いノード ラベルを持つ多くのノードが含まれる可能性があるこのようなケースでは、はるかにコンパクトになります。

このように、clang を使用してファイルの呼び出しグラフを作成するのように、グラフの幅を減らすためのアイデアが他にもいくつかあります。

于 2013-05-27T21:16:54.463 に答える