First
(
X
)
pro
JPJ
: Příklad
First
(
begin
)
:= {
begin
}
First
(
end
)
:= {
end
}
First
(
read
)
:= {
read
}
First
(
write
)
:= {
write
}
First
(
,
)
:= {
,
}
First
(
(
)
:= {
(
}
First
(
)
)
:= {
)
}
First
(
;
)
:= {
;
}
<st-list>
®
end
Î
P
:
přidej
First
(
end
)
d
o
First
(
<st-list>
)
<st-list>
®
<stat>
…
Î
P
:
přidej
First
(
<stat>
)
d
o
First
(
<st-list>
)
Celkově:
First
(
<st-list>
)
= {
id
,
write
,
read
,
end
}
<prog>
®
begin
…
Î
P
:
přidej
First
(
begin
)
d
o
First
(
<prog>
)
Celkově:
First
(
<prog>
)
= {
begin
}
First
(
id
)
:= {
id
}
First
(
int
)
:= {
int
}
First
(
:=
)
:= {
:=
}
First
(
add
)
:= {
add
}
<item>
®
id
Î
P
:
přidej
First
(
id
)
d
o
First
(
<item>
)
<item>
®
int
Î
P
:
přidej
First
(
int
)
d
o
First
(
<item>
)
Celkově:
First
(
<item>
)
= {
id
,
int
}
<it-list>
®
)
Î
P
:
přidej
First
(
)
)
d
o
First
(
<it-list>
)
<it-list>
®
,
…
Î
P
:
přidej
First
(
,
)
d
o
First
(
<it-list>
)
Celkově:
First
(
<it-list>
)
= {
)
,
,
}
<stat>
®
id
…
Î
P
:
přidej
First
(
id
)
d
o
First
(
<stat>
)
<stat>
®
write
…
Î
P
:
přidej
First
(
write
)
do
First
(
<stat>
)
<stat>
®
read
…
Î
P
:
přidej
First
(
read
)
d
o
First
(
<stat>
)
Celkově:
First
(
<stat>
)
= {
id
,
write
,
read
}
8/57