6. gyakorlat
The only and wonderful while by ELTE
while nyelv
- ELTE szabadalmaztatott
- programok
programkulcsszóval kezdődnek read,writewhiledodoneifthenendifbeginend:=,=
Példa
Fordítás: make
A mai példa "tokenizálja" a kódot. Tehát felosztja tokenekre. pl
./while test.txt, ahol
text.txt:
A szintaktika egyértelműen nem helyes, de az itt még nem lényeges.
.: regex-ben ez illeszkedik bármilyen karakterre, kivéve a \n-re.
feladat 2
Helyezze át az azonosítók felismerésére szolgáló reguláris kifejezést az összes többi reguláris kifejezés elé! Hogyan változik meg az elemző működése? Miért?
Vonja vissza a módosítást!
A szavakat legelőször azonosítóként próbálja értelmezni, így a kulcsszavak is azonosítóként lesznek értelmezve
BTW
A regex a leghosszabb match-et használja, ezért nem lett az ifthenelsewhiledone-ből if.
feladat 3
Adja hozzá a .+ reguláris kifejezést az elemzőhöz valamilyen üzenet kiírásával együtt! Hogyan változik meg az elemző működése? Miért?
Vonja vissza a módosítást!
Ha az összes többi szabály után rakjuk, akkor minden sornál kiírja a megadott stringet, kivéve azoknál, amelyeknél maga a sor megegyezik egy már létező keyword-del.
A legtöbb dologra ez fog reagálni, mert van benne valami
feladat 4
Változtassa meg az azonosítók definícióját úgy, hogy csak nagybetűvel kezdődhessenek, több nagybetű ne szerepelhessen, és számokat ne követhessen betű! Készítsen tesztfájlt a megoldás ellenőrzéséhez!
Mentse el más néven, és térjen vissza az eredeti változathoz!
[A-Z][a-z]*[0-9]*
feladat 6
Adjon hozzá az elemzőhöz egy reguláris kifejezést, amely pontosan két tizedesjegyet és tetszőleges (de legalább egy) egész jegyet tartalmazó törtszámok felismerésére alkalmas!
Fontos-e, hogy ez a reguláris kifejezés hol helyezkedik el az egész számliterálok reguláris kifejezéséhez képest? Miért?
vagy
Multiline comments
"/*"([^*]|"*"+[^/*])*"*"+"/"