|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 1735 (0x6c7)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
separate (Analyze_Generic)
procedure Enumeration_Clause (For_Clause : Representation_Clause;
Result : in out Lines.Lines_Type) is
function "=" (A, B : Ap.Element) return Boolean renames Ap."=";
Reps_Type : Ap.Element := Reps.Associated_Type (For_Clause);
Size_Element : Ap.Element;
Agg : Ap.Element;
Agg_Iter : Ap.Element_Iterator;
Actual_Size : Long_Integer;
Reps_Size : Long_Integer;
Tmp : Long_Integer;
Largest : Long_Integer := 0;
function Size_Of (Top : Long_Integer) return Long_Integer is
type Dummy is new Integer range 0 .. Integer (Top);
begin
return Long_Integer (Dummy'Size);
end Size_Of;
begin
Size_Element := Reps.Associated_Size (Reps_Type);
if Size_Element /= Ap.Nil_Element then
Reps_Size := Ne.Static_Value (Size_Element);
Agg := Reps.Representation_Aggregate (For_Clause);
Agg_Iter := Ne.Components (Agg, True);
while not Ap.Done (Agg_Iter) loop
Tmp := Ne.Static_Value (Ne.Component_Expression
(Ap.Value (Agg_Iter)));
if Tmp > Largest then
Largest := Tmp;
end if;
Ap.Next (Agg_Iter);
end loop;
Actual_Size := Size_Of (Largest);
Lines.Add (Ap.Image (Ap.Parent (Size_Element)), Result);
if Actual_Size /= Reps_Size then
Lines.Add
(Filler & "Size Mismatch; Type's size of " &
Su.Number_To_String (Actual_Size) &
" vs Rep's size of " & Su.Number_To_String (Reps_Size), Result);
end if;
end if;
end Enumeration_Clause;