规范句型。2.给出句型QbRae的语法树和句柄:语法树:句柄:QbR
四、考虑以下文法考虑以下文法D→T→TVi
tfloat
V→idVida在该文法中提取左公因子。
fb为所得的文法的非终结符构造First集合和Follow集合。c说明所得的文法是LL1文法。d为所得的文法构造LL1分析表e假设有输入串i
txyz写出相应的LL1分析程序的动作。答:a文法存在左公因子,提取左公因子后的文法为:文法存在左公因子,提取左公因子后的文法为:D→T→V→b非终结符DTVVc1FirstTVi
tfloatFirsti
t∩Firstfloati
t∩floatφFirstidVid;id
FirstV∩Firstε∩εφ2
TVi
tfloatVεFirst集合i
tfloati
tfloatidεFollow集合id
V→idV
Vε
FirstV∩FollowV
ε∩φ
根据LL1文法的定义判断,此文法是LL1文法;dLL1分析表为:i
tfloatid
DTVV
D→TVT→i
ti
t
D→TVT→floatfloatV→ididVidV→VV→ε
e输入串i
txyz的LL1分析:
f步骤1234567891011121314
分析栈DVTVi
tVVxVVVVyVVVVz
输入串i
txyzi
txyzi
txyzxyzxyzyzyzyzyzzzzz
分析程序的动作
D→TVT→i
ti
t
i
t匹配
V→ididVid
x匹配
V→V匹配V→ididVid
y匹配
V→V匹配V→ididVid
z匹配接受
五、考虑以下的文法:考虑以下的文法:E→LaL→LEEa为这个文法构造LR0项目的DFA。b判断这个文法是否是LR0文法?若不是,请描述出LR0冲突,如果是,则构造LR0分析表。c判断这个文法是否为SLR1文法?若是,构造SLR1分析表。d显示分析栈和输入串aaaa的SLR1分析程序的工作。答:拓广文法:0E’→E1E→L2E→a3L→LE4L→E
fL
I2:E→LL→LE→
I4:E→L→
L→LE→
E
I6:E→L→I8:L→LE→
I7:L→LE→
E→L→E→a→
I0:E’→E→E→L→E→a→
L→E→E→L→E→a→
E
I5:→EL
Ea
I1:→EE’I3:E→a→
a
a
是LR0文法LR0分析表为ACTIONa012345678r4r1S3r3r4r1S2r3r3r3r3S3r2S2r2r2S6r4r1s4r2S7r4r1r4r18r2S3S2acc54E1GOTOL
非终结符E’EL
是SLR1文法SLR1分析表为
Follow集合
ACTION
GOTO
fa012345678
步骤123456789101112131415161718192021222324252627分析栈
S2
acc
E1
L
S3S3
S2r2S6r4r1
s4r2S7r4r1r3
ACTIONS2S2S3
5r2
4
r18
S3
S2r3
输入
GOTO
00202202r