|
|
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: 14336 (0x3800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Ada, seg_0045ad, separate Object_Info
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
separate (Object_Info)
package body Ada is
function Is_Installed (This_Unit : in Ada_Unit) return Boolean is
begin
return Any.Is_Ada_Unit (This_Unit) and then
Directory_Tools.Ada_Object.State (This_Unit) =
Directory_Tools.Ada_Object.Installed;
end Is_Installed;
function Is_Coded (This_Unit : in Ada_Unit) return Boolean is
begin
return Any.Is_Ada_Unit (This_Unit) and then
Directory_Tools.Ada_Object.State (This_Unit) =
Directory_Tools.Ada_Object.Coded;
end Is_Coded;
function Is_Installed_Or_Coded (This_Unit : in Ada_Unit) return Boolean is
begin
return Directory_Tools.Ada_Object.State (This_Unit) =
Directory_Tools.Ada_Object.Installed or else
Directory_Tools.Ada_Object.State (This_Unit) =
Directory_Tools.Ada_Object.Coded;
end Is_Installed_Or_Coded;
function Is_Body (This_Unit : in Ada_Unit) return Boolean is
Unit_Kind : Directory_Tools.Ada_Object.Unit_Kind :=
Directory_Tools.Ada_Object.Kind (This_Unit);
begin
return Any.Is_Ada_Unit (This_Unit) and then
not Ada.Is_Subunit (This_Unit) and then
(Unit_Kind = Directory_Tools.Ada_Object.Package_Body or else
Unit_Kind = Directory_Tools.Ada_Object.Procedure_Body or else
Unit_Kind = Directory_Tools.Ada_Object.Function_Body);
end Is_Body;
function Is_Subunit (This_Unit : in Ada_Unit) return Boolean is
Compilation_Kind : Directory_Tools.Ada_Object.Compilation_Kind :=
Directory_Tools.Ada_Object.Kind (This_Unit);
begin
return Any.Is_Ada_Unit (This_Unit) and then
Compilation_Kind = Directory_Tools.Ada_Object.Subunit;
end Is_Subunit;
function Is_Body_Or_Subunit (This_Unit : in Ada_Unit) return Boolean is
begin
return Ada.Is_Body (This_Unit) or else Ada.Is_Subunit (This_Unit);
end Is_Body_Or_Subunit;
function Is_Spec (This_Unit : in Ada_Unit) return Boolean is
begin
return Any.Is_Ada_Unit (This_Unit) and then
Directory_Tools.Ada_Object.Is_Visible_Part (This_Unit);
end Is_Spec;
function Is_Universe_Mirror (This_Unit : in Ada_Unit) return Boolean is
The_Root : Standard.Directory.Ada.Root;
The_Status : Standard.Directory.Error_Status;
Object_Id : Diana.Tree;
Pragmas : Diana.Sequence;
begin
if Ada.Is_Spec (This_Unit) then
-- Find the root of the object.
Directory_Tools.Object.Low_Level.Get_Root
(This_Unit, The_Root, The_Status);
-- Get the id for the object.
Object_Id := Diana.Id_Utilities.Comp_Unit_Id (The_Root);
if Semantic_Attributes.Has_Sm_Subsystem_Interface (Object_Id) then
-- Since is subsystem interface, see if has a pragma
-- for Module_Name in it: if so, it is a universe mirror.
Pragmas := Semantic_Attributes.Sm_Applied_Pragmas (Object_Id);
while not Diana.Is_Empty (Pragmas) loop
if String_Utilities.Upper_Case
(Diana.Image (Diana.Id
(Diana.As_Id (Diana.Head
(Pragmas))))) =
"MODULE_NAME" then
return True;
end if;
Pragmas := Diana.Tail (Pragmas);
end loop;
end if;
end if;
return False;
exception
when others =>
return False;
end Is_Universe_Mirror;
function Is_Generic_Spec (This_Unit : in Ada_Unit) return Boolean is
Object_Kind : Directory_Tools.Ada_Object.Unit_Kind :=
Directory_Tools.Ada_Object.Kind (This_Unit);
begin
return Ada.Is_Spec (This_Unit) and then
(Object_Kind = Directory_Tools.Ada_Object.
Generic_Package or else
Object_Kind = Directory_Tools.Ada_Object.
Generic_Procedure or else
Object_Kind = Directory_Tools.Ada_Object.
Generic_Function);
end Is_Generic_Spec;
function Is_Spec_In_Spec_View (This_Unit : in Ada_Unit) return Boolean is
begin
return Ada.Is_Spec (This_Unit) and then
Any.Is_Contained_By_Spec_View (This_Unit);
end Is_Spec_In_Spec_View;
function Is_Spec_In_Load_View (This_Unit : in Ada_Unit) return Boolean is
begin
return Ada.Is_Spec (This_Unit) and then
Any.Is_Contained_By_Load_View (This_Unit);
end Is_Spec_In_Load_View;
function Matching_Spec (Current_Spec : in Ada_Spec;
Current_View : in Any.View;
Other_View : in Any.View) return Ada_Spec is
begin
declare
Current_Spec_Name : constant String :=
Directory_Tools.Naming.Full_Name (Current_Spec);
Current_View_Name : constant String :=
Directory_Tools.Naming.Full_Name (Current_View);
Current_Tail : constant String :=
Current_Spec_Name (Current_Spec_Name'First +
Current_View_Name'Length ..
Current_Spec_Name'Last);
Other_View_Name : constant String :=
Directory_Tools.Naming.Full_Name (Other_View);
Other_Spec_Name : constant String := Other_View_Name & Current_Tail;
Other_Spec : Ada_Spec :=
Directory_Tools.Naming.Resolution (Other_Spec_Name);
begin
return Other_Spec;
end;
exception
when others =>
return Utilities.Bad_Object;
end Matching_Spec;
function Spec_In_Other_View
(This_Spec : in Ada_Spec;
This_Activity : in Activity.Activity_Name :=
Activity.The_Current_Activity) return Ada_Spec is
Current_View : Any.View := Any.View_Containing (This_Spec);
begin
if Any.Is_Spec_View (Current_View) then
return Matching_Spec
(Current_Spec => This_Spec,
Current_View => Current_View,
Other_View =>
Cmvc.Current_Load_View_In
(Any.Subsystem_Containing (Current_View),
This_Activity));
elsif Any.Is_Load_View (Current_View) then
return Matching_Spec
(Current_Spec => This_Spec,
Current_View => Current_View,
Other_View =>
Cmvc.Current_Spec_View_In
(Any.Subsystem_Containing (Current_View),
This_Activity));
elsif Any.Is_Combined_View (Current_View) then
return This_Spec;
else
return Utilities.Bad_Object;
end if;
exception
when others =>
return Utilities.Bad_Object;
end Spec_In_Other_View;
function Specs_Withed_By (This_Unit : in Ada_Unit) return Ada_Specs is
begin
return Directory_Tools.Ada_Object.List_Of_Withs (This_Unit);
end Specs_Withed_By;
function Dependents_Of (This_Unit : in Ada_Unit) return Ada_Units is
begin
return Directory_Tools.Ada_Object.Depends_On (This_Unit);
end Dependents_Of;
function Parent_Of (This_Unit : in Ada_Unit) return Ada_Unit is
begin
if Ada.Is_Spec (This_Unit) then
return Utilities.Bad_Object;
elsif Ada.Is_Body (This_Unit) then
return Directory_Tools.Ada_Object.Other_Part (This_Unit);
elsif Ada.Is_Subunit (This_Unit) then
return Directory_Tools.Traversal.Parent (This_Unit);
end if;
exception
when others =>
return Utilities.Bad_Object;
end Parent_Of;
function Subunits_Of (This_Unit : in Ada_Unit) return Subunits is
begin
return Directory_Tools.Ada_Object.Subunits
(This_Unit, Declared => False);
end Subunits_Of;
function Body_For (This_Unit : in Ada_Unit) return Ada_Body is
Current_Unit : Ada_Unit := This_Unit;
begin
if Ada.Is_Spec (Current_Unit) then
-- Find body associated with spec.
Current_Unit :=
Directory_Tools.Ada_Object.Other_Part (Current_Unit);
elsif Ada.Is_Subunit (Current_Unit) then
-- Find parents transitively until get to body.
while Directory_Tools.Ada_Object.Is_Subunit (Current_Unit) loop
Current_Unit := Ada.Parent_Of (Current_Unit);
end loop;
end if;
if not Ada.Is_Body (Current_Unit) then
-- Something went wrong.
return Utilities.Bad_Object;
else
return Current_Unit;
end if;
exception
when others =>
return Utilities.Bad_Object;
end Body_For;
function Spec_For (This_Unit : in Ada_Unit) return Ada_Spec is
Current_Unit : Ada_Unit := This_Unit;
begin
-- Find parents transitively until get to body.
while Directory_Tools.Ada_Object.Is_Subunit (Current_Unit) loop
Current_Unit := Ada.Parent_Of (Current_Unit);
end loop;
if Ada.Is_Body (Current_Unit) then
-- Find spec associated with body.
Current_Unit := Ada.Parent_Of (Current_Unit);
end if;
if not Ada.Is_Spec (Current_Unit) then
-- Something went wrong.
return Utilities.Bad_Object;
else
return Current_Unit;
end if;
exception
when others =>
return Utilities.Bad_Object;
end Spec_For;
end Ada;
nblk1=d
nid=0
hdr6=1a
[0x00] rec0=1b rec1=00 rec2=01 rec3=01c
[0x01] rec0=17 rec1=00 rec2=02 rec3=094
[0x02] rec0=19 rec1=00 rec2=03 rec3=086
[0x03] rec0=00 rec1=00 rec2=0d rec3=00c
[0x04] rec0=1a rec1=00 rec2=04 rec3=02a
[0x05] rec0=16 rec1=00 rec2=05 rec3=078
[0x06] rec0=17 rec1=00 rec2=06 rec3=040
[0x07] rec0=00 rec1=00 rec2=0c rec3=00a
[0x08] rec0=1e rec1=00 rec2=07 rec3=024
[0x09] rec0=1e rec1=00 rec2=08 rec3=00c
[0x0a] rec0=1e rec1=00 rec2=09 rec3=020
[0x0b] rec0=1e rec1=00 rec2=0a rec3=006
[0x0c] rec0=12 rec1=00 rec2=0b rec3=000
tail 0x217002144815c653ad205 0x42a00088462061e03