Stránka 1 z 1

DU4 - deklarace poli

Napsal: 11. 12. 2010 10:48
od Dusan
Ahoj,

symbolicke tabulky se v mem programu chovaji velmi divne pri deklaraci pole. Premyslim o tom uz tyden a protoze se termin odevzdani rychle blizi a ja jsem porad nezjistil, kde mam chybu, obracim se sem, jestli nekdo nemate podobny problem.

Kdyz deklaruju promennou ordinalniho typu, napr.

Kód: Vybrat vše

var i = 1..10;
,

je vse v poradku - v sekci types se mi objevi odpovidajici RANGE zaznam a v symbols spravny zaznam pro globalni promennou.
Kdyz ale deklaruju promennou typu pole, napr.

Kód: Vybrat vše

var i = array[1..10] of integer;
,

v sekci types se mi neobjevi nic (ani typ 1..10) a v sekci symbols dostanu globalni promennou typu T?.
Pritom pravidla Bisona se volaji ve spravnem poradi (nejprve se zanese do tabulek ordinalni typ, pak pole), jenze nakonci jsou tabulky prazdne.

Mate nekdo podobny problem nebo napad, cim by to mohlo byt?
Diky Dusan

Re: DU4 - deklarace poli

Napsal: 11. 12. 2010 14:06
od Schiroo
Mám podezření, že se mi range neukládala do typů, dokud jsem k ní nevytvořil pole (nebo neměl proměnnou jejího typu), což by vysvětlilo, že v tabulce není range. Tipuju, že se type_pointer na range někde v gramatice nepředává a nedoputuje až k volání create_array_type, proto se nevytvoří pole. Zkus si vypsat, co do funkce create_array_type skutečně posíláš.

Re: DU4 - deklarace poli

Napsal: 11. 12. 2010 16:02
od Dusan
Ahoj,

problem vyresen. Do funkce create_array_type jsem sice predaval parametry v poradku (tam jsem to taky testoval a snazil se najit chybu), ale ze strukturovaneho typu do typu jsem type_pointer predat zapomnel. Proto se do tabulek nezanesl spravne udaj o typu promenne a proto nejspise taky zmizel v dane situaci nepotrebny deklarovany typ pole a tim padem i rozsahu.

Diky za nakopnuti spravnym smerem,
Dusan