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