|
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 - download
Length: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Lines, seg_0046da
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
package body Lines is procedure Assert_Is_Initialized (This_Line : in Line) is begin if not This_Line.Is_Initialized then raise Not_Initialized; end if; end Assert_Is_Initialized; procedure Assert_Is_Initialized (This_Iterator : in Iterator) is begin if not This_Iterator.Is_Initialized then raise Not_Initialized; end if; end Assert_Is_Initialized; function Create (From_String : in String) return Line is New_Line : Line; begin Vstrings.Copy (New_Line.Contents, From_String); New_Line.Is_Initialized := True; return New_Line; end Create; function Empty_Line return Line is begin return Lines.Create (""); end Empty_Line; function Copy (Of_Line : in Line) return Line is begin return Lines.Create (Lines.Image (Of_Line)); end Copy; function Image (Of_Line : in Line) return String is begin Assert_Is_Initialized (Of_Line); return Vstrings.Image (Of_Line.Contents); end Image; function Create return Iterator is New_Iterator : Iterator; begin New_Iterator.Is_Initialized := True; return New_Iterator; end Create; function Is_Empty (This_Iterator : in Iterator) return Boolean is begin Assert_Is_Initialized (This_Iterator); return Strings.Is_Empty (This_Iterator.Contents); end Is_Empty; function Lines_In (This_Iterator : in Iterator) return Natural is begin Assert_Is_Initialized (This_Iterator); return Strings.Elements_In (This_Iterator.Contents); end Lines_In; function Copy_Lines is new Strings.Copy (Copy); function Copy (Of_Iterator : in Iterator) return Iterator is New_Iterator : Iterator; begin New_Iterator.Contents := Copy_Lines (Of_Iterator.Contents); New_Iterator.Is_Initialized := True; return New_Iterator; end Copy; procedure Reset_To_First (This_Iterator : in out Iterator) is begin Assert_Is_Initialized (This_Iterator); Strings.Reset_To_First (This_Iterator.Contents); end Reset_To_First; procedure Reset_To_Last (This_Iterator : in out Iterator) is begin Assert_Is_Initialized (This_Iterator); Strings.Reset_To_Last (This_Iterator.Contents); end Reset_To_Last; function Done (This_Iterator : in Iterator) return Boolean is begin Assert_Is_Initialized (This_Iterator); return Strings.Done (This_Iterator.Contents); end Done; function At_First (This_Iterator : in Iterator) return Boolean is begin Assert_Is_Initialized (This_Iterator); return Strings.At_First (This_Iterator.Contents); end At_First; function At_Last (This_Iterator : in Iterator) return Boolean is begin Assert_Is_Initialized (This_Iterator); return Strings.At_Last (This_Iterator.Contents); end At_Last; procedure Previous (This_Iterator : in out Iterator) is begin Assert_Is_Initialized (This_Iterator); Strings.Previous (This_Iterator.Contents); exception when Strings.No_Previous_Element => raise No_Previous_Line; end Previous; procedure Next (This_Iterator : in out Iterator) is begin Assert_Is_Initialized (This_Iterator); Strings.Next (This_Iterator.Contents); exception when Strings.No_Next_Element => raise No_Next_Line; end Next; function Current (This_Iterator : in Iterator) return Line is begin Assert_Is_Initialized (This_Iterator); return Strings.Current (This_Iterator.Contents); exception when Strings.No_Current_Element => raise No_Current_Line; end Current; function Position (In_Iterator : in Iterator) return Line_Number is begin Assert_Is_Initialized (In_Iterator); return Line_Number (Strings.Position (In_Iterator.Contents)); exception when Strings.No_Current_Element => raise No_Current_Line; end Position; procedure Set (This_Iterator : in out Iterator; To_Line : in Line_Number) is begin Assert_Is_Initialized (This_Iterator); Strings.Set (This_Iterator.Contents, Strings.Positions (To_Line)); exception when Strings.Out_Of_Range => raise Out_Of_Range; end Set; function Line_At (This_Position : in Line_Number; In_Iterator : in Iterator) return Line is begin Assert_Is_Initialized (In_Iterator); return Strings.Element_At (Strings.Positions (This_Position), In_Iterator.Contents); exception when Strings.Out_Of_Range => raise Out_Of_Range; end Line_At; procedure Add (To_Iterator : in out Iterator; This_Line : in Line) is begin Assert_Is_Initialized (To_Iterator); Assert_Is_Initialized (This_Line); Strings.Add (To_Iterator.Contents, This_Line); end Add; procedure Add (To_Iterator : in out Iterator; This_Line : in Line; With_Orientation : in Orientations) is begin Assert_Is_Initialized (To_Iterator); Assert_Is_Initialized (This_Line); case With_Orientation is when Preceeding => Strings.Add (To_Iterator.Contents, This_Line, Strings.Preceeding); when Following => Strings.Add (To_Iterator.Contents, This_Line, Strings.Following); end case; exception when Strings.No_Current_Element => raise No_Current_Line; end Add; procedure Add (To_Iterator : in out Iterator; This_Line : in Line; At_Position : in Line_Number; With_Orientation : in Orientations) is begin Assert_Is_Initialized (To_Iterator); Assert_Is_Initialized (This_Line); case With_Orientation is when Preceeding => Strings.Add (To_Iterator.Contents, This_Line, Strings.Positions (At_Position), Strings.Preceeding); when Following => Strings.Add (To_Iterator.Contents, This_Line, Strings.Positions (At_Position), Strings.Following); end case; exception when Strings.Out_Of_Range => raise Out_Of_Range; end Add; procedure Modify (This_Iterator : in out Iterator; New_Line : in Line) is begin Assert_Is_Initialized (This_Iterator); Assert_Is_Initialized (New_Line); Strings.Modify (This_Iterator.Contents, New_Line); exception when Strings.No_Current_Element => raise No_Current_Line; end Modify; procedure Delete (From_Iterator : in out Iterator) is begin Assert_Is_Initialized (From_Iterator); Strings.Delete (From_Iterator.Contents); exception when Strings.No_Current_Element => raise No_Current_Line; end Delete; procedure Delete (From_Iterator : in out Iterator; This_Position : in Line_Number) is begin Assert_Is_Initialized (From_Iterator); Strings.Delete (From_Iterator.Contents, Strings.Positions (This_Position)); exception when Strings.Out_Of_Range => raise Out_Of_Range; end Delete; procedure Dispose (Of_This_Iterator : in out Iterator) is begin Strings.Dispose (Strings.List (Of_This_Iterator.Contents)); end Dispose; end Lines;
nblk1=a nid=0 hdr6=14 [0x00] rec0=26 rec1=00 rec2=01 rec3=04a [0x01] rec0=22 rec1=00 rec2=02 rec3=074 [0x02] rec0=00 rec1=00 rec2=0a rec3=00c [0x03] rec0=1d rec1=00 rec2=03 rec3=062 [0x04] rec0=23 rec1=00 rec2=04 rec3=006 [0x05] rec0=1f rec1=00 rec2=05 rec3=08c [0x06] rec0=1d rec1=00 rec2=06 rec3=00e [0x07] rec0=1a rec1=00 rec2=07 rec3=03c [0x08] rec0=22 rec1=00 rec2=08 rec3=012 [0x09] rec0=0b rec1=00 rec2=09 rec3=000 tail 0x217002a38815c6730397f 0x42a00088462061e03