Ada Programming/Libraries/Ada.Strings.Bounded
This language feature is available from Ada 95 on.
Ada.Strings.Bounded is a unit of the Predefined Language Environment since Ada 95.
Specification
edit-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------with
Ada.Strings.Maps;package
Ada.Strings.Boundedis
pragma
Preelaborate (Bounded);generic
Max : Positive; -- Maximum length of a Bounded_Stringpackage
Generic_Bounded_Lengthis
Max_Length :constant
Positive := Max;type
Bounded_Stringis
private
; Null_Bounded_String :constant
Bounded_String;subtype
Length_Rangeis
Naturalrange
0 .. Max_Length;function
Length (Source :in
Bounded_String)return
Length_Range; -- Conversion, Concatenation, and Selection functionsfunction
To_Bounded_String (Source :in
String; Drop :in
Truncation := Error)return
Bounded_String;function
To_String (Source :in
Bounded_String)return
String;procedure
Set_Bounded_String (Target :out
Bounded_String; Source :in
String; Drop :in
Truncation := Error);function
Append (Left, Right :in
Bounded_String; Drop :in
Truncation := Error)return
Bounded_String;function
Append (Left :in
Bounded_String; Right :in
String; Drop :in
Truncation := Error)return
Bounded_String;function
Append (Left :in
String; Right :in
Bounded_String; Drop :in
Truncation := Error)return
Bounded_String;function
Append (Left :in
Bounded_String; Right :in
Character; Drop :in
Truncation := Error)return
Bounded_String;function
Append (Left :in
Character; Right :in
Bounded_String; Drop :in
Truncation := Error)return
Bounded_String;procedure
Append (Source :in
out
Bounded_String; New_Item :in
Bounded_String; Drop :in
Truncation := Error);procedure
Append (Source :in
out
Bounded_String; New_Item :in
String; Drop :in
Truncation := Error);procedure
Append (Source :in
out
Bounded_String; New_Item :in
Character; Drop :in
Truncation := Error);function
"&" (Left, Right :in
Bounded_String)return
Bounded_String;function
"&" (Left :in
Bounded_String; Right :in
String)return
Bounded_String;function
"&" (Left :in
String; Right :in
Bounded_String)return
Bounded_String;function
"&" (Left :in
Bounded_String; Right :in
Character)return
Bounded_String;function
"&" (Left :in
Character; Right :in
Bounded_String)return
Bounded_String;function
Element (Source :in
Bounded_String; Index :in
Positive)return
Character;procedure
Replace_Element (Source :in
out
Bounded_String; Index :in
Positive; By :in
Character);function
Slice (Source :in
Bounded_String; Low :in
Positive; High :in
Natural)return
String;function
Bounded_Slice (Source :in
Bounded_String; Low :in
Positive; High :in
Natural)return
Bounded_String;procedure
Bounded_Slice (Source :in
Bounded_String; Target :out
Bounded_String; Low :in
Positive; High :in
Natural);function
"=" (Left, Right :in
Bounded_String)return
Boolean;function
"=" (Left :in
Bounded_String; Right :in
String)return
Boolean;function
"=" (Left :in
String; Right :in
Bounded_String)return
Boolean;function
"<" (Left, Right :in
Bounded_String)return
Boolean;function
"<" (Left :in
Bounded_String; Right :in
String)return
Boolean;function
"<" (Left :in
String; Right :in
Bounded_String)return
Boolean;function
"<=" (Left, Right :in
Bounded_String)return
Boolean;function
"<=" (Left :in
Bounded_String; Right :in
String)return
Boolean;function
"<=" (Left :in
String; Right :in
Bounded_String)return
Boolean;function
">" (Left, Right :in
Bounded_String)return
Boolean;function
">" (Left :in
Bounded_String; Right :in
String)return
Boolean;function
">" (Left :in
String; Right :in
Bounded_String)return
Boolean;function
">=" (Left, Right :in
Bounded_String)return
Boolean;function
">=" (Left :in
Bounded_String; Right :in
String)return
Boolean;function
">=" (Left :in
String; Right :in
Bounded_String)return
Boolean; -- Search subprogramsfunction
Index (Source :in
Bounded_String; Pattern :in
String; From :in
Positive; Going :in
Direction := Forward; Mapping :in
Maps.Character_Mapping := Maps.Identity)return
Natural;function
Index (Source :in
Bounded_String; Pattern :in
String; From :in
Positive; Going :in
Direction := Forward; Mapping :in
Maps.Character_Mapping_Function)return
Natural;function
Index (Source :in
Bounded_String; Pattern :in
String; Going :in
Direction := Forward; Mapping :in
Maps.Character_Mapping := Maps.Identity)return
Natural;function
Index (Source :in
Bounded_String; Pattern :in
String; Going :in
Direction := Forward; Mapping :in
Maps.Character_Mapping_Function)return
Natural;function
Index (Source :in
Bounded_String; Set :in
Maps.Character_Set; From :in
Positive; Test :in
Membership := Inside; Going :in
Direction := Forward)return
Natural;function
Index (Source :in
Bounded_String; Set :in
Maps.Character_Set; Test :in
Membership := Inside; Going :in
Direction := Forward)return
Natural;function
Index_Non_Blank (Source :in
Bounded_String; From :in
Positive; Going :in
Direction := Forward)return
Natural;function
Index_Non_Blank (Source :in
Bounded_String; Going :in
Direction := Forward)return
Natural;function
Count (Source :in
Bounded_String; Pattern :in
String; Mapping :in
Maps.Character_Mapping := Maps.Identity)return
Natural;function
Count (Source :in
Bounded_String; Pattern :in
String; Mapping :in
Maps.Character_Mapping_Function)return
Natural;function
Count (Source :in
Bounded_String; Set :in
Maps.Character_Set)return
Natural;procedure
Find_Token (Source :in
Bounded_String; Set :in
Maps.Character_Set; Test :in
Membership; First :out
Positive; Last :out
Natural); -- String translation subprogramsfunction
Translate (Source :in
Bounded_String; Mapping :in
Maps.Character_Mapping)return
Bounded_String;procedure
Translate (Source :in
out
Bounded_String; Mapping :in
Maps.Character_Mapping);function
Translate (Source :in
Bounded_String; Mapping :in
Maps.Character_Mapping_Function)return
Bounded_String;procedure
Translate (Source :in
out
Bounded_String; Mapping :in
Maps.Character_Mapping_Function); -- String transformation subprogramsfunction
Replace_Slice (Source :in
Bounded_String; Low :in
Positive; High :in
Natural; By :in
String; Drop :in
Truncation := Error)return
Bounded_String;procedure
Replace_Slice (Source :in
out
Bounded_String; Low :in
Positive; High :in
Natural; By :in
String; Drop :in
Truncation := Error);function
Insert (Source :in
Bounded_String; Before :in
Positive; New_Item :in
String; Drop :in
Truncation := Error)return
Bounded_String;procedure
Insert (Source :in
out
Bounded_String; Before :in
Positive; New_Item :in
String; Drop :in
Truncation := Error);function
Overwrite (Source :in
Bounded_String; Position :in
Positive; New_Item :in
String; Drop :in
Truncation := Error)return
Bounded_String;procedure
Overwrite (Source :in
out
Bounded_String; Position :in
Positive; New_Item :in
String; Drop :in
Truncation := Error);function
Delete (Source :in
Bounded_String; From :in
Positive; Through :in
Natural)return
Bounded_String;procedure
Delete (Source :in
out
Bounded_String; From :in
Positive; Through :in
Natural); -- String selector subprogramsfunction
Trim (Source :in
Bounded_String; Side :in
Trim_End)return
Bounded_String;procedure
Trim (Source :in
out
Bounded_String; Side :in
Trim_End);function
Trim (Source :in
Bounded_String; Left :in
Maps.Character_Set; Right :in
Maps.Character_Set)return
Bounded_String;procedure
Trim (Source :in
out
Bounded_String; Left :in
Maps.Character_Set; Right :in
Maps.Character_Set);function
Head (Source :in
Bounded_String; Count :in
Natural; Pad :in
Character := Space; Drop :in
Truncation := Error)return
Bounded_String;procedure
Head (Source :in
out
Bounded_String; Count :in
Natural; Pad :in
Character := Space; Drop :in
Truncation := Error);function
Tail (Source :in
Bounded_String; Count :in
Natural; Pad :in
Character := Space; Drop :in
Truncation := Error)return
Bounded_String;procedure
Tail (Source :in
out
Bounded_String; Count :in
Natural; Pad :in
Character := Space; Drop :in
Truncation := Error); -- String constructor subprogramsfunction
"*" (Left :in
Natural; Right :in
Character)return
Bounded_String;function
"*" (Left :in
Natural; Right :in
String)return
Bounded_String;function
"*" (Left :in
Natural; Right :in
Bounded_String)return
Bounded_String;function
Replicate (Count :in
Natural; Item :in
Character; Drop :in
Truncation := Error)return
Bounded_String;function
Replicate (Count :in
Natural; Item :in
String; Drop :in
Truncation := Error)return
Bounded_String;function
Replicate (Count :in
Natural; Item :in
Bounded_String; Drop :in
Truncation := Error)return
Bounded_String;private
type
Bounded_Stringis
null
record
; Null_Bounded_String :constant
Bounded_String := (null
record
);end
Generic_Bounded_Length;end
Ada.Strings.Bounded;
See also
editWikibook
editExternal examples
edit- Search for examples of
Ada.Strings.Bounded
in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook. - Search for posts related to
Ada.Strings.Bounded
in: Stack Overflow, comp.lang.ada or any Ada related page.
Ada Reference Manual
editAda 95
editAda 2005
editAda 2012
editOpen-Source Implementations
editFSF GNAT
- Specification: a-strbou.ads
- Body: a-strbou.adb
drake
- Specification: strings/a-strbou.ads