=== Xtext gyakorlati feladatok === Az alábbi feladatokhoz az [[https://github.com/djnemeth/sm|Xtext példaszoftverből]] kell kiindulni. Az egyes részfeladatok megoldása után finomítsa a mellékelt példákat az újonnan bevezetett nyelvi elemek felhasználásával. * Bővítse ki a nyelvet úgy, hogy az állapotgépekhez lehessen konstruktorokat definiálni, továbbá a mezőkhöz megadhassunk inicializáló kifejezést. Készítsen validációt és gyorsjavítást ahhoz a hibához, mikor a konstruktor neve eltér a befoglaló állapotgép nevétől. Gondoskodjon a címkézés és a szerkezeti nézet kiegészítéséről is. * Adja hozzá a nyelvhez a kizáró diszjunkció (diszjunkciónál erősebb, konjunkciónál gyengébb, bal-asszociatív), illetve a hatványozás (a szorzásnál erősebb, az unáris műveleteknél gyengébb, jobb-asszociatív) operátorát. Jelezze a típushibákat. * Vezessen be állapotgépek közötti binér kapcsolatok kezelésére szolgáló nyelvi elemeket. * Lehessen asszociációkat definiálni az állapogépekkel egy szinten, a kapcsolat nevének, valamint végpontjai navigálhatóságának, állapotgép-típusának és nevének megadásával. Egészítse ki a címkézést és a szerkezeti nézetet. * Legyen lehetőség összekapcsolni példányokat egy olyan utasítással, amely két objektum-végpont párt vár. Ellenőrizze, hogy az összekapcsolás helyes. * Egy ''.'' operátorhoz hasonló kifejezéssel tegye lekérdezhetővé egy objektumhoz adott végpont mentén kapcsolt objektumok gyűjteményét. Jelezze, ha a kiinduló objektumon keresztül a lekérdezett végpont nem érhető el, vagyis ha az nem illeszkedik vagy nem navigálható. Készítsen gyorsjavítást arra az esetre, mikor csak a navigálhatóságon kellene módosítani. Egészítse ki az implementációt úgy, hogy a szerkesztőben jól láthatóvá váljanak az adott helyen lekérdezhető végpontok.