|
|
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: 4371 (0x1113)
Types: TextFile
Names: »B«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS
└─⟦91c658230⟧ »DATA«
└─⟦458657fb6⟧
└─⟦274c33adf⟧
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
└─⟦fc9b38f02⟧ »DATA«
└─⟦9b46a407a⟧
└─⟦274c33adf⟧
└─⟦this⟧
with Debug_Tools;
with Error_Reporting;
with Io;
with Program;
with Simple_Status;
with String_Utilities;
procedure Initialize_Design_Facilities is
package Dt renames Debug_Tools;
package Ss renames Simple_Status;
package Su renames String_Utilities;
Activity : constant String := "!Machine.Release.Current.Activity";
Caller : constant String := "!Machine.Initialize_Design_Facilities";
File_Of_Pdls : constant String := "!Machine.Design_Facilities";
Pdl_File : Io.File_Type;
procedure Close is
begin
Io.Close (Pdl_File);
exception
when others =>
null;
end Close;
procedure Start_Pdl (Pdl_Name : String) is
Uc_Pdl_Name : constant String :=
Su.Upper_Case (Su.Strip (Pdl_Name));
Command_Options : constant String :=
"Input | Output | Error => !MACHINE.DEVICES.NIL";
Registration_Procedure : constant String := "REGISTER_PDL";
Job_Id : Program.Job_Id;
Status : Program.Condition;
function Get_Context (From_Command : String) return String is
Begin_Quote : constant Natural := From_Command'First;
End_Quote : constant Natural :=
Su.Reverse_Locate ('"', From_Command);
begin
return From_Command (Natural'Succ (Begin_Quote)
.. Natural'Pred (End_Quote));
end Get_Context;
function Pdl_Subsystem return String is
begin
if Uc_Pdl_Name (Uc_Pdl_Name'First) = '!' then
return Uc_Pdl_Name & ".PDL_DEFINITION";
else
return "!TOOLS.DESIGN.RELEASE." &
Uc_Pdl_Name & ".PDL_DEFINITION";
end if;
end Pdl_Subsystem;
function Registration_Command return String is
begin
return Program.Current (Subsystem => Pdl_Subsystem,
Unit => Registration_Procedure,
Activity => Activity);
end Registration_Command;
function Pdl_Invocation return String is
begin
return Caller & " (" & Pdl_Subsystem & ')';
end Pdl_Invocation;
begin
if Uc_Pdl_Name'Length = 0 then
return;
end if;
Program.Create_Job (Registration_Command,
Context => Get_Context (Registration_Command),
Options => Command_Options,
Job => Job_Id,
Status => Status);
if not Program.Started_Successfully (Status) then
Error_Reporting.Report_Error
(Caller => Pdl_Invocation,
Reason => Error_Reporting.Create_Condition_Name
("Unable to Register " & Uc_Pdl_Name,
Error_Reporting.Problem),
Explanation => Ss.Display_Message (Status));
end if;
exception
when Io.Name_Error =>
Error_Reporting.Report_Error
(Caller => Caller & ".Start_Pdl",
Reason => Error_Reporting.Create_Condition_Name
("Invalid_Pdl_Name", Error_Reporting.Problem),
Explanation => Uc_Pdl_Name & " cannot be found.");
when others =>
Error_Reporting.Report_Error
(Caller => Pdl_Invocation,
Reason => Error_Reporting.Create_Condition_Name
("Unhandled_Exception", Error_Reporting.Problem),
Explanation => Dt.Get_Exception_Name (True, True));
end Start_Pdl;
begin
begin
Io.Open (File => Pdl_File, Mode => Io.In_File, Name => File_Of_Pdls);
exception
when Io.Name_Error =>
-- File does not exist
return;
end;
begin
loop
Start_Pdl (Io.Get_Line (Pdl_File));
end loop;
exception
when Io.End_Error =>
Close;
end;
exception
when others =>
Close;
Error_Reporting.Report_Error
(Caller => Caller,
Reason => Error_Reporting.Create_Condition_Name
("UNHANDLED EXCEPTION", Error_Reporting.Problem),
Explanation => Dt.Get_Exception_Name (True, True));
end Initialize_Design_Facilities;