「SearchQueryStructure」に関する日記

SearchQueryStructure

実装は特に進まず。
やっぱりエラー処理となると、やみくもに実装を始めるより、ちゃんと考えないと詰みますからね。
エラーが起きたときも、途中までのパース結果はエラー本体とともに返したい、というのは昨日言った通り。
どこでエラーが起きたかというのも返せると、修正もしやすくなりますね。
となると、字句解析の時点で、各シンボルに位置情報を埋め込む必要がありそう。
あと、空文字列を渡されたときの特別対応もあっていいかな。

SearchQueryStructure

旧来の機能をおおむね移植完了。
ただ、異常系に対しては、途中までの結果を返すのではなく、例外を投げたいので、もうちょっと調整が必要ですね。
できれば、専用の例外を作って、例外オブジェクトの中に途中までの結果を詰め込んで、例外をキャッチすれば失敗時も旧来の動きにできるという方向で作りたいですね。

SearchQueryStructure

やっと作り始めました。
美しい設計で作り直せるはずだと夢想して、「で、美しいって具体的には?」で止まって、長いことほったらかしになっていました。
これ、アンパンマンDBの検索機能の機能強化に使おうと思ってたんですよね。
だから、美しさを目指していつまでもスタートラインでぐるぐる回ってちゃアンパンマンDBも変われんのです。

ともかく、最初にやるべきことは旧来のコードのコピペと最初に決めたし、出力が美しければ中身が泥水でも結果は変わらんので、とりあえずほぼコピペでどうにかなる部分だけ持ってきました。
既にINodeインターフェースを用意していることからもわかるように、最終的な結果はINode実装クラスで返そうと思っています。

SearchQueryStructure

mifumi323/SearchQueryStructure: 検索構文とかに使われるAND/OR/括弧などの構文解析をするやつ
新しいライブラリとして作り始めました。
「検索クエリ」ってよく言ってるよなってことで、Phrase→Queryに、解析(parse)の逆に構築(build)もできていいかもなって思って、両方に共通する構造化データから、Parser→Structureに名前を変更しました。
実装はまだ始めていませんが、最初の段階はSearchPhraseParserからコピーしてきて結果だけ何かしらのクラスを作って当てはめればいいかなって思ってます。
オプションで柔軟にとか、ビルドできるようにとかは最初の一区切りまでできてから。