このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

侵入性のデフォルトはやっぱり侵入的か

パターンの侵入性に関して、デフォルトは非侵入的にすると書いた(→「非侵入的パターンと侵入的パターン - 檜山正幸のキマイラ飼育記 メモ編」)。しかし、やっぱり侵入的かもしれない。

侵入的パターンだと、意図しない重複出力が生じる。これが問題なので非侵入的パターンが欲しいわけだ。しかし、非侵入的パターンでは「検索漏れ」が発生する。なぜなら、見つかったノードの子孫ノード群の検索をしないからだ。

* <div>$:attrs</>

このようなパターンだと、すべてのdiv要素を列挙できない。重複出力はすぐに気づくが、検索漏れは気づきにくい。不注意からバグ(意図せぬ挙動)を引き起こす可能性がある。

重複出力に気付いたら、バッククォートを付けるということでいいかもしれない。例えば:

* <div>$:text</>

は重複出力を生むだろう。

* `<div>$:text</>

と直せばよい。このとき、バッククォートは非侵入的パターンを識別する。