構文解析
トークン列を文法規則に従って構文木を構成する
プログラミング言語の構文はBNF記法を用いて記述されることが多い
構文解析を行うプログラムのことをParserと呼ぶ
分類
トップダウン構文解析
ボトムアップ構文解析
PEG
トラバーサ/ traverser
ASTを再帰的に操作する
ジェネレータ/generator
ASTからjsのコードを生成する
JSの話
『JavaScript AST入門』
利用されている箇所
ESLint, prettierなどのコード整形ツールなど
デバッグやテスト
DIできる
コメントの活用
ドキュメント作成とか
関連
文脈自由文法
CF文法の定義
参考
『言語のしくみ』
『コンパイラの理論と作成技法』
https://ja.wikipedia.org/wiki/構文解析器
https://www.slideshare.net/takahashim/what-is-parser
https://keens.github.io/slide/koubunkaisekiarekore/
/nekketsuuu/構文解析が決定不能なプログラミング言語
未読
https://speakerdeck.com/yui_knk/what-is-expected
parserの実装時に、このtokenの次になんのtokenが来るかを考える
めっちゃたくさんのアルゴリズムを図解しているスライドがあった
http://ppl.jssst.or.jp/ppl2016/slides/visual_parsing.pdf