このプロジェクトのWiki

とりあえずメモをここに書いておきます。

なぜフローチャート?

  • ぱっと見て処理の流れをつかみやすい
  • 業界標準(だった)

開発予定

  1. 独自言語→DOT言語変換
    • 画像出力は手間なので、graphvizに任せます。開発言語はperl/ruby/cあたりが候補です。
  2. 簡便に使用するためのラッパ
    1. Windows:送るメニューから受け付け、独自言語→DOT言語→PNG変換とか
    2. bash:同上
    3. Windows:GUI
    4. tk
  3. プログラミング言語→独自言語変換
    • 将来的にはやってみたい。
  4. 独自言語→プログラミング言語(コメントによる雛形)
    • ツールは楽に作れそうですが、あって使われるとは思えません。

  • 1ファイルが1図となる。(ツール処理簡易化のため。将来的には複数持てるようにしたい)
  • 文字コードはUTF-8(graphvizがUTF-8のようなので)

言語案

名前は適当なものが思いつかなかったので、FlowChartMarkupLanguage(FCML)としておく。

一行一コマンド。

実装している構文

  • コメント(#行)
  • サブルーチン(sub FUNCNAME, endsub)
  • 処理(do XXX)
  • 定義済み処理(call XXX)
  • 分岐(switch XXX, case XXX, break, endswitch)
  • リターン(return XXX)
  • 強制ジャンプ(label LABELNAME, goto LABELNAME)

実装したい構文

  • フローチャート上のコメント(テキスト)

sub main2
	do init
label startSwitch
	switch OK?
	#return a
	case 1
		call error_func
		return a
	case 2
		break
	case 4
		do foo
		break
	case X
		goto startSwitch
	endswitch
endsub

wikiの他ページ

DOT言語