今週ははっきりしないグズグズした天気が続いています。ほとんど終日曇り空で、時々レーダーにも映らないような霧雨。
今週ははっきりしないグズグズした天気が続いています。ほとんど終日曇り空で、時々レーダーにも映らないような霧雨。
17皿+あおさ汁+うどん。腹一杯過ぎる。
一応実装した。
<defmacro pattern="(xxx|yyy)_(a[0-9]|)(b[0-9]|)(c[0-9]|)" result=( (_2 ? (foos[_1].a = _2) : 0), (_3 ? (foos[_1].b = _3) : 0), (_4 ? (foos[_1].c = _4) : 0), STNIdent("foo_" + _1 + "_" + foos[_1].a + foos[_1].b + foos[_1].c))>
と、書くと、
:xxx_a1b3c4 は識別子 foo_xxx_a1b3c4 へ置換され、マクロ変数に必要な情報が記録される。以降順番に、
:xxx_ => foo_xxx_a1b3c4
:xxx_b9 => foo_xxx_a1b9c4
:xxx_a2 => foo_xxx_a2b9c4
:yyy_a2b5c8 => foo_yyy_a2b5c8
:yyy_a3c7 => foo_yyy_a3b5c7
:xxx_ => foo_xxx_a2b9c4
=>の左側のマクロ展開指定が右側の識別子へ置換される。
識別子以外にも、いろいろな構文要素へ置換することも可能。
マクロ変数はJavaScriptのオブジェクトみたいな感じ。
普段使用するPCはすべてMeadow3へ移行した。ImageMagickが併存できるのか分からなかったので、移行前にImageMagickをアンインストールした。無くても動きはするので。
fakecygptyのおかげでsshがまともに使えるようになったのが嬉しい。fakecygptyはリポジトリからもらってきてgcc fakecygpty.c -o fakecygpty.exeしてstrip。
trampがちゃんと動くようになったのは良いけど、scp、ssh経由はかなり遅い。つながるのに10秒、ディレクトリを移動するのに1~2秒かかる。
なんとなくhowmを使い始めてみた。Hitori Otegaru Wiki Modokiっていい名前だよね。
おお、ses-modeでスプレッドシートが使える。……別に今必要ないけど。
pcl-cvsの*cvs-commit*バッファが*cvs*バッファとして使われてしまう問題も解消されたのが嬉しい。
basic_regexがsregexやcregexにtypedefしてあるのは良いとして、match_resultsがsmatchやcmatchってのが、なぜか覚えづらくて困る。……いや、書いたら覚えたかも。
やっぱりマクロが欲しいのです。昨日最低限やりたいことがシンプルにまとまったので、詳しく考え中。
字句レベルで展開する方がマクロを組むときに楽そうだけど、lexと戯れるのが嫌なので、構文木レベルで展開することにする。どうせマクロ組むのは私だけなんだし。あと、一部の用途でマクロ式の構文解析を既存の構文と共用できなそうなので(共用にすると字句を展開しようとしても、すでに先の文字を読んでしまっている可能性がありそう)。
今日は午前中雨だったのでバス出勤にした。すっかりひ弱になってしまって……。
それにしても今週は寒い日が続きますね。
寝る前にうとうとしながら録画を見ていたら、投了という声がして一気に目が覚めた。今年の武宮先生はひと味違う!? どこまで行くのか楽しみである。
ksの方は一応予定日なので、準備の方はしておいた。今後は使える状態を維持しつつ、少しずつ変えていく。
rayfill氏よりM-x recompileで前回compileしたときのディレクトリでmakeしてくれるよー、とツッコミをいただきました。ありがとうございます。
手元で確認したところ、Meadow2ではダメでしたが、Meadow3ではちゃんとcompileしたときのディレクトリでmakeしてくれました。compile-commandは元のディレクトリからじゃないと意味がないんだから、普通復元するだろJKって感じですよね。こりゃ、他のマシンもMeadow3へ移行すべきかな。compile.elだけなんとかするって手もあるけど、他にも色々あるしね。