Nem igazán vagyok tisztában a Bison lelki világával, egy kis helyrezökkentés kellene.
Nem, ez nem házi feladat, az én koromban már nincs efféle, csak hobbyból ismerkedek a dologgal.
Amit nem értek: ha a *.y file-ban egy vezérlési strukturát így deklarálok:
WHILE '(' expr ')' stmt ENDWHILE { //ide írom c-ben a vezérlési szerkezet kezelést: WHILE-t stackelni }
akkor rákényszerít ugyan az ENDWHILE használatára, de hogyan tudok az ENDWHILE-hoz c kódot rendelni, hogy ellenőrizzem, a vezérlési szerkezetben nincs-e átlapolás?
- 4692 megtekintés
Hozzászólások
Ehhez miert kene neked vezerlesi szerkezetet irnod? Ezt megoldja maga a nyelv amit irsz.
Gondolom un. zarojelezesi problemad van, tehat azt szeretned, hogy ha van ket egymasbaagyazott ciklusod, akkor a belso ciklus keuljon lezarasra eloszor, utana a kulso.
De hisz ezt pont hogy megoldjak a kontextusfuggo nyelvek, amiknek a feldolgozasaval a bison foglalkozik, ezt nem kell kezzel ellenorizni, maguktol tudjak ezt.
- A hozzászóláshoz be kell jelentkezni
+1
Egyébként ha hobbi és ismerős vagy a C++ nyelvvel, meglesheted a Boost::Spirit-et is. Most tanulom, egyelőre tetszik, bár a tutorial lehetne kicsit jobb is.
- A hozzászóláshoz be kell jelentkezni
A c++ nem igazán ismerős, de köszönöm!
- A hozzászóláshoz be kell jelentkezni
Ezt úgy értsem, hogy ha két ciklus átlapolódna, arra maga a Bison ad hibaüzenetet, nem is kell ellenőriznem?
- A hozzászóláshoz be kell jelentkezni