プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

Luaの文法で遊ぶ

昨日のクエリクラスは__indexを利用して、オブジェクトと"."で参照された要素名を処理関数に渡すという手法で作成した。
クエリクラスの実装は非効率的だが、呼び出しの文法は中々面白い形になったと思う。
速度の必要の無い部分であれば導入してもよさそうだ。

おそらくパーサーに組み込んだらこんな感じの文法が可能になる。

urls = htmlData().a.href()  --aタグのhref属性を抽出

__indexを用いて参照された要素名を中継する手法を使えば、パーサー内部にタグ名を持つ必要がなくなる。
また、""を使って関数にタグ名を与える必要がないので、若干文字数を減らせる。
さらに文法の見た目が通常の呼び出しと異なる=パーサーを使っていることが明確になる。

とりあえずこの手法をメソッドチェーンならぬリファレンスチェーンと命名。
いつの日かLuaJavaScriptを追い抜きクライアントサイドスクリプトの標準となった暁にはその名を轟かせるであろう(来ねえよそんな日)