Академический Документы
Профессиональный Документы
Культура Документы
:
:
: ()
:
Compilers:
Principles, Techniques, and Tools
2 :
:
:
:
30:
10:
3 :
:
:
4 :
1-1
pretty printer
5 :
2-1
-1
-2 .
6 :
3-1
:
Load-and-go
7 :
4-1
8 :
5-1
9 :
1-5-1
10 :
2-5-1
11 :
6-1
( )
( )
12 :
7-1
( )
( )
-1
-2
-3
-4
-5
-6
13 :
1-7-1
14 :
2-7-1 -
(
)
15 :
2-7-1 -
16 :
2-7-1 -
17 :
2-7-1 -
18 :
2-7-1 -
( )
19 :
2-7-1 -
20 :
2-7-1 -
21 :
id1:= id2+ id3 *
50
tem1:=into real 50
tem2:=id3 * tem1
tem3:= id2 + tem2
Id1:= tem3
id1
:=
:=
+
id2
id3
22 :
id1
*
id2
Into real
id3
50
Mov id, R2
Mul 50.0 , R2
Mov R1, id1
Mov id2 , R1
Add R2, R1
50
8-1
23 :
:
:
:
24 :
1-2
25 :
2-2
4 }G = {N, T, S, P
= N
= T
= S
= P
26 :
} N = { E, F
} T = { +, * , / ,id
S=E
} P = { E F * id , F F / E , F F + F
id * id+ id
27 :
3-2
.
:
28 :
id + id * id
E E + E E + E * E E + E * id E + id * id id + id * id
E E + E id + E id + E * E id + id * E id + id * id
29 :
1-3-2
- S
A = A XYZ XYZ
A = A Xa X ,a
( ) .
30 :
2-3-2
( )
id + id * id
E
id
id
E
id
31 :
4-2
id + id * id
E E + E id + E id + E * E id + id * E id + id * id
E E + E id + E id + E * E id + id * id
32 :
5-2
E
-1 E .
-2 E E1 op E2 Op
F1 F2 Op F1, F2 E1 , E2.
-3 E ) (E1 E1 E .
952+ -
)9-(5+2
33 :
6-2
.
34 :
1-6-2
.1
.2
.
35 :
7-2
:
(
) n x x.a a x
.
) x.a n a
n .
36 :
expr.t := expr1.t // term.t // ,+,
expr1 + term
expr
expr1 - term
expr
term
expr
term.t := , 0,
term.t := , 1,
0
1
term
term
..
term.t := , 9,
..
9
term
37 :
1-7 -2
expr.t = 95-2+
expr.t = 95-
term.t = 2
expr.t = 9
term.t = 5
term.t = 9
38 :
2-7-2
.
39 :
8-2
.
40 :
1-8-2
expr
expr1
} ) {print ( ,+,
term
-1
-2
41 :
9-2 ( )
* .
* .
* .
42 :
1-9-2 -
:
. )LL(1
:
0
LR
43 :
1-1-9-2
44 :
S bBe
B cf/ ce/c
:
Back tracking
B
c
Back tracking
b B
e
b B
bb B
c
f
45 :
2-1-9-2
46 :
First
A aB /cC / e
B dA / c
C cB / a
} First (A):{ a, c, e
} First (B): { d, c
} First (C) : {c, a
47 :
10-2
A xZ / yZ
Z aZ / bZ / cZ
A Aa / Ab / Ac / x / y
48 :
S Aa / b
A Ac / Sd
A Ac / Aad / bd
S Aa / b
S Aa / b
A bdZ
Z cZ / adZ
49 :
11-2
A aZ
A aB / aC
ZB/C
50 :
S iEtSZ /a
S iEtS
S iEtSeS / a
Eb
Z eS
Eb
S iEtS / iEtSes
S a
Eb
51 :
12-2
-
52 :
Count
Count==count
count++increment
increment
id
id==id
id++id
id
53 :
1-12-2
( )
-1
-2
54 :
13-2
.
( )..
55 :
1-13-2 -
Lookup ( s ) :
Insert ( s , t) :
s t s
.
Lookup
Insert
56 :
2-13-2 -
: attributes : token
: ptr
mod
div
div
mod
id
57 :
14-2
:
-1
-2
-1
-2
-3
58 :
1-14-2
...
.
59 :
*13 + 5
-1 1
-2 2
-3
-4 4
-5 5
-6
-7 20
60 :
2-14-2
Push s
rvalue l
lvalue l
pop
r-value l-value
=:
copy
61 :
day := (1461*y) div 4 + (153*m + 2 ) div 5 + d
lvalue day
push 2
push 1461
rvalue y
push 5
div
push 4
div
push 153
rvalue m
rvalue d
+
:=
62 :
3-14-2
-1
-2
-3
63 :
1-3-14-2 -
lable l
goto l
gofalse l
gotrue l
halt
64 :
:
:
Lex
65 :
1-3
-1
-2
-3
-4
-5
66 :
2-3
( )
67 :
1-2-3
-1
-2
-3
68 :
3-3
Panic Mode -1
-2
-3
-4
-5
69 :
70 :
4-3
Lex
I/O
71 :
5-3
-1 {( } ) .
{a} -2 ( a ) .
-3 a b Kelin Star .
72 :
} ={a,b :
-1 aUb } {a , b .
-2 ) (aUb) (aUb } { aa, ab,ba,bb .
-3 * a a .
-4 * ) (aUb b a .
73 :
1-5-3
/ .
aUb=bUa
a U ( b U c)=(a U b U c
)(a b) c = a (b c
a (b U c) = a b U a c
( b U c) a = b a U c a
) a* = (a U
*a** = a
74 :
Letter A \ B \ \ Z\ a \b\ \ z
Digit
Id
0 \ 1 \ \ 9
letter ( letter / digit ) *
0 \ 1\ \ 9
Digits digit digit *
Optional_fraction . Digits \
Optional_exponent ( E( + \ -\ )digits) \
Num digits optional_fraction_exponent
Digit
75 :
6-3
-1
-2
-3
76 :
7-3
Aa
a
B A
A
A aB
77 :
G: S abSA
A Aa
G: S aSb/ab
G: S bS/cS/aB
B aB/cS /bC
C aB / bS
78 :
8-3 Lex -
Lex
-1
Lex
Lex.yy.c
-2
C
-3
a.out
-4 :
Yacc
a.out
Lex.1:
Lex.yy.c
79 :
- Lex 1-8-3
Lex
c
%%
Lex
%%
80 :
8-3
(
)
81 :
- Lex 1-8-3
%%
P1
P2
} : {1
} : {2
} : { 3
.
.
.
82 :
9-3
-1
DFA
-2 NFA
83 :
1-9-3
5
)M= (Q , , , q0, F
84 :
2-9-3
DFA
.
q4
a
q7
a
q3
q3
q4
a
q1
NFA
DFA
85 :
DFA
b
a
a
S aS / aA
A bA / b
S aS
aa
][A,bb
aaA
aab
][A , b
aabA
aabb
] [Z,
aabb
86 :
NFA
:
( a U b)* abb
b
3
b
2
a
1
87 :
88 :
b
q1
a
a
q0
a
c
}{ q1 , q2
q2
} q0 { q1 , q2, q0
}{q1
q1
}{q1
q2
89 :
DFA NFA
a
NFA
q0
a
q0
q1 , q2, q0
b,c
q1
a
q2
c
a
a
q0
q1 , q2, q0
b,c
b
q1 , q2
a , b, c
a,c
b
90 :
q1
DFA
4-9-3 NFA
=
M1
M2
q0
)L (M2) U L (M1
91 :
a (aUb ) = b
a
1
q0
q0
q0
b
2
92 :
4-9-3 NFA
=
M2
M1
q0
) L ( m1 ) , L ( M2 )L(M1) L (M2
93 :
a , b ab
q0
q0
q0
94 :
4-9-3 NFA
kelin star -
M1
q0
95 :
a *a
q0
*a
96 :
NFA
a
(a U b)*ab
q0
b
q0
1
b
a
2
q0
ab
97 :
NFA
a
2
)(a U b
q0
b
a
*)(a U b
q0
b
98 :
NFA
4
(a / b)*ab
a
99 :
IF
= Letter
any
letter
6
)
5
(
4
I
1
100 :
:
:
) SLR LR LL(1 LALR
101 :
1-4
-1
-2
-3
-4
102 :
2-4
103 :
1-2-4 -
()
104 :
3-4
-1 .
-2 .
-3 .
-4 .
105 :
3-4
-
106 :
3-4
-
-Panic Mode
-Phrase level
-Error production
-Global correction
107 :
- .
108 :
109 :
110 :
111 :
4-4
: V * ( V
)U
)G ( V , , P , S
( S ( L
+
) A u ( A V , u ( U V
112 :
1-4-4 -
) w (V U
S. w
* w
S w
G ) L(G
{* }w.
113 :
4 -4
S
A
AA
AAA \ bA\ Ab\ a
S AA
aA
aAAA
abAAA
abaAA
ababAA
ababaA
ababaa
114 :
S
S AA
AAAA
aAAA
abAAA
abaAA
ababAA
ababaA
ababaa
ababaa
AA
Aa
AAAa
AAbAa
AAbaa
AbAbaa
Ababaa
ababaa
AA
aA
aAAA
aAAa
abAAa
abAbAa
ababAa
ababaa
S aSb \ aSbb
S aSdd \A
A bAc \ bc
S aS aB
B bB b
115 :
S aSa \ aBa
B bB \ b
S abScB
B bB \b
5-4 -
-1
-2
-3
-4
116 :
6-4 -
-1 .
-2
-1 )LL (1
-2
117 :
6-4 -
( )
.
118 :
1-6-4
-1
-2
-3 AX1, X2,,Xn
-4 X1,X2,,Xn
119 :
`E
`E
`T
`TE
+TE` \
`FT
* FT` \
(E) \ id
E:
E
E`
T
T`
F
E`:
T:
120 :
13
17
`T
12
16
11
15
10
14
T`:
F:
id
121 :
S cAd
A ab \ a
cad
S
d
()
S
c
a
()
()
122 :
2-6-4
] A[A,a a
123 :
2-6-4
$
X
Y
Z
124 :
2-6-4
-1 X= a = $
-2 X= a $ X
-3 X ][A , a
125 :
E
TE`
E TM
E`
+TE`\ \
M +TM
T FN
FT`
N
T` * *FN
FT`\ \
F
F (E)
(E)\ \idid
id
E
E`
E TE`
T FT`
T`
F
126 :
F id
E TE`
E` +TE`
E`
E`
T`
T`
T FT`
T`
T` * FT`
F (E)
$E
Id + id * id$
$E`T
Id + id * id$
$E`T`F
Id + id * id$
$E`T`id
Id + id * id$
$E`T`
+id * id$
$E`
+id * id$
$E`T
+id * id$
$E`T
Id * id$
$E`T``F
Id * id$
$E`T`id
Id * id$
$E`T`
*id$
$E`T`F*
*id$
$E`T`F
Id$
$E`T`id
Id$
$E`T`
$E`
127 :
TE`
T FT`
F id
E
E +TE`
T`
FT`
F id
T`
* FT`
id
E`
T`
) first (a a.
a
Follow
A .
128 :
1-7-4 )Follow ( A
$ -1 ) Follow (S $
.
-2 A EBF ) First (F
) (B .
-3 A EB A EBF ) First (F (
) Follow(A ) Follow (B .
Follow
129 :
1-7-4 )First ( A
-1 X First (X) }{X
-2 X ) First (X .
-3 X X Y1Y2Yn a ,i
) First(Yi ) First ( Y1(First )Yn
a ) First (X .
130 :
First Follow
E
TE`
E TM
E`
+TE`\ \
M +TM
T FN
FT`
N
T` * *FN
FT`\ \
F
F (E)
(E)\ \idid
131 :
8-4
-1 A a 2 3 .
-2
) A E First (E ] M[A , a .
132 :
`TE
+TE` \
`FT
* FT` \
(E) \ id
`E TE
E
E`
T
T`
F
id
`E TE
133 :
9-4 )LL(1
-1 .
-2 A E \ F G a E
a .
-3 E F .
-4 E F ) Follow ( A .
134 :
LL (1)
E
E`
T
T`
F
TE`
+TE` \
FT`
* FT` \
(E) \ id
: LL (1)
135 :
)LL (1
2
3,4
1
2
3
4
5
i
1
S iEtSF
Sa
F eS
FS
Eb
S
F
E
) LL (1.
136 :
10-4
-1
-2 A a
137 :
1-10-4
) Follow (A
Follow
) First (A A
138 :
-1
-2 ( synch ) Follow
-3
139 :
`TE
+TE` \
`FT
* FT` \
(E) \ id
)id + * id
E
E`
T
T`
F
1
$
E`
T`
T`
`E TE
E
`E
`T FT
`E TE
E`
id
`E` +TE
`T FT
)F (E
`T` * FT
T`
F id
`T
F
140 :
id
E
E`
E TE`
T
T`
F
141 :
E TE`
T`
synch
synch
synch
E` E`
T FT`
synch synch
E` +TE`
T FT` synch
F id
T` T`
T` * FT`
synch F (E)
synch synch
3
$E
)Id *+ id$
$E
Id *+ id$
$E`T`
Id *+ id$
$E`T`F
Id *+ id$
$E`T`id
Id *+ id$
error , skip )
id is in First ( E)
$E`T`
*+ id$
$E`T`F*
*+ id$
$E`T`F
+ id$
$E`T`
+ id$
$E`
+ id$
$E`T+
+ id$
$E`T
id$
$E`T`F
Id$
$E`T`id
Id$
$E`T`
$E`
142 :
11-4
143 :
abbcde
aABe
Abc \ b
d
S
A
B
abbcde
aAbcde
aAde
aABe
abbcde
aAbcde
aABe aAde
144 :
1-11-4 -
145 :
abbcde
abbcde
aAbcde
aAde
aABe
aABe
Abc \ b
d
S
A
B
Ab
A Abc
Bd
146 :
(1) E E + E
(2) E E * E
) (3) E ( E
(4) E id
EE+E
E+E*E
E + E * id3
E + id2 * id3
id1 + id2 * id3
147 :
id1
id2
E + id2 * id3
id3
E + E * id3
E*E
E+E*E
148 :
1-1-11-4 -
-1 W W = Yn
n .
-2 Bn-1Yn-1
.Yn-2
-3
S
149 :
(1) E E + E
(2) E E * E
) (3) E ( E
(4) E id
E id
id1
E id
id2
E + id2 * id3
E id
id3
E + E * id3
EE*E
E*E
E+E*E
EE+E
E+E
E+E
E
150 :
2-11-4
-1
-2
151 :
12-4
-1
-2 1
-3
152 :
1-12-4
153 :
(1) E E + E
(2) E E * E
) (3) E ( E
(4) E id
EE+E
E+E*E
id1 + id2 * id3
E + E * id3
E + id2 * id3
id1 + id2 * id3
154 :
Shift
$id1
+ id2 * id3 $
Reduce by E id
$E
+ id2 * id3 $
Shift
id2 * id3 $
Shift
$E +
$E + id2
* id3 $
Reduce by E id
$E + E
* id3 $
Shift
id3 4
Shift
$E + E *
$E + E * id3
Reduce by E id
$E+E*E
Reduce by E E * E
$E+E
Reduce E E + E
$E
accept
155 :
13 -4
156 :
14-4 -
157 :
14-4
-1 .
-2
.
158 :
E EAE \ ( E ) \ - E \ id
\ A +\-\/
159 :
1-14-4
( )
160 :
2-14-4
3
<. b
a b.
a = b
a b .
a.> b
a b.
161 :
2-14-4
-1
*,+ <.
* .> +
-2
162 :
>.
>.
>.
>.
=
id
<.
>.
<.
>.
>.
<.
>.
>.
<.
>.
>.
<.
`TE
+TE` \
`FT
* FT` \
(E) \ id
E
E`
T
T`
F
+
*
(
)
Id
$
163 :
3-14-4
-1
-2 $
-3
-4 >.
164 :
3-14-4
-5 ( ) = <.
< -6 .5 >.
165 :
id + id * id
:1
> . id +
:2
< . =
166 :
:3
> . <. id E
:4
{ } id2 , id3
$ <. + < . * .> $
:5
+ * * $ E * E E
:6
+ $ E + E E
167 :
4-14-4
-1 A B A . > B B <. A .
-2 A B B <. A , A <. B :
B .> A , A .> B:
168 :
4-14-4
-3 A .
A
( <.
>) .
>A .
A .> $
$ <. A
A <. id
id .> A
( A <.
-4 :
<. id
)
>id .
) >.
<.
)=(
>id .
( $ <.
$ <. id
.> $
169 :
-
- 1 ( )
* -2 /
+ -3
170 :
-
$
>.
>.
>.
>.
>.
>.
>.
id
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
<.
>.
<.
>.
<.
<.
<.
>.
>.
>.
>.
<.
>.
<.
<.
<.
>.
>.
>.
>.
<.
>.
<.
>.
>.
>.
>.
>.
>.
<.
>.
<.
>.
>.
>.
>.
>.
>.
<.
>.
<.
>.
>.
>.
>.
>.
>.
= <. <.
>.
<. <.
+
*
/
Id
(
)
$
171 :
5-14-4 -
f g
f( a ) <. g ( b ) -1 <. b
f( a ) = g ( b ) -2 a = b
f( a ) .> g ( b ) -3 a .> b
172 :
id
) f ( * ) < g( id
* < . Id
) f ( id ) > g ( id
id .> id
173 :
)f (id
)g (id
)*( g
)*( f
)f (+
)g (+
)g ($
)f ($
Id
174 :
5-14-4 -
-1
-2
175 :
15 -4 LR
LR
-1
-2
-3
-4
176 :
1-15-4 -LR
-1
-2 LR
177 :
2-15-4 -LR
LR SLR
LR CLR
LR
LALR
178 :
3-15-4 - LR
an
ai
a1
a
.
.
.
S
goto
Action
$
179 :
4-15-4 LR
a
)(S
s0X1s1X2s2.Xmsm sm
.
180 :
5-15-4 LR
( goto )
action
]action [sm , ai
goto
action
a1 a2 ai
m
181 :
5-15-4 LR
]action [ sm ,ai
sn = shift
a n
rn=reduce
accept
error
182 :
6-15-4 LR
-1 w $
-2 s0
-3 ][s0 , $
-4
][ shift , reduce, accept , error
183 :
6-15-4 LR
-5 :
S0 X1 s1 X2 s2.Xm sm , ai ai+1 . an $
-6 a s :
Shift , reduce
-7 Shift s :
S0 X1 s1 X2 s2Xm sm ai s, ai+1an $
184 :
6-15-4 LR
-8 reduce A:
S0 X1 s1 X2 s2 Xm-r sm-r A s , ai ai+1 an $
-9 accept
-10 error
185 :
LR
1EE+T
2ET
3TT*F
4TF
5 F (E)
6 F id
action
id
0
s5
s4
s6
r2
s7
r2
r2
r4
r4
r4
r4
s4
r6
r6
r6
s5
s4
s5
s4
r6
10
s6
r1
s7
r1
r1
10
r3
r3
r3
r3
11
r5
r5
r5
r5
acc
s5
186 :
goto
s11
LR
id * id + id
(1) 0
id * id + id $
s5
(2) 0 id 5
*id + id $
r5
(3) 0 F 3
*id + id $
r3
(4) 0 T 2
*id + id $
s7
(5) 0 T 2 * 7
*id + id $
s5
(6) 0 T 2 * 7 id 5
+ id $
r5
(7) 0 T 2 * 7 F 10
+ id $
r2
(8) 0 T 2
+ id $
r1
(9) 0 E 1
+ id $
s6
id $
s5
(11) 0 E 1 + 6 id 5
r5
(12) 0 E 1 + 6 F 3
r3
(13) 0 E 1 + 6 T 9
r9
(14) 0 E 1
acc
(10) 0 E 1 + 6
187 :
7-15-4 LL LR
)LL(K
K
)LR(K
K
188 :
16-4 SLR
LR
A . XYZ
A XYZ
A X .YZ
A XY .Z
A XYZ.
189 :
16-4 SLR
S` S
.
190 :
1-16-4 -SLR
S AaAb
S BbBa
A
B
:1
S` S
S AaAb
S BbBa
A
B
S` . S
S .AaAb
S .BbBa
A.
B.
:2
191 :
1-16-4 -SLR
:3
S AaA .b
S BbB .a
S Aa .Ab
S Bb .Ba
A.
B.
S` S .
S A .aAb
S B .bBa
S AaAb .
S BbBa .
192 :
2-16-4 - SLR
) LR(0 ) LR(0
SLR
closure goto
193 :
2-16-4 - SLR
-1 I closure
closure
-2 B .K A M .BNclosure
B K
194 :
- SLR
} ]I ={ [E` .E
E` E
EE+T\T
TT*F\T
F (E) \ id
E` .E
E .E + T
E .T
T .T * F
= )Closure (I
T .F
)F .(E
F id
195 :
2-16-4 - SLR
A B1.B2 MB1 :
* M A W * M B1B2 W
S` .
196 :
- SLR
*E+T
E` E
EE+T\T
TT*F\T
F (E) \ id
I7
2
T T * .F
)I7: F .(E
F .id
197 :
2-16-4 - SLR
closure ] [A Q X K
] A [ Q . X K . I
) goto(I , X
R X
R . I
198 :
- SLR
} ]I ={ [E` E.] , [ E` E. + T
E` E
EE+T\T
TT*F\T
F (E) \ id
EE+.T
T .T * F
T .F
= )goto (I , +
)F .(E
F .id
199 :
-2 I C X :
-1 -2 ) goto ( I , X C :
goto ( I , X) -1-1-2 C .
200 :
- SLR
E` .E
E .E + T
I0:
I2:
I3:
T F.
T .F
F (.E)
F .(E)
E .E + T
F .id
E .T
I4:
I1:
E` E
EE+T\T
TT*F\T
F (E) \ id
T T. * F
E .T
T .T * F
E T.
I5:
T .T * F
E` E.
T .F
E E. + T
F .(E)
F .id
201 :
F id.
- SLR
E E + .T
I6: T .T * F
T .F
I8:
E` E
EE+T\T
TT*F\T
F (E) \ id
F (E.)
E E. + T
F .(E)
F .id
I9:
E E + T.
T T. * F
I11:
T T * .F
I7: F .(E)
I10: T T * F.
F .id
202 :
F (E).
- SLR
S` S
S L=R \ R
L * R \ id
RL
I0: S` .S
I3: S R.
I7: L *R.
I4: L *.R
I8: R L.
I5: L id.
I9: S L=R.
I1: S` S.
I2: R L.=R
I6: S L=.R
R L.
203 :
2-16-4 - SLR
-1 ` ( G `) S
} C = { I0 , I1 ,In
-2 i ( Ii )I2 action i :
action [i , a] = shift j - ][A Q .aK
Ii goto (Ii , a )=Ij
- action [i , a] = reduce A Q
a )` Follow (A =S ] [A Q. Ii
- action [i , $] =accept
] [S` S. Ii
204 :
2-16-4 - SLR
- 3 goto i A
: goto ( Ii , A ) =Ij goto ( I , A ) = j
4 error 2 3
- 5 ][S` .S
205 :
- SLR
E` E
EE+T\T
TT*F\T
F (E) \ id
E` .E
E .E + T
I0:
E .T
no action
T .T * F
T .F
F .(E)
action [ 0 , ( ] = shift 4
action [ 0 , id] = shift 5
F .id
I1:
E` E.
action [ 1, $ ] = accept
E E. + T
action [ 1 , + ] = shift 6
206 :
- SLR
3
} ) Follow (E) = { $ , +,
action [ 2 , * ] = shift 7
E T.
I2:
T T. * F
.
.
207 :
17-4 -CLR
]Q.K , a
[A
A QK a
). ($
Q a
208 :
17-4 -CLR
] [A Q.K , a y
-1 * &QKW
S &AW*:
y = &Q
a W W a $
209 :
B y b ):First (K
] [B .y , b I
1
210 :
17-4 -CLR
goto
J ] [A QX.K , a I
) closure ( J .
211 :
17-4 -CLR
)`item (G
} )} C= { closure ( { S` .S , $ :
I C :X
) goto ( I , X C :
) goto ( I , X C .
212 :
-CLR
S` S
S CC
C cC \d
S C.C , $
I2
S` .S , $
I0
S .CC , $
C .cC , $
C .d , $
I4
C d. , c \ d
C c.C , c \ d
I5
S CC. , $
C .cC , c \ d
C .d , c \ d
I3
I1
C .d , c \ d
S` S. , $
213 :
C .cC , c \ d
-CLR
C c.C , $
C cC. , $
I9
C .cC , $
I6
C .d , $
C d. , $
C cC. , c \ d
I7
I8
214 :
-CLR
goto
I1
I5
I2
I0
c
I9
I6
d
I7
c
d
c
I8
I3
d
I4
c
d
215 :
17-4 -CLR
-1 } C = { I0 , I1 , , In `G
-2 i I action :
a -
216 :
17-4 -CLR
action [ i , $]= accept - ] [S` S. , $ Ii
goto ( i , a) = j -3 goto ( Ii , A ) = Ij
-4 error 2 3
][S` .S , $
217 :
-CLR
goto
C
2
action
$
s4
s3
acc
0
1
s7
s6
s4
s3
r3
r3
r1
1 S` S
2 S CC
3 C cC \d
5
s7
s6
r3
6
7
r2
r2
r2
8
9
218 :
18-4 -LALR
-1 }C= { I0 , I1 , In
-2
-3 }C= { J0 , J1 , Jn
action
219 :
18-4 -LALR
action [ I , a ] = reduce A a - ][A Q. , a
Ii `A = S
action [ i , $]= accept - ] [S` S. , $ Ii
-4 goto :
J ( ) I0 I1Ik
(goto ( I1,X), goto (I2,X(,goto )Ik,X
.
220 :
18-4 -LALR
K ( ) I0 I1Ik
) goto(I1, Xgoto (J,X)=X
221 :
-LALR
1 S` S
2 S CC
3 C cC \d
I8 , I9
C cC. , c \ d \ $
I4 , I7
I3 , I6
C d. , c\ d \ $
C c.C , c \ d \ $
C .cC, c \ d \ $
C .d , c \ d \ $
222 :
-LALR
goto
C
action
$
s47
s36
acc
5
89
r3
s47
s47
s36
s36
36
r3
r3
47
r1
r2
r2
r2
89
223 :
LR LALR
LR
0c3c3d4
ccd$
goto
action
[ 4, $ ]= e
224 :
LR LALR
LALR
0 c 36 c 36 d 47
ccd$
goto
action
[47,$]= r3
Cd
0 c 36 c 36 C 89
[89,$]=r2
C cC.
0 c 36 C 89
.
0C2
225 :
18-4 -LALR
-1 I
-2 action
-3 goto
226 :
18-4 -LALR
-1 B y.V K :
J` := closure ({[B y.v , #]})-2
-3
] [A M.XN , a` J a = #
-4 a A MX.N )goto ( I , X
227 :
18-4 -LALR
- 5 ] [A M.XN , # ` J
B y.v I A MX.N ) goto ( I , X
.
228 :
-LALR 18-4
-1 LR )LR
-2
LR X
-3
-4
229 :
-LALR 18-4
-5 i
.
-6 2
i
-7 6-4
230 :
-LALR
: 1 LR
I3: S R.
L *R.
I7:
R L.
I8:
S L=R.
I9:
S` S
S L=R \ R
L * R \ id
RL
I4: L *.R
I0: S` .S
I5: L id.
I6: S L=.R
I1: S` S.
I2: R L.=R
R L.
231 :
-LALR
: 2
S .S , #
S .L=R , #
S .R , #
= \ L .*R , #
= \ L .id , #
R .L , #
)}]Closure ( {[S` .S , #
232 :
-LALR
: 3
S` S.
I1:
R L.=R
I2:
S` .S
I0:
R L.
S R.
I3:
L *.R
I4:
L id.
I5:
I6: S L=.R
R L.=R
I2:
233 :
-LALR
L *.R
I4:
L id.
I5:
L *R.
I7:
R L.
I8:
L *.R
I4:
L id.
I5:
R L.
I8:
L *.R
I4:
I6: S L=.R
I9: S L=R.
234 :
-LALR
: 4
PASS3
PASS2
PASS1
INIT
I0: S` .S
I1: S` S.
I2: R
$
$
$
$
$
$
I2:
=$
=$
=$
=$
=$
=$
=$
=$
=$
=$
L.=R
R L.
S R.
L *.R
L id.
S L=.R
L *R.
R L.
S L=R.
=
=
I3:
I4:
I5:
I6:
I7:
I8:
I9:
235 :
-LALR 18-4
action
action
action
236 :
-LALR
1EE+T
2ET
3TT*F
4TF
5 F (E)
6 F id
action
id
0
s5
s4
s6
r2
s7
r2
r2
r4
r4
r4
r4
s4
r6
r6
r6
s5
s4
s5
s4
r6
10
s6
r1
s7
r1
r1
10
r3
r3
r3
r3
11
r5
r5
r5
r5
acc
s5
237 :
goto
s11
-LALR
2
action
0,4,6,7
s5
Id
s4
error
any
s6
acc
error
any
238 :
-LALR
3
s7
r2
any
r4
any
action
5,10,11
239 :
-LALR
4
s6
s11
error
any
s7
r1
any
240 :
19-4 LR
action
241 :
20-4 LR
panic mode
-1 s goto A
-2 A
-3 ] goto [s , A
242 :
20-4 LR
Phrase level
-1
-2
-3
243 :
21-4 Yacc -
Yacc
-1
Yacc
y.tab.c
-2
C
-3
LR
a.out
( )
-4 :
Yacc
a.out
translate.y:
y.tab.c
244 :
- Yacc 1-21-4
Yacc
c
%%
Yacc
%%
245 :
- Yacc 1-21-4
c }%
{ , %
246 :
- Yacc 2-21-4
%%
} > {1 : <1
> <
} > {2 : <2
} > { 3 : <3
.
.
.
247 :