言語実装パターン読んだ
言語実装パターン再帰下降構文解析のパターン3までを読んだ。 この本だと再帰的下向き構文解析。LL(k)で字句解析、構文解析するのが基本な気がするのだけれどLL(1)の説明が多いのは基礎的な仕組みの説明を死体からなのだろうか?
手を動かしてみないとよくわからない感じもある。
構文解析についてはMySQLのSQLをうまく扱えるようになりたくて、yaccのファイルを見てみた。
/storage/innobase/pars/pars0grm.y
bisonで-gオプションを付けて読ませればdotファイルでgraphvizで可視化するためのファイルができる。 これをsvgで見たんだけど全然見れたものじゃなかった。。。pngは字が潰れちゃって無理w
ファイルがでかすぎてここに貼るのもやめた。
SQLiteだとTkっていうのを使ってsyntax graphをrailroad graph(?)で図示していて羨ましいんだけど、これを手で書くのはナンセンスなので、上記の.yファイルから良さげなsyntaxグラフを作成するのを一つの目標にしたい。
あとはpt-fingerprint的なものを作るのが実用的な目的といったところ。