----------------------------------------------------------------------------- -- -- Copyright 2004, 2006 Björn Persson. -- -- This library is free software; you can redistribute it and/or modify it -- under the terms of the GNU General Public License, version 2, as published -- by the Free Software Foundation. -- -- As a special exception, if other files instantiate generics from this -- unit, or you link this unit with other files to produce an executable, -- this unit does not by itself cause the resulting executable to be covered -- by the General Public License. This exception does not however invalidate -- any other reasons why the executable file might be covered by the General -- Public License. -- ---------------------------------------------------------------------------- pragma License (Modified_Gpl); pragma Ada_2022; with Ada.Strings.Wide_Unbounded; use Ada.Strings.Wide_Unbounded; package AdaCL.EAstrings.UCS_2 is pragma Elaborate_Body; ---------------------------------------------------------- -- Conversion, Concatenation, and Selection Subprograms -- ---------------------------------------------------------- function To_EAstring (Source : in Wide_String) return EAstring; function To_EAstring (Source : in Unbounded_Wide_String) return EAstring; function To_Wide_String (Source : in EAstring) return Wide_String; function To_Unbounded_Wide_String (Source : in EAstring) return Unbounded_Wide_String; function "+" (Source : in Wide_String) return EAstring renames To_EAstring; function "+" (Source : in Unbounded_Wide_String) return EAstring renames To_EAstring; function "+" (Source : in EAstring) return Wide_String renames To_Wide_String; function "+" (Source : in EAstring) return Unbounded_Wide_String renames To_Unbounded_Wide_String; procedure Append (Source : in out EAstring; New_Item : in Wide_String); procedure Append (Source : in out EAstring; New_Item : in Unbounded_Wide_String); procedure Append (Source : in out EAstring; New_Item : in Wide_Character); function "&" (Left : in EAstring; Right : in Wide_String) return EAstring; function "&" (Left : in Wide_String; Right : in EAstring) return EAstring; function "&" (Left : in EAstring; Right : in Unbounded_Wide_String) return EAstring; function "&" (Left : in Unbounded_Wide_String; Right : in EAstring) return EAstring; function "&" (Left : in EAstring; Right : in Wide_Character) return EAstring; function "&" (Left : in Wide_Character; Right : in EAstring) return EAstring; function Element (Source : in EAstring; Index : in Positive) return Wide_Character; procedure Replace_Element (Source : in out EAstring; Index : in Positive; By : Wide_Character); function Slice (Source : in EAstring; Low : in Positive; High : in Natural) return Wide_String; function "=" (Left : in EAstring; Right : in Wide_String) return Boolean; function "=" (Left : in Wide_String; Right : in EAstring) return Boolean; ------------------------ -- Search Subprograms -- ------------------------ function Index (Source : in EAstring; Pattern : in Wide_String; Going : in Direction := Forward) -- Mapping : in Wide_Character_Mapping := Identity) to be added later return Natural; function Index (Source : in EAstring; Pattern : in Unbounded_Wide_String; Going : in Direction := Forward) -- Mapping : in Wide_Character_Mapping := Identity) to be added later return Natural; function Count (Source : in EAstring; Pattern : in Wide_String) -- Mapping : in Wide_Character_Mapping := Identity) to be added later return Natural; function Count (Source : in EAstring; Pattern : in Unbounded_Wide_String) -- Mapping : in Wide_Character_Mapping := Identity) to be added later return Natural; --------------------------------------- -- String Transformation Subprograms -- --------------------------------------- function Replace_Slice (Source : in EAstring; Low : in Positive; High : in Natural; By : in Wide_String) return EAstring; function Replace_Slice (Source : in EAstring; Low : in Positive; High : in Natural; By : in Unbounded_Wide_String) return EAstring; procedure Replace_Slice (Source : in out EAstring; Low : in Positive; High : in Natural; By : in Wide_String); procedure Replace_Slice (Source : in out EAstring; Low : in Positive; High : in Natural; By : in Unbounded_Wide_String); function Insert (Source : in EAstring; Before : in Positive; New_Item : in Wide_String) return EAstring; function Insert (Source : in EAstring; Before : in Positive; New_Item : in Unbounded_Wide_String) return EAstring; procedure Insert (Source : in out EAstring; Before : in Positive; New_Item : in Wide_String); procedure Insert (Source : in out EAstring; Before : in Positive; New_Item : in Unbounded_Wide_String); function Overwrite (Source : in EAstring; Position : in Positive; New_Item : in Wide_String) return EAstring; function Overwrite (Source : in EAstring; Position : in Positive; New_Item : in Unbounded_Wide_String) return EAstring; procedure Overwrite (Source : in out EAstring; Position : in Positive; New_Item : in Wide_String); procedure Overwrite (Source : in out EAstring; Position : in Positive; New_Item : in Unbounded_Wide_String); function "*" (Left : in Natural; Right : in Wide_String) return EAstring; function "*" (Left : in Natural; Right : in Unbounded_Wide_String) return EAstring; function "*" (Left : in Natural; Right : in Wide_Character) return EAstring; end AdaCL.EAstrings.UCS_2;