W
ykªad
3.
Analiza
leksyk
alna
i
generatory analizatoró w
leksyk
aln
y
h
1.
(3p.)
Dla
nastpuj¡ ego
fragmen
tu
pliku
ini:
[info℄
drivername=ContentIndex symbolfile=perf i.h
[languages℄
009=English 015=Polish
[obje ts℄
CIOBJECT_009_NAME=Indexing Servi e
CIOBJECT_015_NAME=Usªuga indeksowania p
o
da
j:
• jak by± go podzieliª na leksemy,
• jakie »etony by± wyodrbniª
• jakie atrybuty bd¡ towarzyszy¢ leksemom.
eton
y
mog¡
b
y¢
ró»nie
nazw
ane,
ale
generalnie p
o
winn
y
p
o
ja
wi¢
si
ztery
»eton
y
i
nastpuj¡ y
p
o
dziaª
na
leksem
y:
Leksem
eton
A
trybut
[info℄
sek
ja
info
driv
ername
iden
t
yk
ator
driv
ername
=
ró
wno±¢
Con
ten
tIndex
w
arto±¢
Con
ten
tIndex
sym
b
olle
iden
t
yk
ator
sym
b
olle
=
ró
wno±¢
p
erf i.h
w
arto±¢
p
erf i.h
[languages℄
sek
ja
languages
009
iden
t
yk
ator
009
=
ró
wno±¢
English
w
arto±¢
English
015
iden
t
yk
ator
015
=
ró
wno±¢
P
olish
w
arto±¢
P
olish
[ob
je ts℄
sek
ja
ob
je ts
CIOBJECT_009_NAME
iden
t
yk
ator
CIOBJECT_009_NAME
=
ró
wno±¢
Indexing Servi e
w
arto±¢
Indexing Servi e
CIOBJECT_015_NAME
iden
t
yk
ator
CIOBJECT_015_NAME
=
ró
wno±¢
Usªuga
indekso
w
ania
w
arto±¢
Usªuga
indekso
w
ania
2.
(7p.)
Napisz
sp
e yk
a j
sk
anera,
który
zamienia pierwsz¡
liter
w
k
a»dym
zdaniu
na
wielk
¡,
a
p
ozostaªe na
maªe.
Zdanie,
to
do
w
oln
y
i¡
g
znak
ó
w
zak
o« zon
y
kropk
¡.
Inne
znaki
ni»
litery
p
o
winn
y
b
y¢
wypisyw
ane
b
ez
zmian.
Rozwi¡zanie mo»e
wygl¡da¢
np.
tak:
4
#in lude
<stdio.h>
#in lude
< type.h>
int
i;
%}
senten e
[a-zA-Z℄[^.℄*"."
%%
{senten e}
{
yytext[0℄
=
toupper
(yytext[0℄); for
(i=1;
i<yyleng; i++)
yytext[i℄=tolower(yytext [i℄) ; printf(yytext);
}
%%
int
main()
{
yylex(); return
0;
}
W
sta
wk
a
w
k
o
dzie
zamienia j¡ a
litery
o
dp
o
wiednio
na
wielkie
i
maªe
mo»e
wygl¡da¢
rozmai ie.
5