Lexikalni scanery

bravenec na optimit.cz bravenec na optimit.cz
Úterý Listopad 3 12:33:21 CET 1998


> tyto utils potrebovat? V helpu od RH se pise ze mnoho programu pouziva
> tyto utility behem kompilace...

Parkrat jsem videl pouzivat program flex na zpracovani souboru
s parametry, ale nereknu, kde to bylo. Povetsinou u programu,
ktere se snazim prenest na Solaris - abych to musel rucne opravovat :-(
Dival jsem se, na disku to zabere asi pul MB, myslim, ze nema smysl
zrovna tyto programy nenainstalovat, pokud neni misto na disku
velmi kriticke.

----------------
Poznamky navic:
nepovinne cteni :-)
Kdysi jsem se snazil cosi s touto dvojici delat (flex, bison).
Zde uvedu VSE, na co si pamatuji:

flex - podle zadanych pravidel prohleda text a provede tokenizaci, tj.
rozdeleni textu do dale uz nedelitelnych soucasti.
Mejme napr. program v "nejakem" jazyce:

For (i=1; xyz<10; I++) { print i; }

flex ma za ukol projit a prevest text do podoby srozumitelne pro
dalsi kus programu (obcas je tento kus generovan bisonem), treba 
takto:

FOR
(
I
=
1
;
XYZ
<
10
;
{
PRINT
I
;
}
....
a tak dal.

Na dalsim programu pak je, co s tim udela. 

-----------------
Program bison (byacc, yacc?) je prekladac gramatiky. Ujme se vystupu,
ktery produkuje flex a definuje, jak vypadaji prikazy (naseho "nejakeho"
jazyka), z ceho se prikazy skladaji (z dalsich prikazu, vyrazu apod.) a co
se ma provadet:

PRIKAZ_FOR:  for ( VYRAZ ; PODMINKA ; VYRAZ ) PRIKAZ
             # tady je potom napsane, co se ma delat
             # obvykle pochopitelne dalsi odkaz na zpracovani PRIKAZu

VYRAZ:       PROMENNA = hodnota ;
             # co se ma delat v takovem pripade

VYRAZ:       PROMENNA = PROMENNA ;
             # co se ma delat s timto

a tak dal. Moc si toho nepamatuju, je to par let. Na clanek do
LN bych to nevidel :-(

Petr Bravenec


Další informace o konferenci Linux