|
|
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: 17408 (0x4400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Standard_Ada_Io, package body Subprograms, seg_004633
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Unbounded_String;
package body Standard_Ada_Io is
package Unbounded is new Unbounded_String (128);
Lf1 : constant String (1 .. 1) := (others => Ascii.Lf);
Lf2 : constant String (1 .. 2) := (others => Ascii.Lf);
Cr3 : constant String (1 .. 3) := (others => Ascii.Lf);
function Make_Label (For_Input : String) return String is
begin
if For_Input = "" then
return "";
else
return For_Input & ":" & Lf1;
end if;
end Make_Label;
function Make_With_Clause (Name : String) return String is
begin
return "with " & Name & ";" & Lf1;
end Make_With_Clause;
function Part_Indicator (For_Part : Unit_Part) return String is
begin
case For_Part is
when Spec_Part =>
return "";
when Body_Part =>
return "body ";
when Call =>
return "";
end case;
end Part_Indicator;
function Function_Part_Terminator (For_Part : Unit_Part) return String is
begin
case For_Part is
when Spec_Part =>
return ";" & Lf1;
when Body_Part =>
return " is" & Lf1;
when Call =>
return Lf1;
end case;
end Function_Part_Terminator;
function Procedure_Part_Terminator (For_Part : Unit_Part) return String is
begin
case For_Part is
when Spec_Part =>
return ";" & Lf1;
when Body_Part =>
return " is" & Lf1;
when Call =>
return ";" & Lf1;
end case;
end Procedure_Part_Terminator;
function Parameter_Separator (For_Part : Unit_Part) return String is
begin
case For_Part is
when Spec_Part =>
return "; " & Lf1;
when Body_Part =>
return "; " & Lf1;
when Call =>
return ", ";
end case;
end Parameter_Separator;
function Make_Package (Name : String; Kind : Unit_Part) return String is
begin
case Kind is
when Spec_Part =>
return "package " & Part_Indicator (Kind) & Name & " is" & Lf2;
when Body_Part =>
return "package " & Part_Indicator (Kind) & Name & " is" & Lf2;
when Call =>
raise Program_Error;
end case;
end Make_Package;
package body Subprograms is
function Form_Initial_Value (Current : String) return String is
begin
if Current = "" then
return Current;
else
return " := " & Current;
end if;
end Form_Initial_Value;
procedure Append_Parameters (Image : in out Unbounded.Variable_String;
Kind : Unit_Part;
Iter : in out Parameter_Iterator) is
Ids : Id_Iterator;
begin
while not Done (Iter) loop
case Kind is
when Spec_Part =>
Unbounded.Append (Image,
Formal_Name (Iter) & " : " &
Mode (Iter) & Type_Name (Iter) &
Form_Initial_Value
(Initial_Value (Iter)) & Lf1);
when Body_Part =>
Unbounded.Append (Image,
Formal_Name (Iter) & " : " &
Mode (Iter) & Type_Name (Iter) &
Form_Initial_Value
(Initial_Value (Iter)) & Lf1);
when Call =>
Ids := Formal_Names (Iter);
while not Ids_Done (Ids) loop
Unbounded.Append (Image,
Name (Ids) & " => " &
Ids_Initial_Value (Ids) & Lf1);
Ids_Next (Ids);
if not Ids_Done (Ids) then
Unbounded.Append (Image,
Parameter_Separator (Kind));
end if;
end loop;
end case;
Next (Iter);
if not Done (Iter) then
Unbounded.Append (Image, Parameter_Separator (Kind));
end if;
end loop;
end Append_Parameters;
function Make_Procedure
(Name : String;
Kind : Unit_Part;
Param_Iter : Parameter_Iterator) return String is
Local_Image : Unbounded.Variable_String;
No_Parameters : Boolean := Done (Param_Iter);
Local_Iter : Parameter_Iterator := Param_Iter;
begin
case Kind is
when Spec_Part | Body_Part =>
Unbounded.Append (Local_Image, "procedure " & Name);
when Call =>
Unbounded.Append (Local_Image, Name);
end case;
if not No_Parameters then
Unbounded.Append (Local_Image, " (");
Append_Parameters (Local_Image, Kind, Local_Iter);
Unbounded.Append (Local_Image, ")");
end if;
Unbounded.Append (Local_Image, Procedure_Part_Terminator (Kind));
return Unbounded.Image (Local_Image);
end Make_Procedure;
function Make_Function (Name : String;
Kind : Unit_Part;
Param_Iter : Parameter_Iterator;
Return_Expression : String) return String is
Local_Image : Unbounded.Variable_String;
No_Parameters : Boolean := Done (Param_Iter);
Local_Iter : Parameter_Iterator := Param_Iter;
begin
case Kind is
when Spec_Part | Body_Part =>
Unbounded.Append (Local_Image, "function " & Name);
when Call =>
Unbounded.Append (Local_Image, Name);
end case;
if not No_Parameters then
Unbounded.Append (Local_Image, " (");
Append_Parameters (Local_Image, Kind, Local_Iter);
Unbounded.Append (Local_Image, ") ");
end if;
case Kind is
when Spec_Part | Body_Part =>
Unbounded.Append (Local_Image,
" return " & Return_Expression);
when Call =>
null;
end case;
Unbounded.Append (Local_Image, Function_Part_Terminator (Kind));
return Unbounded.Image (Local_Image);
end Make_Function;
end Subprograms;
function Make_Procedure (Name : String;
Kind : Unit_Part;
Parameters_Image : String) return String is
begin
case Kind is
when Spec_Part =>
return "procedure " & Name & " (" &
Parameters_Image & ");" & Lf1;
when Body_Part =>
return "procedure " & Name & " (" &
Parameters_Image & ") is" & Lf1;
when Call =>
return Name & " (" & Parameters_Image & ");" & Lf1;
end case;
end Make_Procedure;
function Make_Function (Name : String;
Kind : Unit_Part;
Parameters_Image : String;
Return_Expression : String) return String is
begin
case Kind is
when Spec_Part =>
return "function " & Name & " (" & Parameters_Image &
") return " & Return_Expression & ";" & Lf1;
when Body_Part =>
return "function " & Name & " (" & Parameters_Image &
") return " & Return_Expression & " is" & Lf1;
when Call =>
return Return_Expression & " := " & Name &
" (" & Parameters_Image & ")" & Lf1;
end case;
end Make_Function;
function Make_Exception (Name : String) return String is
begin
return Name & " : exception;" & Lf1;
end Make_Exception;
function Make_Assignment (Name : String;
Expression : String) return String is
begin
return Name & " := " & Expression & ";" & Lf1;
end Make_Assignment;
function Make_Declare (Label : String := "") return String is
begin
return Make_Label (Label) & "declare" & Lf1;
end Make_Declare;
function Make_Begin return String is
begin
return "begin" & Lf1;
end Make_Begin;
function Make_End (Name : String := "") return String is
begin
return "end " & Name & ";" & Lf1;
end Make_End;
function Make_Exception_Handler return String is
begin
return "exception" & Lf1;
end Make_Exception_Handler;
function Make_If_Header (Expression : String) return String is
begin
return "if " & Expression & " then" & Lf1;
end Make_If_Header;
function Make_Elsif (Expression : String) return String is
begin
return "elsif " & Expression & " then" & Lf1;
end Make_Elsif;
function Make_Else return String is
begin
return "else" & Lf1;
end Make_Else;
function Make_End_If return String is
begin
return "end if;" & Lf1;
end Make_End_If;
function Make_Case_Header (Expression : String) return String is
begin
return "case " & Expression & " is" & Lf1;
end Make_Case_Header;
function Make_Alternative (Expression : String) return String is
begin
return "when " & Expression & " =>" & Lf1;
end Make_Alternative;
function Make_End_Case return String is
begin
return "end case;" & Lf1;
end Make_End_Case;
function Make_Loop (Label : String := "") return String is
begin
return Make_Label (Label) & "loop" & Lf1;
end Make_Loop;
function Make_For_Loop (Iteration_Variable : String := "I";
Lower : String;
Upper : String;
Label : String := "";
Add_Reverse : Boolean := False) return String is
begin
if Add_Reverse then
return Make_Label (Label) & "for " & Iteration_Variable &
" in " & Lower & " .. " & Upper & " loop" & Lf1;
else
return Make_Label (Label) & "for " & Iteration_Variable &
" in reverse " & Lower & " .. " & Upper & " loop" & Lf1;
end if;
end Make_For_Loop;
function Make_While_Loop (Termination_Expression : String;
Label : String := "") return String is
begin
return Make_Label (Label) & "while " &
Termination_Expression & " loop" & Lf1;
end Make_While_Loop;
function Make_End_Loop return String is
begin
return "end loop;" & Lf1;
end Make_End_Loop;
function Make_Exit (Condition : String := "") return String is
begin
if Condition = "" then
return "exit;" & Lf1;
else
return "exit when " & Condition & ";" & Lf1;
end if;
end Make_Exit;
function Make_Return (Expression : String := "") return String is
begin
if Expression = "" then
return "return;" & Lf1;
else
return "return " & Expression & ";" & Lf1;
end if;
end Make_Return;
function Make_Variable_Declaration (Name : String;
Type_Mark : String) return String is
begin
return Name & " : " & Type_Mark & ";" & Lf1;
end Make_Variable_Declaration;
function Make_Constant_Declaration (Name : String;
Type_Mark : String;
Initial_Value : String) return String is
begin
return Name & " : constant " & Type_Mark &
" := " & Initial_Value & ";" & Lf1;
end Make_Constant_Declaration;
function Make_Raise (The_Exception : String := "") return String is
begin
if The_Exception = "" then
return "raise;" & Lf1;
else
return "raise " & The_Exception & ";" & Lf1;
end if;
end Make_Raise;
end Standard_Ada_Io;
nblk1=10
nid=0
hdr6=20
[0x00] rec0=23 rec1=00 rec2=01 rec3=008
[0x01] rec0=20 rec1=00 rec2=02 rec3=02c
[0x02] rec0=1e rec1=00 rec2=03 rec3=048
[0x03] rec0=13 rec1=00 rec2=04 rec3=00a
[0x04] rec0=1a rec1=00 rec2=05 rec3=050
[0x05] rec0=1a rec1=00 rec2=06 rec3=036
[0x06] rec0=02 rec1=00 rec2=10 rec3=016
[0x07] rec0=17 rec1=00 rec2=07 rec3=026
[0x08] rec0=01 rec1=00 rec2=0f rec3=010
[0x09] rec0=1a rec1=00 rec2=08 rec3=02e
[0x0a] rec0=18 rec1=00 rec2=09 rec3=004
[0x0b] rec0=21 rec1=00 rec2=0a rec3=000
[0x0c] rec0=24 rec1=00 rec2=0b rec3=032
[0x0d] rec0=18 rec1=00 rec2=0c rec3=00a
[0x0e] rec0=1d rec1=00 rec2=0d rec3=044
[0x0f] rec0=10 rec1=00 rec2=0e rec3=000
tail 0x2150044cc815c66152ca4 0x42a00088462061e03