トップダウン構文解析
top-down parser
下降型構文解析
、
下向き構文解析
ともいう
解析木
の根から葉へと
導出
を繰り返す
まず大きな要素から開始して徐々に細部に分解していく
根から
最左導出
と同じ順番で
解析木
を生成していく
生成規則をそのままプログラムと見るのでHaskellやOCamlのような関数型の言語でParserを書くととても書きやすいし、簡潔になる
mrsekut.icon
問題点
後戻りが必要になることがある
構文規則を見たときに適用すべき規則が一意に定まらない
後戻りがある状態での解決策
バックトラッキングアルゴリズム
後戻り自体を消す解決策
左括り出し
先読みをする
左再帰
左再帰の除去
を使って解決する
トップダウン構文解析の例
再帰下降構文解析
Pratt構文解析
LL法
末尾再帰構文解析
パックラット構文解析