ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

XtextによるAsakusaFW独自DSL実験

2013-09-14 23:59:59 | プログラミング

独自DSLのエディターを作るのにXtextがあまりに便利なので、ふと思い立ってAsakusa FrameworkのBatch DSL・Flow DSLの独自言語を作ってみた。

DSLの定義とハイライト(色付け)アウトラインの表示・基本的なソース整形まで、1日で出来た(笑)
Batch DSLの方は、バッチクラス(本来のJavaのBatch DSL)を生成するところまでやってみた。

DSLの見た目はとりあえず問題なさそうだけど、入力補完が出来ないと、やはり便利ではない。
Batch DSLの場合はJobクラス(Flow DSL)自体を補完する必要があるし、Flow DSLはオペレータークラスやメソッドを補完する必要がある。
JobクラスやOperatorクラスを探す部分を作るのは大変そう。

それと、(忘れてたけど)オペレーターは色々な種類の引数を定義できるんだよね。
これをDSL上で表現するのも面倒(やり方は分かっているので、本当に面倒なだけ)^^;

という訳でかなり簡単に独自のAsakusa DSLは実現できそうだけど、実用性はよく分からないので、とりあえずここまで。


本家のAsakusa DSLは、Javaをホスト言語とする内部DSLとなっている。
オペレーターをJavaで書くので、それを呼び出すFlow DSLもJavaで作ると、Javaのエディターの機能(クラスやメソッドの入力補完)がそのまま使える。
やはり内部DSLにもメリットがある。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする