inohilog

/var/log/inohiro.log

C# + jay で構文解析器

情報特別演習でXMLDBを作ったときに、XPathのパーサを、jayを使って作ろうとしたのですが、どうも解析器はできたようなんだけど使い方がわからなかった。仕方なく簡単なXPathが読めるパーサを自分で書いたのですが(パーサのお仕事はできてるけど、実装として正しいのかわからん)、これがきっかけでパーサやパーサジェネレータに対する知識が欲しい感じです。


パーサジェネレータを使ってパーサが作れる/使えるというのも重要だと思うんですが、個人的にはどんな風に読んでるのか知りたいところです。自分の書いた簡易パーサは実装として合ってるのか(いやあまり良くない、と個人的には思ってるんですが)。そのへんも知りたいなぁと思います。


ちょっとJayについて調べてたら、面白そうな記事が書かれていたので、これを参考にまたJayでパーサを作ってみようと思います。そしてそのコードを読めば、どうやって文字列読んでるかわかるし。
C# / Mono / Jay で構文解析器を書こう - 星一の日記


Wikipediaも結構詳しく書いてあった気がする。
構文解析 - Wikipedia


あと昨年の夏頃にバイト先の人が詳しく説明してくれたメールが残ってるはずだから読み直してみよう。