|
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 - 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