«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2005

Re: Specifikacija sintakse

by Andrija Kovacevic
sreda, 05. januar 2005 - 13:43.

Citiranje Dragan Bojic <bojic@etf.bg.ac.yu>:

> Treba striktno postovati EBNF gramatiku iz pdf specifikacije. U postavci
> domaceg pise da prilozena gramatika potencijalno ima gresaka.
> Ako neke stvari EBNF gramatika dopusta, a vama se cini da nemaju smisla,
> parser svejedno treba napraviti u skladu sa EBNF a prepustiti
> semantickoj analizi (koja ce biti predmet 3. domaceg) da to detektuje.

Šta ako gramatika ne može striktno da se poštuje?
U domaćem broj 1 je rečeno da kao tokeni treba da budu prepoznati i
predefinisani tipovi int i char, i lekser za njih vraća odgovarajuće konstante
(PN_INT, PN_CHAR).

Međutim, u gramatici stoji da je Type ::= IDENT. Ovako postavljen sintaksni
analizator naravno puca kad naiđe na int ili char jer je dobio token sa kojim
ne zna šta da radi.
Da li smem da izmenim gramatiku tako da bude Type ::= IDENT | PN_INT | PN_CHAR?
Ako ne smem, kako onda rešiti ovu situaciju (bez promene leksera)?