Hm, není mi jasné, proč si autor zavádí vlastní stavovou proměnnou, lexer se
dá triviálně napsat i bez ní (resp. stavovou proměnnou je program counter),
několikrát jsem to tak dělal. A tohle nevypadá jako něco, co by se za dvě
hodiny nedalo napsat ručně.

LT

2011/4/12 Tomas Studva <[email protected]>

> Tak, tak. Urcite aby ma povodny programator co najviac potrapil :). Je to
> tak ako pisete, for(;;) je while(true) a break vyskoci iba zo switchu. break
> look, skoci na navestie. Som zvedavy ake perly ma este cakaju. Inak v
> dnesnej dobe pisat parser ak sa jedna o nieco zlozitejsie je vhodne pomocou
> lexem a gramatiky definovanej v nejakom jazyku.
>
> 2011/4/11 Robert Novotny <[email protected]>
>
>> Break z loopu sa da pouzit na vyskocenie z vnorenych cyklov cez viacero
>> urovni. Nie je to nahodou preto, ze klasicky break by vyskocil zo switchu,
>> ale nie z loopu?
>>
>> Otazka je, preco je tam break z poslednej vetvy switchu, ked za nou uz
>> nejde nic?
>>
>> A preco je tam c-ckarsky for(;;) namiesto while(true)?
>>
>> Je pozoruhodne, ze
>>
>> On 11. 4. 2011 16:57, Tomas Studva wrote:
>>
>> Dobry den,
>> vedeli by ste si precitat nasledovny program. Nie je to priklad zo skoly
>> ale z praxe. Implementacia stavoveho automatu, kod je stary 10 rokov a
>> samozrejme ze to je len nezmyselny uryvok.
>>
>> state = -1;
>> loop: *for* (;;) {
>>
>> state = state + 1;
>>
>> *switch* (state) {
>> *case* 0: state = 1; break;
>>
>> case 1: state = 0 *break*;
>>
>> case 2: break loop;
>>
>> }
>>
>> }
>>
>> Pre mna to je nieco velmi vynimocne, lebo je tam navestie a tiez ten for.
>>
>> S pozdravom Tomas
>>
>>
>>
>

Odpovedet emailem