(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:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch