タグ

top-down-parserに関するnabinnoのブックマーク (2)

  • LL法 - Wikipedia

    $ という特殊な終端記号に関する行があることに注意されたい。$ は入力の終わりを示す。 構文解析手続き[編集] 最初に、構文解析器は入力バッファから '(' を読み込み、スタックから 'S' を読み込む。表を参照すると、規則2を適用すべきであることがわかる。規則2はスタック上の 'S' を '( S + F )' に書き換え、規則番号を出力する。スタックの内容は次のようになる。 [ (, S, +, F, ), $ ] 次に、入力バッファとスタック双方から '(' を取り除く。 [ S, +, F, ), $ ] 次に、入力バッファには '1' があり、スタックのトップが 'S' であることから規則1が適用されて、スタックのトップが 'F' に書き換えられ、さらに規則3が適用される(適用した規則の番号として 1 と 3 が出力される)。スタックは次のようになる。 [ F, +, F, ),

  • 再帰下降構文解析 - Wikipedia

    再帰下降構文解析(さいきかこうこうぶんかいせき、Recursive Descent Parsing)は、相互再帰型の手続き(あるいは再帰的でない同等の手続き)で構成されるLL法のトップダウン構文解析であり、各プロシージャが文法の各生成規則を実装することが多い。従って、生成されるプログラムの構造はほぼ正確にその文法を反映したものとなる。そのような実装の構文解析器を再帰下降パーサ(Recursive Descent Parser)と呼ぶ。 概要[編集] バックトラックのない再帰下降パーサを 予言的パーサ(predictive parser)と呼ぶ。予言的構文解析は文脈自由文法の一種であるLL(k)文法クラスでのみ可能であり、ある正の整数 k が存在し、再帰下降構文解析で次に使用すべき生成規則を選択するのに k 個のトークンを調べることで決定可能である。LL(k)文法には曖昧さがなく、左再帰も含

  • 1