namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: date query
masao@xxxxxxxxxx (Masao Takaku) wrote:
>日付範囲指定による検索機能(のほんの一部)をコーディングしてみました。
すばらしい。
>CVSが使っているgetdate.cを使って
>日付指定文字列の解析を行なっています。
>なので、CVSで使える日付指定方法がそのまま利用可能。(多分)
いいですね。自分で書くと確実にバグに悩まされそうですから。:)
>* 指定方法
> - オプションで指定するよりも、queryの一部として指定できた方が良いかも。
そう思います。query の指定方法はどんな風がいいのだろう?
ただ、 query の処理は Namazuのコードでも最も汚い部分の 1つな
ので、今の状況で機能を追加することは困難です。書き直します。
現状:
* いきあたりばったりな方法で token に分ける
* 再帰下降パーザで token のリストを探索しながら処理する
改善案:
a. lex + yacc で書き直す
b. libl を使うのが嫌なので lex は使わないで yacc のみ使う
c. すべて Cで書き直す
1. まともに字句解析して token に分ける
2. 再帰下降パーザで逆ポーランド記法のスタックに変換
3. スタックを頭から順に処理していく
# yacc なら 2, 3 の代わりに LALR構文解析表を作ってもっと
# 効率よく処理してくれますね
a, b, cのどれがいいと思います? 作業としては a, b, c の順に手
間が (手間に比例してバグも) 多くなります。
僕は a がいいと思います。保守および拡張が容易でしょうから。
# lex + yacc の勉強にもなるし
>コメントなど是非お願いします。
上記の query の処理を書き直したら、Namazuに取り込みたいと思
います。よろしくお願いします。
p.s.
高久さんはそろそろ修論から解放されました? :-)
-- Satoru Takabayashi