XMLを手書きするのはもうイヤだ。というわけで、BulletMLを、普通のプログラミング言語風に書けるプログラムを作ってみました。要Java。
changeDirection の direction キーワード、changeSpeed の speed キーワードを省略できるようにしました。type=vertical; のように記述すると、<bulletml type="vertical">... という出力を行うようにしました。Ver. 1.1 で修正されました。
type=... で <bulletml type="..."> のようなコードがでるはずだったのですが、vertical や horizontal を指定できないので、意味がありません。コンパイルには¬<><∪∪が必要です。
文法あるいはクイックリファレンスに従って、適当に記述します。例えば下みたいな感じ。
action top
repeat 100 action {
fire direction sequence 23 bulletRef straight;
wait 1;
}
bullet straight action {
wait 20+$rand*50;
changeDirection direction absolute 180 term 10;
}
コンパイルすると、XMLが出てきます。
% java -jar bulletnotml-1.1.jar sample.txt
<?xml version="1.0" ?>
<!DOCTYPE bulletml SYSTEM "http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/bulletml.dtd">
<bulletml>
<action label="top">
<repeat>
<times>100</times>
<action>
<fire>
<direction type="sequence">23</direction>
<bulletRef label="straight" />
</fire>
<wait>1</wait>
</action>
</repeat>
</action>
<bullet label="straight">
<action>
<wait>20+$rand*50</wait>
<changeDirection>
<direction type="absolute">180</direction>
<term>10</term>
</changeDirection>
</action>
</bullet>
</bulletml>
後は、煮たり焼いたり。
例によって、何か問題が起こっても作者は責任を持ちません。あと、¬<><∪∪のサンプルプログラムとして作ったものなので、あまりメンテナンスする気がありません。
プログラムはGPLになります。出力されたXMLは自由に使ってかまいません。