Next: , Previous: A.3.2, Up: A.3


A.3.3 The Package Characters.Latin_1

1
The package Characters.Latin_1 declares constants for characters in ISO 8859−1.

1.a

Reason: The constants for the ISO 646 characters could have been declared as renamings of objects declared in package ASCII, as opposed to explicit constants. The main reason for explicit constants was for consistency of style with the upper−half constants, and to avoid emphasizing the package ASCII.
Static Semantics

2
The library package Characters.Latin_1 has the following declaration:

3

     package Ada.Characters.Latin_1 is    pragma Pure(Latin_1);

4

     −− Control characters:{control character (a category of Character) [partial]} 

5

         NUL                  constant Character := Character'Val(0);
         SOH                  constant Character := Character'Val(1);
         STX                  constant Character := Character'Val(2);
         ETX                  constant Character := Character'Val(3);
         EOT                  constant Character := Character'Val(4);
         ENQ                  constant Character := Character'Val(5);
         ACK                  constant Character := Character'Val(6);
         BEL                  constant Character := Character'Val(7);
         BS                   constant Character := Character'Val(8);
         HT                   constant Character := Character'Val(9);
         LF                   constant Character := Character'Val(10);
         VT                   constant Character := Character'Val(11);
         FF                   constant Character := Character'Val(12);
         CR                   constant Character := Character'Val(13);
         SO                   constant Character := Character'Val(14);
         SI                   constant Character := Character'Val(15);

6

         DLE                  constant Character := Character'Val(16);
         DC1                  constant Character := Character'Val(17);
         DC2                  constant Character := Character'Val(18);
         DC3                  constant Character := Character'Val(19);
         DC4                  constant Character := Character'Val(20);
         NAK                  constant Character := Character'Val(21);
         SYN                  constant Character := Character'Val(22);
         ETB                  constant Character := Character'Val(23);
         CAN                  constant Character := Character'Val(24);
         EM                   constant Character := Character'Val(25);
         SUB                  constant Character := Character'Val(26);
         ESC                  constant Character := Character'Val(27);
         FS                   constant Character := Character'Val(28);
         GS                   constant Character := Character'Val(29);
         RS                   constant Character := Character'Val(30);
         US                   constant Character := Character'Val(31);

7

     −− ISO 646 graphic characters:

8

         Space                constant Character := ' ' −− Character'Val(32)
         Exclamation          constant Character := '!' −− Character'Val(33)
         Quotation            constant Character := '"' −− Character'Val(34)
         Number_Sign          constant Character := '#' −− Character'Val(35)
         Dollar_Sign          constant Character := '$' −− Character'Val(36)
         Percent_Sign         constant Character := '%' −− Character'Val(37)
         Ampersand            constant Character := '&' −− Character'Val(38)
         Apostrophe           constant Character := ''' −− Character'Val(39)
         Left_Parenthesis     constant Character := '(' −− Character'Val(40)
         Right_Parenthesis    constant Character := ')' −− Character'Val(41)
         Asterisk             constant Character := '*' −− Character'Val(42)
         Plus_Sign            constant Character := '+' −− Character'Val(43)
         Comma                constant Character := ',' −− Character'Val(44)
         Hyphen               constant Character := '−' −− Character'Val(45)
         Minus_Sign           Character renames Hyphen;
         Full_Stop            constant Character := '.' −− Character'Val(46)
         Solidus              constant Character := '/' −− Character'Val(47)

9

         −− Decimal digits '0' though '9' are at positions 48 through 57

10

         Colon                constant Character := ':' −− Character'Val(58)
         Semicolon            constant Character := ';' −− Character'Val(59)
         Less_Than_Sign       constant Character := '<' −− Character'Val(60)
         Equals_Sign          constant Character := '=' −− Character'Val(61)
         Greater_Than_Sign    constant Character := '>' −− Character'Val(62)
         Question             constant Character := '?' −− Character'Val(63)
         Commercial_At        constant Character := '@' −− Character'Val(64)

11

         −− Letters 'A' through 'Z' are at positions 65 through 90

12

         Left_Square_Bracket  constant Character := '[' −− Character'Val(91)
         Reverse_Solidus      constant Character := '\' −− Character'Val(92)
         Right_Square_Bracket constant Character := ']' −− Character'Val(93)
         Circumflex           constant Character := '^' −− Character'Val(94)
         Low_Line             constant Character := '_' −− Character'Val(95)

13

         Grave                constant Character := '`' −− Character'Val(96)
         LC_A                 constant Character := 'a' −− Character'Val(97)
         LC_B                 constant Character := 'b' −− Character'Val(98)
         LC_C                 constant Character := 'c' −− Character'Val(99)
         LC_D                 constant Character := 'd' −− Character'Val(100)
         LC_E                 constant Character := 'e' −− Character'Val(101)
         LC_F                 constant Character := 'f' −− Character'Val(102)
         LC_G                 constant Character := 'g' −− Character'Val(103)
         LC_H                 constant Character := 'h' −− Character'Val(104)
         LC_I                 constant Character := 'i' −− Character'Val(105)
         LC_J                 constant Character := 'j' −− Character'Val(106)
         LC_K                 constant Character := 'k' −− Character'Val(107)
         LC_L                 constant Character := 'l' −− Character'Val(108)
         LC_M                 constant Character := 'm' −− Character'Val(109)
         LC_N                 constant Character := 'n' −− Character'Val(110)
         LC_O                 constant Character := 'o' −− Character'Val(111)

14

         LC_P                 constant Character := 'p' −− Character'Val(112)
         LC_Q                 constant Character := 'q' −− Character'Val(113)
         LC_R                 constant Character := 'r' −− Character'Val(114)
         LC_S                 constant Character := 's' −− Character'Val(115)
         LC_T                 constant Character := 't' −− Character'Val(116)
         LC_U                 constant Character := 'u' −− Character'Val(117)
         LC_V                 constant Character := 'v' −− Character'Val(118)
         LC_W                 constant Character := 'w' −− Character'Val(119)
         LC_X                 constant Character := 'x' −− Character'Val(120)
         LC_Y                 constant Character := 'y' −− Character'Val(121)
         LC_Z                 constant Character := 'z' −− Character'Val(122)
         Left_Curly_Bracket   constant Character := '{' −− Character'Val(123)
         Vertical_Line        constant Character := '|' −− Character'Val(124)
         Right_Curly_Bracket  constant Character := '}' −− Character'Val(125)
         Tilde                constant Character := '~' −− Character'Val(126)
         DEL                  constant Character := Character'Val(127);

15

     −− ISO 6429 control characters:{control character (a category of Character) [partial]} 

16

         IS4                  Character renames FS;
         IS3                  Character renames GS;
         IS2                  Character renames RS;
         IS1                  Character renames US;

17

         Reserved_128         constant Character := Character'Val(128);
         Reserved_129         constant Character := Character'Val(129);
         BPH                  constant Character := Character'Val(130);
         NBH                  constant Character := Character'Val(131);
         Reserved_132         constant Character := Character'Val(132);
         NEL                  constant Character := Character'Val(133);
         SSA                  constant Character := Character'Val(134);
         ESA                  constant Character := Character'Val(135);
         HTS                  constant Character := Character'Val(136);
         HTJ                  constant Character := Character'Val(137);
         VTS                  constant Character := Character'Val(138);
         PLD                  constant Character := Character'Val(139);
         PLU                  constant Character := Character'Val(140);
         RI                   constant Character := Character'Val(141);
         SS2                  constant Character := Character'Val(142);
         SS3                  constant Character := Character'Val(143);

18

         DCS                  constant Character := Character'Val(144);
         PU1                  constant Character := Character'Val(145);
         PU2                  constant Character := Character'Val(146);
         STS                  constant Character := Character'Val(147);
         CCH                  constant Character := Character'Val(148);
         MW                   constant Character := Character'Val(149);
         SPA                  constant Character := Character'Val(150);
         EPA                  constant Character := Character'Val(151);

19

         SOS                  constant Character := Character'Val(152);
         Reserved_153         constant Character := Character'Val(153);
         SCI                  constant Character := Character'Val(154);
         CSI                  constant Character := Character'Val(155);
         ST                   constant Character := Character'Val(156);
         OSC                  constant Character := Character'Val(157);
         PM                   constant Character := Character'Val(158);
         APC                  constant Character := Character'Val(159);

20

     −− Other graphic characters:

21

     −− Character positions 160 (16#A0#) .. 175 (16#AF#):
         No_Break_Space             constant Character := ' '−−Character'Val(160)
         NBSP                       Character renames No_Break_Space;
         Inverted_Exclamation       constant Character := '¡'−−Character'Val(161)
         Cent_Sign                  constant Character := '¢'−−Character'Val(162)
         Pound_Sign                 constant Character := '£'−−Character'Val(163)
         Currency_Sign              constant Character := '¤'−−Character'Val(164)
         Yen_Sign                   constant Character := '¥'−−Character'Val(165)
         Broken_Bar                 constant Character := '¦'−−Character'Val(166)
         Section_Sign               constant Character := '§'−−Character'Val(167)
         Diaeresis                  constant Character := '¨'−−Character'Val(168)
         Copyright_Sign             constant Character := '©'−−Character'Val(169)
         Feminine_Ordinal_Indicator constant Character := 'ª'−−Character'Val(170)
         Left_Angle_Quotation       constant Character := '«'−−Character'Val(171)
         Not_Sign                   constant Character := '¬'−−Character'Val(172)
         Soft_Hyphen                constant Character := '­'−−Character'Val(173)
         Registered_Trade_Mark_Sign constant Character := '®'−−Character'Val(174)
         Macron                     constant Character := '¯'−−Character'Val(175)

22

     −− Character positions 176 (16#B0#) .. 191 (16#BF#):
         Degree_Sign                constant Character := '°'−−Character'Val(176)
         Ring_Above                 Character renames Degree_Sign;
         Plus_Minus_Sign            constant Character := '±'−−Character'Val(177)
         Superscript_Two            constant Character := '²'−−Character'Val(178)
         Superscript_Three          constant Character := '³'−−Character'Val(179)
         Acute                      constant Character := '´'−−Character'Val(180)
         Micro_Sign                 constant Character := 'µ'−−Character'Val(181)
         Pilcrow_Sign               constant Character := '¶'−−Character'Val(182)
         Paragraph_Sign             Character renames Pilcrow_Sign;
         Middle_Dot                 constant Character := '·'−−Character'Val(183)
         Cedilla                    constant Character := '¸'−−Character'Val(184)
         Superscript_One            constant Character := '¹'−−Character'Val(185)
         Masculine_Ordinal_Indicator: constant Character := 'º'−−Character'Val(186)
         Right_Angle_Quotation      constant Character := '»'−−Character'Val(187)
         Fraction_One_Quarter       constant Character := '¼'−−Character'Val(188)
         Fraction_One_Half          constant Character := '½'−−Character'Val(189)
         Fraction_Three_Quarters    constant Character := '¾'−−Character'Val(190)
         Inverted_Question          constant Character := '¿'−−Character'Val(191)

23

     −− Character positions 192 (16#C0#) .. 207 (16#CF#):
         UC_A_Grave                 constant Character := 'À'−−Character'Val(192)
         UC_A_Acute                 constant Character := 'Á'−−Character'Val(193)
         UC_A_Circumflex            constant Character := 'Â'−−Character'Val(194)
         UC_A_Tilde                 constant Character := 'Ã'−−Character'Val(195)
         UC_A_Diaeresis             constant Character := 'Ä'−−Character'Val(196)
         UC_A_Ring                  constant Character := 'Å'−−Character'Val(197)
         UC_AE_Diphthong            constant Character := 'Æ'−−Character'Val(198)
         UC_C_Cedilla               constant Character := 'Ç'−−Character'Val(199)
         UC_E_Grave                 constant Character := 'È'−−Character'Val(200)
         UC_E_Acute                 constant Character := 'É'−−Character'Val(201)
         UC_E_Circumflex            constant Character := 'Ê'−−Character'Val(202)
         UC_E_Diaeresis             constant Character := 'Ë'−−Character'Val(203)
         UC_I_Grave                 constant Character := 'Ì'−−Character'Val(204)
         UC_I_Acute                 constant Character := 'Í'−−Character'Val(205)
         UC_I_Circumflex            constant Character := 'Î'−−Character'Val(206)
         UC_I_Diaeresis             constant Character := 'Ï'−−Character'Val(207)

24

     −− Character positions 208 (16#D0#) .. 223 (16#DF#):
         UC_Icelandic_Eth           constant Character := 'Ð'−−Character'Val(208)
         UC_N_Tilde                 constant Character := 'Ñ'−−Character'Val(209)
         UC_O_Grave                 constant Character := 'Ò'−−Character'Val(210)
         UC_O_Acute                 constant Character := 'Ó'−−Character'Val(211)
         UC_O_Circumflex            constant Character := 'Ô'−−Character'Val(212)
         UC_O_Tilde                 constant Character := 'Õ'−−Character'Val(213)
         UC_O_Diaeresis             constant Character := 'Ö'−−Character'Val(214)
         Multiplication_Sign        constant Character := '×'−−Character'Val(215)
         UC_O_Oblique_Stroke        constant Character := 'Ø'−−Character'Val(216)
         UC_U_Grave                 constant Character := 'Ù'−−Character'Val(217)
         UC_U_Acute                 constant Character := 'Ú'−−Character'Val(218)
         UC_U_Circumflex            constant Character := 'Û'−−Character'Val(219)
         UC_U_Diaeresis             constant Character := 'Ü'−−Character'Val(220)
         UC_Y_Acute                 constant Character := 'Ý'−−Character'Val(221)
         UC_Icelandic_Thorn         constant Character := 'Þ'−−Character'Val(222)
         LC_German_Sharp_S          constant Character := 'ß'−−Character'Val(223)

25

     −− Character positions 224 (16#E0#) .. 239 (16#EF#):
         LC_A_Grave                 constant Character := 'à'−−Character'Val(224)
         LC_A_Acute                 constant Character := 'á'−−Character'Val(225)
         LC_A_Circumflex            constant Character := 'â'−−Character'Val(226)
         LC_A_Tilde                 constant Character := 'ã'−−Character'Val(227)
         LC_A_Diaeresis             constant Character := 'ä'−−Character'Val(228)
         LC_A_Ring                  constant Character := 'å'−−Character'Val(229)
         LC_AE_Diphthong            constant Character := 'æ'−−Character'Val(230)
         LC_C_Cedilla               constant Character := 'ç'−−Character'Val(231)
         LC_E_Grave                 constant Character := 'è'−−Character'Val(232)
         LC_E_Acute                 constant Character := 'é'−−Character'Val(233)
         LC_E_Circumflex            constant Character := 'ê'−−Character'Val(234)
         LC_E_Diaeresis             constant Character := 'ë'−−Character'Val(235)
         LC_I_Grave                 constant Character := 'ì'−−Character'Val(236)
         LC_I_Acute                 constant Character := 'í'−−Character'Val(237)
         LC_I_Circumflex            constant Character := 'î'−−Character'Val(238)
         LC_I_Diaeresis             constant Character := 'ï'−−Character'Val(239)

26

     −− Character positions 240 (16#F0#) .. 255 (16#FF#):
         LC_Icelandic_Eth           constant Character := 'ð'−−Character'Val(240)
         LC_N_Tilde                 constant Character := 'ñ'−−Character'Val(241)
         LC_O_Grave                 constant Character := 'ò'−−Character'Val(242)
         LC_O_Acute                 constant Character := 'ó'−−Character'Val(243)
         LC_O_Circumflex            constant Character := 'ô'−−Character'Val(244)
         LC_O_Tilde                 constant Character := 'õ'−−Character'Val(245)
         LC_O_Diaeresis             constant Character := 'ö'−−Character'Val(246)
         Division_Sign              constant Character := '÷'−−Character'Val(247)
         LC_O_Oblique_Stroke        constant Character := 'ø'−−Character'Val(248)
         LC_U_Grave                 constant Character := 'ù'−−Character'Val(249)
         LC_U_Acute                 constant Character := 'ú'−−Character'Val(250)
         LC_U_Circumflex            constant Character := 'û'−−Character'Val(251)
         LC_U_Diaeresis             constant Character := 'ü'−−Character'Val(252)
         LC_Y_Acute                 constant Character := 'ý'−−Character'Val(253)
         LC_Icelandic_Thorn         constant Character := 'þ'−−Character'Val(254)
         LC_Y_Diaeresis             constant Character := 'ÿ'−−Character'Val(255)
     end Ada.Characters.Latin_1;
Implementation Permissions

27
An implementation may provide additional packages as children of Ada.Characters, to declare names for the symbols of the local character set or other character sets.