気づくとメタプロ
NScripter 流の書き方がさっぱりしっくり来ない.例えば
if $%0 == ”unko” hoge: hige: hage
とかが見た目としてひどい*1.ブロック文もどきもうちょっと頑張ってくれよ,for 文は当然のように行またぐのに…….
とかいうイライラが募って,
if $%0 == “unko”
hoge
hige
hage
fi
を最初の奴に置き換えるとかいう順当なマクロをぼちぼち作って前処理をやっていた
つもりが,気づくとあんまり NScripter のコードに見えないそれをコンパイルするとスプライト番号自動で振ったりボタン待ち後の飛び先ラベルが自動で用意されたりする何かになっていた.
マクロからテンプレートへ的人間の欲望を垣間見た気がした.
そんなもんまじめに作ってたら年が明けるので我に返ってぶん投げたけど,同じような何かはどこかで見た気がする. NScripter スクリプトと吉里吉里スクリプトの相互コンバートだったかなんだったか.
まじめな言語でやると気が遠くなる素人はノベルゲーム(笑)のスクリプトでメタプロもどきをやればいいと思うよという話.ONScripter のソースは読んでる.
役に立ちそうな方向としては話題の js エンジンか.v8 とかでもふーん,って気軽に読める程度の能力になりたいもんだ.
あとどうでもいいけど NScripter では
mov %0, 255
とかやって代入するんだけど,見た目にアセンブリ言語的なんでなんか難しそうなことやってるカコイイ! って思うかもしれないけど実際はものすごーく簡単でどうしようもない感じなんだよね.かろうじてポインタがあるくらいで,抽象度はアセンブリ言語と比較しちゃいけないレベル.
そのギャップがウケるんだけどね.こういうと漏れなく作者さんに失礼だけど,「俺ってアセンブラ使えるんだぜ! 確かこんなんだろ!?」 とか門外漢が記法だけ真似たっていう感じがしまくっている.いや俺も門外漢だけどさ.
でも %0 = 255 とか %0 = %0 + %1 とかを許可せずに mov %0, 255 とか add %0, %1 とか強いる理由って再帰的な構文解析めんどかったから以上でも未満でもないよね*2.
とかうだうだと文句言いつつもありがたく使わせてもらってます.
あー Flex でノベルエンジン書きたいな.
Trackback URL
この記事にはまだコメントがついていません。
コメントをどうぞ
サイト内検索
ログ
最近のコメント
携帯版

PC と共通の URL で OK.