DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦db496e905⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Branch_Utilities, seg_004619

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



--| @SUMMARY Provides utilities for analyzing branch points in an Ada program.
--| @INDICES (Ada_Analysis, Path_Analysis)
with Ada_Program;
package Branch_Utilities is

    type Branch_Kind is (If_Statement,  
                         Case_Statement,  
                         While_Loop,  
                         Non_Static_For_Loop,  -- loops with non-static range
                         Exit_When,  
                         Select_Statement,  
                         Return_Statement,  
                         Raise_Statement,  
                         Not_A_Branch);


    function Kind (The_Statement : Ada_Program.Statement) return Branch_Kind;

    --| @DESCRIPTION Determines if there are any branches in the closure
    --| of the statements in the iterator
    function No_Branches (In_Statement_List : Ada_Program.Element_Iterator)
                         return Boolean;

    --| @DESCRIPTION Computes the depth (nesting) of branching in a subprogram
    function Branching_Depth
                (For_Subprogram : Ada_Program.Declaration) return Natural;

    --| @DESCRIPTION Determines if the if statement has an else part or not
    function No_Else_Part (If_Statement : Ada_Program.Statement) return Boolean;

    --| @DESCRIPTION Determines how many branches are possible.  For case
    --| statements, it is the number of case alternatives.  For if statements
    --| it is the number of conditional arms.  For select statements it is
    --| the number of select alternatives.  For loops and exits the Width
    --| is always 2 (ie it executes or it does not).
    function Width (Of_Branch_Statement : Ada_Program.Statement)
                   return Positive;

end Branch_Utilities;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=19 rec1=00 rec2=01 rec3=090
        [0x01] rec0=10 rec1=00 rec2=02 rec3=000
    tail 0x2150042a8815c65bf2193 0x42a00088462061e03