java warnings és egy error: no viable alternative at input '<EOF>'

+2 votes
asked Mar 17, 2018 in Rendszermodellezés A00 by error_getter (26 points)  
edited Mar 17, 2018 by error_getter

Kaptam 5db warningot. App.launch esetén se a gombok se a kijelzők nem működnek.

Az error esetén lövésem sincs mi a gond, ha nyomok rá egy "go to"-t, akkor ugrik bele az Adjourned törzsébe.

A jobb oldalon kijelzett hiba lista esetén pedig az eddigi kérdéseket átböngészve arra jutottam, hogy lehet hamarabb csekkol bizonyos állapotokat a test, mint ahogy azok valójában érvénybe lépnek, például "White initial time" kiírás tesztelése. Viszont már mindenhova beírtam, hogy Display.text = "White initial time". Ez alatt azt értem, hogy állapotátmenetekre is meg magukba az állapotokba is (ahol szükséges), de még így se jó.

Ha csak simán szimulációs üzemmódban vagyok, akkor minden szuperül működik.

Előre is köszönöm a segítséget!

kép a hibákról egyben

enter image description here

commented Mar 17, 2018 by dkmisu (1,327 points)  
A hiba két tevékenységből tevődik össze. Egyrészt van egy error, amit a yakindu ad (no viable alternative at input EOF). Másrészt, mivel hiba van az állapotgépben, így nem tud ebből a yakindu kódot generálni. Emiatt az utolsó olyan állapotot futtatják a tesztek, és az app, amiben még nem volt hiba. Ezért nem változik a kimeneted, bármit is csinálsz.

A yakindu belül egy antlr4 nevű eszközt használ az élátmenetek, stb... felismeréséhez, parse-olásához. A hibát ez az eszköz dobja, mégpedig azért, mert valahol meg lett sértve az egyik nyelvtani szabálya. Legtipikusabban ez akkor következhet be, ha véletlenül az egyik élátmeneted végére is raktál pontosvesszőt, nem csak az egyes akciók közé. Meg tudod nézni, van nálad ilyen?
commented Mar 17, 2018 by error_getter (26 points)  
Ezzel pontosvessző problémával már a házi készítés elején találkoztam, így sajnos tudom, hogy olyankor is ezt írja, viszont most nem ez a helyzet sajnos.

edit1.: mégis pontosvessző probléma volt, csak teljesen máshol mint ahova a go to vitt. :)
commented Mar 17, 2018 by error_getter (26 points)  
A java probléma ellenben továbbra is fennáll.

Az első postom aljára beteszek róla egy képet, amin látható, hogy mi történik Test.launch és App.launche futtatása esetén.
commented Mar 18, 2018 by dkmisu (1,327 points)  
http://q2a.inf.mit.bme.hu/3654/hf-test-nem-fordul-le?show=3657#a3657

Sajnos el lett rontva a kezdőprojekt generálása. Újra le kéne tölteni, majd átmásolni bele az sct fájlt.
commented Mar 18, 2018 by error_getter (26 points)  
Láttam a kérdést és már próbálkoztam vele, de akkor nem hozott sok sikert. Most, hogy a másik hibát is megoldottam, (pontosvesszőset) így újra próbálkoztam a letöltéssel, ami után remekül fut az App launch és a Test.lanunch is, bár a testnél van 2-3 beep hiba és az utolsó tesztesetnél két másodpert eltérés, de ezeken majd még rágom magam, amikor lesz rá időm.

VISZONT, azt a 16 warningsot ugyan úgy mutatja, hiába fut mostmár az App és a Test is.
Baj vagy nem baj? :)

(Csak simán átmásoltam windows fájlkezelőben az sct fájlt az újonnan letöltött projektbe.)
commented Mar 18, 2018 by dkmisu (1,327 points)  
A warning-ok miatt ne aggódj. Ha végigböngészed őket, azt láthatod, hogy mindegyik azért szól, hogy van egy függvény, ami nincs használva. A yakindu alapérletmezetten minden állapotra, átmenetre többféle függvényt generál (belép, kilép, végrehajt, ...). Meg sem kísérlek egy teljes listát adni :) Azt, hogy egy függvény nincs használva, annyit jelent, hogy nincs olyan teszteset, ami meghívná. Néhány helyen ez szándékos is lehet. Például ha van egy hiba állapot, amit soha nem hagy el egy rendszer, akkor annak az "elhagy" függvénye sosem hívódik meg (viszont le lesz generálva, mert így lehet minden állapotnak azonos őse). Néhány helyen pedig egyszerűen a kiadott tesztesetek között nem szerepel olyan, ami meghívná :)
commented Mar 18, 2018 by error_getter (26 points)  
Köszönöm a segítséget!

Kár ilyen apró dolgon elment egy csomó időm, de így legalább mások nem esnek bele ezekbe a hibákba, remélhetőleg.

1 Answer

+2 votes
answered Mar 18, 2018 by dkmisu (1,327 points)  

A hiba két tevékenységből tevődik össze. Egyrészt van egy error, amit a yakindu ad (no viable alternative at input EOF). Másrészt, mivel hiba van az állapotgépben, így nem tud ebből a yakindu kódot generálni. Emiatt az utolsó olyan állapotot futtatják a tesztek, és az app, amiben még nem volt hiba. Ezért nem változik a kimeneted, bármit is csinálsz.

A yakindu belül egy antlr4 nevű eszközt használ az élátmenetek, stb... felismeréséhez, parse-olásához. A hibát ez az eszköz dobja, mégpedig azért, mert valahol meg lett sértve az egyik nyelvtani szabálya. Legtipikusabban ez akkor következhet be, ha véletlenül az egyik élátmeneted végére is raktál pontosvesszőt, nem csak az egyes akciók közé. Meg tudod nézni, van nálad ilyen?

...