Naloga: SINTAKSNI ANALIZATOR (1.)
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 LL(1), implementiran pa naj bo z metodo rekurzivnega spuščanja. Če je na vhodu pravilno tvorjen aritmetični izraz, naj program izpiše zaporedje produkcij, ki nastopajo v skrajno levi izpeljavi, 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.