DU3

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: DU3

Re: DU3

od hurda » 27. 11. 2011 13:59

Taky s tím ještě bojuji, nezapsal jsme si všechno co říkal, myslel, jsem že na to hned vletím a ouha po třech týdnech si nic nepamatuji.

IF THEM ELSE mám snad vyřešené, ale asi mám problém s Identifikátorem - jak jste to řešili - popřípadě, jak jset tu svou gramatiku debugovali?

Re: DU3

od silver beam » 26. 11. 2010 04:06

ondr4> Poznamky prave nemam, trochu jsem propasnul vsechny cviceni kde se tahle uloha zadavala. Na tu studnici jsem se uz koukal, no moc moudry z toho nejsem. Napriklad mi to silne protestuje na tech typech - typ, ordinalni typ a strukturovany typ se daji prepsat na identifikator. Jelikoz bison stavi strom zezdola, tak pri nalezeni identifikatoru ma tri moznosti na vyber a je v kyblu. Ale jak z toho ven??

Re: DU3

od tomm » 25. 11. 2010 09:31

mifeet: Jde o to, že existuje i prázdný příkaz ;)

Re: DU3

od mifeet » 24. 11. 2010 23:43

Nezdá se vám, že testy pro DU3 neodpovídají gramatice popsané diagramy?
Podle diagramů by poslední příkaz před END neměl být ukončený středníkem. Ale v testech ukončené středníkem jsou. Stejně tak podle diagramů nesmí být prázdný BEGIN END blok, ale v du3-test2-4.mls je.

Jinak warningů mám taky 9+3 (VS2010).

Re: DU3

od tomm » 24. 11. 2010 12:59

Já měl po první kompilaci 18 reduce-reduce a jen 1 shift-reduce (klasický dangling else). Doporučuju poznámky ze studnice, taky jsem dlouho nevěděl, co s těmi r-r konflikty, přitom je to skoro triviální... Jen pro kontrolu - kolik vám to tentokrát hází warningů? Můj počet se zastavil na 12 (9 bison, 3 flex), používám VS2008...

Re: DU3

od ondr4 » 23. 11. 2010 00:00

to blablaa: Moc dekuju za informaci!! Uz jsem si skoro myslel, ze se uchylim k nasili a VS2010 znicim :evil:

to silver beam: Jo, pri prvnim pokusu mi Bison neco takoveho taky vratil :) Muj postup je nasledujici...nejdriv jsem upravil neprijemna mista zminovana na prednaste a cviku (jako kolize mezi IF...THEN a IF...THEN...ELSE; prepisovaci pravila "skutocne parametre" a "faktor"...pokud nemas poznamky koukni do Studnice Vedomosti, neco tam je). Tim jsem se zbavil vetsiny konfliktu. Se zbytkem (asi 2 shift-reduce) jsem se popasoval tak, ze jsem si prochazel sva prepisovaci pravidla a hledal mozne derivace. Kdyz jsem narazil na vic jak jednu moznost, jak dosahnout stejneho terminalu (respektive pravidla) z jednoho pravidla, jsem vychozi pravidlo prepsal (smazal moznost prepisovani, pripadne pridal upravene pravidlo, ktere zabrani derivaci nevhodnym smerem...). Taky se mi hodilo zakomentovat si cast pravidel, abych zjistil kde asi muze konflikt byt. Bison mi totiz v posledni fazi opravovani moc nenapovidal...

Re: DU3

od silver beam » 22. 11. 2010 21:05

Nemohl by nekdo naznacit jak na ty reduce-reduce konflikty?
Btw kdyz jste to prvne pustili, kolik vam jich to hodilo? Ja mam 87 R-R a 19 S-R.

Re: DU3

od blablaa » 21. 11. 2010 17:46

podarilo sa mi zistit ze problem je zrejme vo VS 2010, pretoze ak si otvorim solution mlc.vc9 vo visualku 2008 a pouzijem rovnake du3l.lex a du3g.y tak vsetko rpejde bez komplikacii.. o probleme som uz dal aj vediet cviciacemu, myslim ze sa to snazia odstranit, cize rada je pouzivat zatial vs 2008

Re: DU3

od ondr4 » 21. 11. 2010 10:28

Ahoj,

pouzivam VS2010 a bison 2.4.1, jako ty. Taky se mi podarilo premluvit bisona a pri prekladu mi uz nevraci zadny shift-reduce nebo reduce-reduce konflikt. Kdyz ale pustim vysledek, upadne na libovolnem vstupu, take ve funkci yyparse(). Ani zmineny prvni vstup mi to nesezere uspesne. Docela by me zajimalo, kde delam chybu :-/

DU3

od Bud a Pest » 18. 11. 2010 20:36

Zdravim,

spravil som domacu (tzn. ze som aj odstranil vsetky konflikty), no program mi pada na neosetrenu vynimku (vo funkcii yyparse()).

Zvlastne je, ze na vstupe:

Kód: Vybrat vše

program du3test1;

begin
end.
je vsetko ok no pri

Kód: Vybrat vše

program du3test1;

label 6;

begin
end.
to padne. Nemate nahodou niekto podobne problemy?
Pouzivam VS 2010 a bison (2.4.1)

Nahoru