|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5120 (0x1400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Size_Utilities, seg_00462e
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
--| @SUMMARY This package computes the size (in bits) of objects.
--| @DESCRIPTION This package computes the size of objects or their type
--| declartion by recursively decomposing them into atomic elements (like
--| integers, characters and booleans). The size of these elements are
--| defined in the package Size_Parameters. These values can be initialized
--| from a file to allow computation of target sizes. Anlysis of
--| representation clauses for records can be controlled by parameter selection
--|
--| LIMITATATIONS
--|
--| Sizing discriminant records has only limited support. If the
--| discriminant is an enumerated value the correct discriminant can in
--| most cases be selected. Integer descriminants are not processed.
--|
--| There is a concept of alignment coded into the algorithm, but the
--| types that require alignment (current access values) is hard coded.
--| An extention could place this in the file parameterization.
--|
--| Overhead for dope vectors required for composite types is supported
--| only for dicriminant record and only as a fixed number of bits.
--| This concept could also be extended.
--|
--| @INDICES (Ada_Analysis, Size_Computation, Type_Traversal)
with Ada_Program;
with Declarations;
with Type_Information;
package Size_Utilities is
subtype Long_Natural is Long_Integer range 0 .. Long_Integer'Last;
--| @DESCRIPTION Computs the number of identifiers in an object
--| or exception declaration
procedure Number_Of_Ids (Object : Declarations.Object_Declaration;
Count : out Long_Natural);
--| @DESCRIPTION Computes the total number of array elements designated by
--| a sequence of index constraints. The total is computed as the product
--| of the number of elements in each index. If the size of any index
--| constraint cannot be computed statically, the Static parameter is set
--| to false.
procedure Number_Of_Elements
(Index_Constraints : Ada_Program.Element_Iterator;
Count : out Long_Natural;
Static : in out Boolean);
--| @DESCRIPTION Computes the size (in bits) of any type definition by
--| recusively decmoposing them into atomic elements. If the size of any
--| component cannot be statically computed, the Static parameter is
--| set to false.
procedure Type_Size (For_Type : Type_Information.Type_Definition;
Ignore_Type_Representation_Clauses : Boolean := False;
Result : out Long_Natural;
Static : in out Boolean);
--| @DESCRIPTION Computes the size of the type associated with the object.
procedure Object_Size
(For_Object : Declarations.Object_Declaration;
Ignore_Type_Representation_Clauses : Boolean := False;
Result : out Long_Natural;
Static : in out Boolean);
end Size_Utilities;
nblk1=4
nid=0
hdr6=8
[0x00] rec0=14 rec1=00 rec2=01 rec3=008
[0x01] rec0=15 rec1=00 rec2=02 rec3=022
[0x02] rec0=13 rec1=00 rec2=03 rec3=01c
[0x03] rec0=04 rec1=00 rec2=04 rec3=001
tail 0x217002480815c65fe76ec 0x42a00088462061e03