Alloyコードリーディング
- PNGWriterってクラスがあるからVisualizerのメニューにそんなの無いけどどこから出力するんだ?と思ったら画面の右クリックでPNGややPDFで出力するメニューが出ることを発見
- alloy4wholeの中にコマンドラインから扱うためのサンプルがあった。簡単。
- Module world = CompUtil.parseEverything_fromFile(rep, null, filename);
- A4Solution ans = TranslateAlloyToKodkod.execute_command(rep, world.getAllReachableSigs(), command, options);
- ans.satisfiable()
- ans.writeXML("alloy_example_output.xml");
- viz.loadXML("alloy_example_output.xml", true);
- 今のansがsatisfiableならans.next()で次のインスタンスが得られる
- vis.getViewer()でGraphViewerが取れるから、そこからGraphViewer#alloySaveAsPNGで画像化できるのではないか
- コマンドラインから実行して全部の解を連番でXMLファイルに出力するツール、あっさり作れた。これが欲しかったんだよこれが。めでたしめでたし。
- 画像化に関しては、ウィンドウが開いちゃったりとか色々めんどくさいので保留した。