|
|
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: 2206 (0x89e)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Class_Integer;
with Class_Boolean;
with Class_String;
with Class_Block;
with Class_Pen;
with Class_Turtle;
with Class_Window;
with Text_Io;
package body Old_Class_Printer is
type Flag is (Off, On);
Tab_Flag : Flag := On;
procedure Create is
begin
Position := 0;
Tab_Flag := On;
end Create;
procedure Forward (Number : in Integer) is
begin
if Number > 0 then
Position := Position + Number;
end if;
end Forward;
procedure Backward (Number : in Integer) is
begin
if Number > 0 then
Position := Position - Number;
end if;
if Position < 0 then
Position := 0;
end if;
end Backward;
procedure New_Line (Number : Integer := 1) is
begin
for I in 1 .. Number loop
Text_Io.New_Line;
end loop;
Tab_Flag := On;
end New_Line;
procedure Put (The_String : String) is
begin
if Tab_Flag = On then
Put_Tab (The_String);
else
Text_Io.Put (The_String);
end if;
Tab_Flag := Off;
end Put;
procedure Put_Tab (The_String : String) is
Tabulation : String (1 .. Position) := (1 .. Position => ' ');
begin
Text_Io.Put (Tabulation & The_String);
Tab_Flag := Off;
end Put_Tab;
procedure Put (This_Object : Object.Reference) is
begin
case Object.Get (Class_From => This_Object) is
when Object.Integer_Class =>
Class_Integer.Put (This_Object);
when Object.Boolean_Class =>
Class_Boolean.Put (This_Object);
when Object.String_Class =>
Class_String.Put (This_Object);
when Object.Turtle_Class =>
Class_Turtle.Put (This_Object);
when Object.Pen_Class =>
Class_Pen.Put (This_Object);
when Object.Block_Class =>
Class_Block.Put (This_Object);
when Object.Window_Class =>
Class_Window.Put (This_Object);
when Object.Void_Class =>
null;
end case;
end Put;
end Old_Class_Printer;