Naloga: SINTAKSNI ANALIZATOR (2.)
Sestavite sintaksni analizator za aritmetične izraze, ki so sestavljeni iz
- celoštevilčnih konstant (neprazno zaporedje števk),
- imen (neprazno zaporedje črk, števk in podčrtajev, ki se ne začne s številko),
- štirih osnovnih aritmetičnih operatorjev (+, -, *, /) in
- oklepajev,
med katerimi je lahko belo besedilo (presledki in znaki za konec vrstice).
Sintaksni analizator napišite na osnovi algoritma LR(1), implementiran pa naj bo na osnovi LR(1) tabele. Če je na vhodu pravilno tvorjen aritmetični izraz, naj program izpiše zaporedje produkcij, ki nastopajo v skrajno desni izpeljavi v obratnem vrstnem redu, ob morebitni napaki pa mora izpisati obvestilo o napaki in končati z izvajanjem. Programski jezik lahko izberete sami, a če bo to Java, boste morda imeli malo manj dela pri eni od naslednjih domačih nalog. Naslednji teden na vajah boste morali sami demonstrirati delovanje vašega leksikalnega analizatorja.
Celotno izvorno kodo (skupaj z leksikalnim analizatorjem) oddate v zip datoteki z imenom XXXXXXXX-syn.zip, pri čemer je XXXXXXXX vaša vpisna številka.