CVS difference for ai05s/ai05-0185-1.txt
--- ai05s/ai05-0185-1.txt 2009/11/03 02:04:55 1.1
+++ ai05s/ai05-0185-1.txt 2010/08/12 03:30:57 1.2
@@ -1,6 +1,8 @@
-!standard A.3.5 (0) 09-11-02 AI05-0185-1/01
+!standard A.3.5 (0) 10-08-11 AI05-0185-1/02
!standard A.3.6 (0)
!class amendment 09-11-02
+!status Amendment 2012 10-08-11
+!status ARG Approved 8-0-0 10-06-20
!status work item 09-11-02
!status received 09-11-02
!priority Medium
@@ -53,16 +55,15 @@
function Is_Control (Item : Wide_Character) return Boolean;
function Is_Letter (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Letter);
function Is_Lower (Item : Wide_Character) return Boolean;
function Is_Upper (Item : Wide_Character) return Boolean;
function Is_Digit (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Digit);
- function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+ function Is_Decimal_Digit (Item : Wide_Character) return Boolean
+ renames Is_Digit;
function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
@@ -71,20 +72,16 @@
function Is_Special (Item : Wide_Character) return Boolean;
function Is_Line_Terminator (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Line_Terminator);
function Is_Mark (Item : Wide_Character) return Boolean;
function Is_Other (Item : Wide_Character) return Boolean;
function Is_Punctuation (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Punctuation);
function Is_Space (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Space);
function Is_Graphic (Item : Wide_Character) return Boolean;
- pragma Inline (Is_Non_Graphic);
function To_Lower (Item : Wide_Character) return Wide_Character;
function To_Upper (Item : Wide_Character) return Wide_Character;
@@ -99,82 +96,78 @@
function Is_Control (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- other_control, otherwise returns false.
+ other_control, otherwise returns False.
function Is_Letter (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier,
- letter_other, or number_letter. Otherwise returns false.
+ letter_other, or number_letter. Otherwise returns False.
function Is_Lower (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- letter_lowercase, otherwise returns false.
+ letter_lowercase, otherwise returns False.
function Is_Upper (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- letter_uppercase, otherwise returns false.
+ letter_uppercase, otherwise returns False.
function Is_Digit (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- number_decimal, otherwise returns false.
-
- function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+ number_decimal, otherwise returns False.
- This function is a rename of Is_Digit.
-
function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
number_decimal, or is in the range 'A' .. 'F' or 'a' .. 'f', otherwise
- returns false.
+ returns False.
function Is_Alphanumeric (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier,
- letter_other, number_letter, or number_decimal. Otherwise returns false.
+ letter_other, number_letter, or number_decimal. Otherwise returns False.
function Is_Special (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
graphic_character, but not categorized as letter_uppercase,
letter_lowercase, letter_titlecase, letter_modifier, letter_other,
- number_letter, or number_decimal. Otherwise returns false.
+ number_letter, or number_decimal. Otherwise returns False.
function Is_Line_Terminator (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
separator_line or separator_paragraph, or if Item is a conventional line
- terminator character (CR, LF, VT, or FF). Otherwise returns false.
+ terminator character (CR, LF, VT, or FF). Otherwise returns False.
function Is_Mark (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- mark_non_spacing or mark_spacing_combining, otherwise returns false.
+ mark_non_spacing or mark_spacing_combining, otherwise returns False.
function Is_Other (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- other_format, otherwise returns false.
+ other_format, otherwise returns False.
function Is_Punctuation (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- punctuation_connector, otherwise returns false.
+ punctuation_connector, otherwise returns False.
function Is_Space (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- separator_space, otherwise returns false.
+ separator_space, otherwise returns False.
function Is_Graphic (Item : Wide_Character) return Boolean;
Returns True if the Wide_Character designated by Item is categorized as
- graphic_character, otherwise returns false.
+ graphic_character, otherwise returns False.
function To_Lower (Item : Wide_Character) return Wide_Character;
@@ -254,8 +247,195 @@
(See discussion.)
+!corrigendum A.3.5(0)
+
+@dinsc
+
+The package Wide_Characters.Handling provides operations for classifying
+Wide_Characters and case folding for Wide_Characters.
+
+@s8<@i<Static Semantics>>
+
+The library package Wide_Characters.Handling has the following declaration:
+
+@xcode<@b<package> Ada.Wide_Characters.Handling @b<is>
+
+ @b<function> Is_Control (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Letter (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Lower (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Upper (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Digit (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Decimal_Digit (Item : Wide_Character) @b<return> Boolean
+ @b<renames> Is_Digit;
+
+ @b<function> Is_Hexadecimal_Digit (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Alphanumeric (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Special (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Line_Terminator (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Mark (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Other (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Punctuation (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Space (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> Is_Graphic (Item : Wide_Character) @b<return> Boolean;
+
+ @b<function> To_Lower (Item : Wide_Character) @b<return> Wide_Character;
+ @b<function> To_Upper (Item : Wide_Character) @b<return> Wide_Character;
+
+ @b<function> To_Lower (Item : Wide_String) @b<return> Wide_String;
+ @b<function> To_Upper (Item : Wide_String) @b<return> Wide_String;
+
+@b<end> Ada.Wide_Characters.Handling;>
+
+The subprograms defined in Ada.Wide_Characters.Handling are locale independent.
+
+@xcode<@b<function> Is_Control (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<other_control>, otherwise returns False.>
+
+@xcode<@b<function> Is_Letter (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, @fa<letter_lowercase>, @fa<letter_titlecase>,
+@fa<letter_modifier>, @fa<letter_other>, or @fa<number_letter>. Otherwise
+returns False.>
+
+@xcode<@b<function> Is_Lower (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_lowercase>, otherwise returns False.>
+
+@xcode<@b<function> Is_Upper (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, otherwise returns False.>
+
+@xcode<@b<function> Is_Digit (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<number_decimal>, otherwise returns False.>
+
+@xcode<@b<function> Is_Hexadecimal_Digit (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<number_decimal>, or is in the range 'A' .. 'F' or 'a' .. 'f', otherwise
+returns False.>
+
+@xcode<@b<function> Is_Alphanumeric (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<letter_uppercase>, @fa<letter_lowercase>, @fa<letter_titlecase>,
+@fa<letter_modifier>, @fa<letter_other>, @fa<number_letter>, or
+@fa<number_decimal>. Otherwise returns False.>
+
+@xcode<@b<function> Is_Special (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<graphic_character>, but not categorized as @fa<letter_uppercase>,
+@fa<letter_lowercase>, @fa<letter_titlecase>, @fa<letter_modifier>,
+@fa<letter_other>, @fa<number_letter>, or number_decimal. Otherwise returns
+False.>
+
+@xcode<@b<function> Is_Line_Terminator (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<separator_line> or @fa<separator_paragraph>, or if Item is a conventional
+line terminator character (CR, LF, VT, or FF). Otherwise returns False.>
+
+@xcode<@b<function> Is_Mark (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<mark_non_spacing> or @fa<mark_spacing_combining>, otherwise returns False.>
+
+@xcode<@b<function> Is_Other (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<other_format>, otherwise returns False.>
+
+@xcode<@b<function> Is_Punctuation (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<punctuation_connector>, otherwise returns False.>
+
+@xcode<@b<function> Is_Space (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<separator_space>, otherwise returns False.>
+
+@xcode<@b<function> Is_Graphic (Item : Wide_Character) @b<return> Boolean;>
+
+@xindent<Returns True if the Wide_Character designated by Item is categorized as
+@fa<graphic_character>, otherwise returns False.>
+
+@xcode<@b<function> To_Lower (Item : Wide_Character) @b<return> Wide_Character;>
+
+@xindent<Returns the Simple Lowercase Mapping of the Wide_Character designated
+by Item. If the Simple Lowercase Mapping does not exist for the Wide_Character
+designated by Item, then the value of Item is returned.>
+
+@xcode<@b<function> To_Lower (Item : Wide_String) @b<return> Wide_String;>
+
+@xindent<Returns the result of applying the To_Lower Wide_Character to
+Wide_Character conversion to each element of the Wide_String designated by Item.
+The result is the null Wide_String if the value of the formal parameter is the
+null Wide_String.>
+
+@xcode<@b<function> To_Upper (Item : Wide_Character) @b<return> Wide_Character;>
+
+@xindent<Returns the Simple Uppercase Mapping of the Wide_Character designated
+by Item. If the Simple Uppercase Mapping does not exist for the Wide_Character
+designated by Item, then the value of Item is returned.>
+
+@xcode<@b<function> To_Upper (Item : Wide_String) @b<return> Wide_String;>
+
+@xindent<Returns the result of applying the To_Upper Wide_Character to
+Wide_Character conversion to each element of the Wide_String designated by Item.
+The result is the null Wide_String if the value of the formal parameter is the
+null Wide_String.>
+
+
+!corrigendum A.3.6(0)
+
+@dinsc
+
+The package Wide_Wide_Characters.Handling has the same contents as
+Wide_Character.Handling except that each occurrence of Wide_Character is
+replaced by Wide_Wide_Character, and each occurrence of Wide_String is replaced
+by Wide_Wide_String.
+
!ACATS test
+ACATS C-Tests should be constructed for these packages.
+
!appendix
+
+From: Randy Brukardt
+Sent: Wednesday, August 11, 2010 9:44 PM
+
+The text in this AI says:
+
+ function Is_Decimal_Digit (Item : Wide_Character) return Boolean;
+
+ This function is a rename of Is_Digit.
+
+We don't write this in English, we just do it when desired. That is, the
+specification ought to be:
+
+ function Is_Decimal_Digit (Item : Wide_Character) return Boolean renames Is_Digit;
+
+and the text description removed.
****************************************************************
Questions? Ask the ACAA Technical Agent