「風の症状が出始めたのは土曜日、日曜日はきっちり睡眠取ったし大丈夫だろう」「治ってなくても一日ぐらいもつだろう」などというバカな発想で出社したら見事に仕事中に症状悪化。半ば無理やり帰させられて、そんで医者行った後今までずっと寝てた。我ながら何やってんだ。これで明日中にやんなきゃいけない仕事が増えたなあ。まあ、二つあったバカでかい課題の一つは今日の内にケリがついたからいいか。
で、すごくどうでもいいけど、プログラミング言語というか DSL の構文解析って、凝ったことしないなら全然難しくないんだよな。例えば次のような文法の言語を考える。
def func {
foo = "foo bar";
if condition {
var = some_function arg1, arg2
} else {
var = another_function arg1,
arg2,
arg3,
arg4;
}
}
とりあえずこの言語はかなり特殊な目的のための DSL なんで、以下のような制約がある。
こういう制限があれば、もう何も考えずに
という風に処理していけば、難しい事は何一つ考えずに済む。処理した後にキャッシュするんで、多少非効率でもそこまで問題ないしな。最初は JavaCC を使おうかな思ってたけど、この程度だったら yacc の類を持ち出すまでもないなあ。それでも文字列処理を Java でゴリゴリ書くのは面倒なんで Jython で書いちまったけど。俺以外に Python 技術者がいないからそのうち全部 Java で書き直す事にはなると思うけど、どうせプロトタイプだからいいか。
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。