制作日記

こういうの作った方が、逃げにくいじゃない

テキスト整形

空白削除程度でも作るの面倒なんだよなー
文字列がなければ良いんだけどな

正規表現での置換でやるなら
まずコメント削除
これは「;.*」を削除するだけのはず
次は[state ***]を何とかする
^\s*\[state .*\].*$を置換
次はstatedef
^\s*\[statedef -+\d+.*\].*を置換
airの[Begin Action **]もそんな感じで置換

その上で文字列内とか必要な空白を維持したまま、その他空白を削除
となると、必要な空白を適当な文字に変えて、その上で空白削除
トリガーとかはいいとして、文字列は
"(([^"\s]*?)\s*?)*"
みたいな感じかな、置換は環境による
自分ならperlとかはわからんから、Cでregex使うかな
regexならPOSIXで書き換えないといけないけど、そういやPOSIX拡張とか知らんわ
プログラム的には大したことないから、環境さえ用意すればどうとでもなると思うけど

あとはdefファイルのauthor、name、displaynameを良い感じに別途処理
あっこだけ""のなかに"が入っても問題ないせいで文脈から判断が必要

で、一番の問題はコメント以外のcndの文法上解釈されない部分
日本語べた書きしてる行は削除するにしても
「trigger 1」みたいな空白はわざとやってるのか、只のtypoなのか
typoにしても、整形してtrigger1に変わるのも問題なんだよなー
なぜかってーと、cnsの意味が変わってテキスト整形の範疇じゃなくなる
バグ消えるのは良いことなんていう単純な問題でなく、
そのツールを使用した人間の意図しないとこで挙動が変わるのが問題

となると、オプションで切り替えられるようにするか、警告出すか
そこまでやろうとすると、構文解釈が必要になるわけで
「仕様です」で逃げるしかないかなと

ようは面倒くさい

そういや、テキスト弄る系のツールは改行コード意識してくれると嬉しいなっと
テキスト吐くときは仕方ないにしても、触る必要のない改行コードが変わるのはね

コメントの投稿

非公開コメント

プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク