例题:试构造下述文法的LR(0)分析表

G[E]→E+T|T

T→(E)|a

Step 1 拓广文法

避免冲突,构建E'指向开始符E

推出两个的拆开写

(0)E'→E

(1)E→E+T

(2)E→T

(3)T→(E)

(4)T→a

Step 2 列项目【项目集规范族(DFA图)】

点后面有东西的话
  • 如果是终结符【小写字母+符号:不能推出其他的】可以不管
  • 如果非终结符,列出所有非终结符项目

Step 3 分析表

  • ACTION:终结符 【rx,以x产生式结束的(点在后面,找相同的拓广文法);sx,到x项目集/状态】
  • GOTO:非终结符
  • 状态:项目集
状态 ACTION【终结符】
GOTO
a + ( ) # E T
0 S4
S3

1 2
1
S5

acc

2 r2 r2 r2 r2 r2

3 S4
S3

6 2
4 r4 r4 r4 r4 r4

5 S4
S3


7
6
S5
S8


7 r1 r1 r1 r1 r1

8 r3 r3 r3 r3 r3