Obsah Dal¹í Pøedchozí

10.2.1 Definice gramatiky komunikaèního jazyka

Vyhledávací i sí»ový server pou¾ívají, k vytvoøení automatu na rozpoznávání jazyka, gramatiky ulo¾ené v konfiguraèních souborech. Zde je vysvìtlena syntaxe na¹í gramatiky.

Zápis pravidla gramatiky pak vypadá takto:

#n1->term#n2 [no]

#no
neterminál a zároveò stav automatu.
term
terminál je dané slovo.
@
terminál je znak uvedený za @.
$
pøi pøechodu z levého stavu do pravého naète øetìzec a¾ po znak uvedený za $. Je-li za $ mezera naèítá po prázdné znaky nebo dvojteèku. Za $ mù¾e být po zpìtném lomítku èíslo. Toto èíslo znamená znak této hodnoty. Je-li po zpìtném lomítku 255 znamená to, ¾e se má naèítat a¾ po konec vstupu.
%
naète celé èíslo.
.
naète desetinné èíslo.
#0
znamená poèáteèní stav.
#-1
koncový stav.

Èíslo uvedené v hranaté závorce znamená akci, která se má provést pøi daném pravidle. Není-li v pravidle uveden term znamená to, ¾e by mìl být konec vstupu. Pro pravidla gramatiky v konfiguraèním souboru platí následující omezení. Na ka¾dém øádku mù¾e být pouze jedno pravidlo. Levé strany pravidel by mìly rùst po jedné. Ka¾dý pøíkaz jazyka má pøiøazené èíslo. U pravidla, ve kterém je na pravé stranì neterminál #-1 musí být uvedeno, jako akce, èíslo pøíkazu.

Dùle¾ité je také poøadí pravidel se stejnou levou stranou. Kdy¾ je na pravé stranì #-1, musí být jako první. Dále pak mohou následovat pravidla s termem. Za nimi pravidla typu #n1->@#n2. A¾ nakonec mohou být pravidla s naèítáním øetìzce a èísel.


1999-03-04 Pavel Krtièka