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ファイルに出力するツール、あっさり作れた。これが欲しかったんだよこれが。めでたしめでたし。
  • 画像化に関しては、ウィンドウが開いちゃったりとか色々めんどくさいので保留した。