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