Je toto chyba v mosaic při určité definici vlastního typu proměnné ?

(1/1)

Jiri Dvorak:
K věci :
(vynechám zdlouhavý popis z příkladu je problém celkem jasný)

TYPE
  type_pok : STRUCT        
    q : ( a, b, c);                                      // zde je problém
    arb : ARRAY [0..20] OF BOOL;         // zde je  problém


  END_STRUCT;
  
END_TYPE

VAR_GLOBAL RETAIN
  arb2 : ARRAY [0..20] OF BOOL;
  var_tp : type_pok;
END_VAR

s tímto vytvořeným typem nechodí toto ( pouze kód pro test):

for  y := 0 to 20 do
   arb2[y] := true;
   var_tp.arb[y] := true;
end_for;

překvapivě toto jde:

var_tp.arb[1] := true;

a druhé ( tedy pro mě ) překvapení, pokud:

TYPE
  type_pok : STRUCT        
     arb : ARRAY [0..20] OF BOOL;
     q : ( a, b, c);

 END_STRUCT;
  
END_TYPE


Tak je zase po problému...... ..




Jindra_K:
váš dotaz jsem předal kolegům z vývoje prostředí Mosaic, předpokládám, že se do několika dní ozvou.

Milan Bydžovský:
Překladač bohužel dovolil konstrukci, se kterou neumí pracovat, a to definice enumerace jako instance.

Problém lze obejít následovně:

Kód:

TYPE
  Tq : ( a, b, c);                                   // definice enumerace
  type_pok : STRUCT
    q : Tq;                                            //pouziti enumerace
    arb : ARRAY [0..20] OF BOOL;
  END_STRUCT;
END_TYPE

Následné operace jsou pak již korektní

Navigace

[0] Index zpráv