(3)
with Ada.Strings.Maps;
package Ada.Strings.Bounded is
pragma Preelaborate(Bounded);
(4)
generic
Max : Positive; -- Maximum length of a Bounded_String
package Generic_Bounded_Length is
(5)
Max_Length : constant Positive := Max;
(6)
type Bounded_String is private;
(7)
Null_Bounded_String : constant Bounded_String;
(8)
subtype Length_Range is Natural range 0 .. Max_Length;
(9)
function Length (Source : in Bounded_String) return Length_Range;
(10)
-- Conversion, Concatenation, and Selection functions
(11)
function To_Bounded_String (Source : in String;
Drop : in Truncation := Error)
return Bounded_String;
(12)
function To_String (Source : in Bounded_String) return String;
(13)
function Append (Left, Right : in Bounded_String;
Drop : in Truncation := Error)
return Bounded_String;
(14)
function Append (Left : in Bounded_String;
Right : in String;
Drop : in Truncation := Error)
return Bounded_String;
(15)
function Append (Left : in String;
Right : in Bounded_String;
Drop : in Truncation := Error)
return Bounded_String;
(16)
function Append (Left : in Bounded_String;
Right : in Character;
Drop : in Truncation := Error)
return Bounded_String;
(17)
function Append (Left : in Character;
Right : in Bounded_String;
Drop : in Truncation := Error)
return Bounded_String;
(18)
procedure Append (Source : in out Bounded_String;
New_Item : in Bounded_String;
Drop : in Truncation := Error);
(19)
procedure Append (Source : in out Bounded_String;
New_Item : in String;
Drop : in Truncation := Error);
(20)
procedure Append (Source : in out Bounded_String;
New_Item : in Character;
Drop : in Truncation := Error);
(21)
function "&" (Left, Right : in Bounded_String)
return Bounded_String;
(22)
function "&" (Left : in Bounded_String; Right : in String)
return Bounded_String;
(23)
function "&" (Left : in String; Right : in Bounded_String)
return Bounded_String;
(24)
function "&" (Left : in Bounded_String; Right : in Character)
return Bounded_String;
(25)
function "&" (Left : in Character; Right : in Bounded_String)
return Bounded_String;
(26)
function Element (Source : in Bounded_String;
Index : in Positive)
return Character;
(27)
procedure Replace_Element (Source : in out Bounded_String;
Index : in Positive;
By : in Character);
(28)
function Slice (Source : in Bounded_String;
Low : in Positive;
High : in Natural)
return String;
(29)
function "=" (Left, Right : in Bounded_String) return Boolean;
function "=" (Left : in Bounded_String; Right : in String)
return Boolean;
(30)
function "=" (Left : in String; Right : in Bounded_String)
return Boolean;
(31)
function "<" (Left, Right : in Bounded_String) return Boolean;
(32)
function "<" (Left : in Bounded_String; Right : in String)
return Boolean;
(33)
function "<" (Left : in String; Right : in Bounded_String)
return Boolean;
(34)
function "<=" (Left, Right : in Bounded_String) return Boolean;
(35)
function "<=" (Left : in Bounded_String; Right : in String)
return Boolean;
(36)
function "<=" (Left : in String; Right : in Bounded_String)
return Boolean;
(37)
function ">" (Left, Right : in Bounded_String) return Boolean;
(38)
function ">" (Left : in Bounded_String; Right : in String)
return Boolean;
(39)
function ">" (Left : in String; Right : in Bounded_String)
return Boolean;
(40)
function ">=" (Left, Right : in Bounded_String) return Boolean;
(41)
function ">=" (Left : in Bounded_String; Right : in String)
return Boolean;
(42)
function ">=" (Left : in String; Right : in Bounded_String)
return Boolean;
(43)
-- Search functions
(44)
function Index (Source : in Bounded_String;
Pattern : in String;
Going : in Direction := Forward;
Mapping : in Maps.Character_Mapping
:= Maps.Identity)
return Natural;
(45)
function Index (Source : in Bounded_String;
Pattern : in String;
Going : in Direction := Forward;
Mapping : in Maps.Character_Mapping_Function)
return Natural;
(46)
function Index (Source : in Bounded_String;
Set : in Maps.Character_Set;
Test : in Membership := Inside;
Going : in Direction := Forward)
return Natural;
(47)
function Index_Non_Blank (Source : in Bounded_String;
Going : in Direction := Forward)
return Natural;
(48)
function Count (Source : in Bounded_String;
Pattern : in String;
Mapping : in Maps.Character_Mapping
:= Maps.Identity)
return Natural;
(49)
function Count (Source : in Bounded_String;
Pattern : in String;
Mapping : in Maps.Character_Mapping_Function)
return Natural;
(50)
function Count (Source : in Bounded_String;
Set : in Maps.Character_Set)
return Natural;
(51)
procedure Find_Token (Source : in Bounded_String;
Set : in Maps.Character_Set;
Test : in Membership;
First : out Positive;
Last : out Natural);
(52)
-- String translation subprograms
(53)
function Translate (Source : in Bounded_String;
Mapping : in Maps.Character_Mapping)
return Bounded_String;
(54)
procedure Translate (Source : in out Bounded_String;
Mapping : in Maps.Character_Mapping);
(55)
function Translate (Source : in Bounded_String;
Mapping : in Maps.Character_Mapping_Function)
return Bounded_String;
(56)
procedure Translate (Source : in out Bounded_String;
Mapping : in Maps.Character_Mapping_Function);
(57)
-- String transformation subprograms
(58)
function Replace_Slice (Source : in Bounded_String;
Low : in Positive;
High : in Natural;
By : in String;
Drop : in Truncation := Error)
return Bounded_String;
(59)
procedure Replace_Slice (Source : in out Bounded_String;
Low : in Positive;
High : in Natural;
By : in String;
Drop : in Truncation := Error);
(60)
function Insert (Source : in Bounded_String;
Before : in Positive;
New_Item : in String;
Drop : in Truncation := Error)
return Bounded_String;
(61)
procedure Insert (Source : in out Bounded_String;
Before : in Positive;
New_Item : in String;
Drop : in Truncation := Error);
(62)
function Overwrite (Source : in Bounded_String;
Position : in Positive;
New_Item : in String;
Drop : in Truncation := Error)
return Bounded_String;
(63)
procedure Overwrite (Source : in out Bounded_String;
Position : in Positive;
New_Item : in String;
Drop : in Truncation := Error);
(64)
function Delete (Source : in Bounded_String;
From : in Positive;
Through : in Natural)
return Bounded_String;
(65)
procedure Delete (Source : in out Bounded_String;
From : in Positive;
Through : in Natural);
(66)
--String selector subprograms
(67)
function Trim (Source : in Bounded_String;
Side : in Trim_End)
return Bounded_String;
procedure Trim (Source : in out Bounded_String;
Side : in Trim_End);
(68)
function Trim (Source : in Bounded_String;
Left : in Maps.Character_Set;
Right : in Maps.Character_Set)
return Bounded_String;
(69)
procedure Trim (Source : in out Bounded_String;
Left : in Maps.Character_Set;
Right : in Maps.Character_Set);
(70)
function Head (Source : in Bounded_String;
Count : in Natural;
Pad : in Character := Space;
Drop : in Truncation := Error)
return Bounded_String;
(71)
procedure Head (Source : in out Bounded_String;
Count : in Natural;
Pad : in Character := Space;
Drop : in Truncation := Error);
(72)
function Tail (Source : in Bounded_String;
Count : in Natural;
Pad : in Character := Space;
Drop : in Truncation := Error)
return Bounded_String;
(73)
procedure Tail (Source : in out Bounded_String;
Count : in Natural;
Pad : in Character := Space;
Drop : in Truncation := Error);
(74)
--String constructor subprograms
(75)
function "*" (Left : in Natural;
Right : in Character)
return Bounded_String;
(76)
function "*" (Left : in Natural;
Right : in String)
return Bounded_String;
(77)
function "*" (Left : in Natural;
Right : in Bounded_String)
return Bounded_String;
(78)
function Replicate (Count : in Natural;
Item : in Character;
Drop : in Truncation := Error)
return Bounded_String;
(79)
function Replicate (Count : in Natural;
Item : in String;
Drop : in Truncation := Error)
return Bounded_String;
(80)
function Replicate (Count : in Natural;
Item : in Bounded_String;
Drop : in Truncation := Error)
return Bounded_String;
(81)
private
... -- not specified by the language
end Generic_Bounded_Length;
(82)
end Ada.Strings.Bounded;
(84)
function Length (Source : in Bounded_String) return Length_Range;
(86)
function To_Bounded_String (Source : in String;
Drop : in Truncation := Error)
return Bounded_String;
(91)
function To_String (Source : in Bounded_String) return String;
(96)
function Element (Source : in Bounded_String;
Index : in Positive)
return Character;
(98)
procedure Replace_Element (Source : in out Bounded_String;
Index : in Positive;
By : in Character);
(100)
function Slice (Source : in Bounded_String;
Low : in Positive;
High : in Natural)
return String;
-- Email comments, additions, corrections, gripes, kudos, etc. to: