tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

言語実装パターン読んだ

言語実装パターン再帰下降構文解析のパターン3までを読んだ。 この本だと再帰的下向き構文解析。LL(k)で字句解析、構文解析するのが基本な気がするのだけれどLL(1)の説明が多いのは基礎的な仕組みの説明を死体からなのだろうか?

手を動かしてみないとよくわからない感じもある。

構文解析についてはMySQLSQLをうまく扱えるようになりたくて、yaccのファイルを見てみた。

/storage/innobase/pars/pars0grm.y

bisonで-gオプションを付けて読ませればdotファイルでgraphvizで可視化するためのファイルができる。 これをsvgで見たんだけど全然見れたものじゃなかった。。。pngは字が潰れちゃって無理w

ファイルがでかすぎてここに貼るのもやめた。

SQLiteだとTkっていうのを使ってsyntax graphをrailroad graph(?)で図示していて羨ましいんだけど、これを手で書くのはナンセンスなので、上記の.yファイルから良さげなsyntaxグラフを作成するのを一つの目標にしたい。

wiki.tcl-lang.org

あとはpt-fingerprint的なものを作るのが実用的な目的といったところ。