Java Reference
In-Depth Information
procedure C
ompute
L
ookahead
()
call B
uild
I
tem
P
rop
G
raph
()
call E
val
I
tem
P
rop
G
raph
()
end
procedure B
uild
I
tem
P
rop
G
raph
()
foreach s States do
foreach item state do
v Graph . AddVertex(( s , item ))
ItemFollow ( v )
24
←∅
foreach p
P
roductions
F
or
(Start ) do
ItemFollow (( StartState ,
Start
→•
RHS( p )))
←{
$
}
25
foreach s States do
foreach A
γ∈ s do
v Graph . FindVertex(( s ,A→α•Bγ))
→α•
B
26
call Graph . AddEdge( v ,( Table [ s ][ B ],A→αB•γ))
foreach ( w
27
( s ,
B
→•δ
))
Graph . Vertices do
ItemFollow ( w )
ItemFollow ( w )
First(
γ
)
28
if A
)
then call Graph . AddEdge( v , w )
ll
D
erive
E
mpty
(
γ
29
end
procedure E
val
I
tem
P
rop
G
raph
()
repeat
changed
30
false
foreach ( v , w )
Graph . Edges do
old ItemFollow ( w )
ItemFollow ( w )
ItemFollow ( w )
ItemFollow ( v )
if ItemFollow ( w )
old
then changed
true
until not changed
end
Figure 6.28: LALR(1) version of C
ompute
L
ookahead
.
 
Search WWH ::




Custom Search