:
LR Parsing Engine
:
3 章 Parsing(後半) 〜〜
LR Parsing
LR(
) Parsing は,
Left-to-right parse
,
Rightmost-derivation
,
k-token lookahead
からきている.
図 3.18 に,以下のプログラムで Grammar 3.1 を用いた LR パースを 説明している.新しい start production
を定義してい る.
a := 7;
b := c + (d := 5 + 6, d)
パーサは,スタック(stack) と入力(input) を持つ.入力の最初の
トークンは先読みである.スタックと,先読みに対してパーサは以下の 2 種 類のアクションを起こす.
シフト(shift): 最初の入力をスタックトップへ移す.
還元(reduce): (例えば,文法規則
を選ぶと すれば,スタックから
,
,
の順番でポップし,スタックへ
を プッシュする.
最初は,スタックは空(empty) で,パーサは入力の最初からスキャンす る.ファイルの終了マーク
をシフトすることにより,受理(
) とい い,パーサは,成功し終了したことを示す.
LR Parsing Engine
LR(0) パーサの生成
SLR パーサの生成
LR(1) アイテム; LR(1) Parsing 表
LALR(1) パース表
文法クラスの階層構造
曖昧な文法のLRパース
平成12年8月22日