Megint Bison

SZIGETI Szabolcs szigi at ik.bme.hu
Thu Jun 19 08:49:54 CEST 2003


Hali!

Nem kell az 'end'-nek kotzelezonek lennie, bevezethetsz egy olyan tokent,
ami logikailag end, valosagban meg akkor kuldi a lexikai elemzo, ha
end-of-file van.

A nyelvtant meg valahogy ugy deklaralod, hogy:

teljesprogram: programsorok end
stb.

Sot, ha ezt bevezetted, akkor kuldheti akkor is, ha vege, meg akkor is, ha
"end"-et irsz, igy aztan az opcionalis end nagyon professzionalisan fog
kinezni :-)

Egyebkent figyelmedbe ajanlom az "error" tokent, ami a hiba kezelesre valo,
azt barmelyik szabalyba beillesztheted, es akkor generalja a bison, ha hibat
eszlel. Ekkor egeszen az error-ig feldolgozza az inputot, es onnatol tudja
folytatni. Egyszeru pelda:

programsor: .....
                | error ';'

Ez azt jelenti, hogy ha nyelvatni hibat eszlel, akkor egeszen a kovetkezo
pontosvesszoig eloremegy, es onnan kezdni folytatni a feldolozast.

Szabolcs



> Azt hogyan lehet megoldani, hogy felbemaradt deklaraciok miatt is
visitson?
> pl. ha a VAR '=' exp deklaralva van, de a program azzal fejezodik be,
> hogy
>
> akarmi =
>
> es vege, akkor nincs error. Persze, eloirhatom, hogy egy program vegi
'end'
> kotelezo legyen, amit ellenorzok is, de ez olyan snassz... masreszt nem
> tuzdelhetek tele minden deklaraciot onellenorzesekkel, hogy minden tagja
> megvan-e.
> Nincs generalis megoldas erre?



More information about the Elektro mailing list