File : a-chlat9.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT RUN-TIME COMPONENTS                         --
   4 --                                                                          --
   5 --               A D A . C H A R A C T E R S . L A T I N _ 9                --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 --          Copyright (C) 2002-2009, Free Software Foundation, Inc.         --
  10 --                                                                          --
  11 -- This specification is derived from the Ada Reference Manual for use with --
  12 -- GNAT. The copyright notice above, and the license provisions that follow --
  13 -- apply solely to the modifications made to Ada.Characters.Latin_1,  noted --
  14 -- in the text, to derive the equivalent Latin-9 package.                   --
  15 --                                                                          --
  16 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  17 -- terms of the  GNU General Public License as published  by the Free Soft- --
  18 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
  19 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  20 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  21 -- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
  22 --                                                                          --
  23 --                                                                          --
  24 --                                                                          --
  25 --                                                                          --
  26 --                                                                          --
  27 -- You should have received a copy of the GNU General Public License and    --
  28 -- a copy of the GCC Runtime Library Exception along with this program;     --
  29 -- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
  30 -- <http://www.gnu.org/licenses/>.                                          --
  31 --                                                                          --
  32 -- GNAT was originally developed  by the GNAT team at  New York University. --
  33 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  34 --                                                                          --
  35 ------------------------------------------------------------------------------
  36 
  37 --  This package provides definitions for Latin-9 (ISO-8859-15) analogous to
  38 --  those defined in the standard package Ada.Characters.Latin_1 for Latin-1.
  39 
  40 package Ada.Characters.Latin_9 is
  41    pragma Pure;
  42 
  43    ------------------------
  44    -- Control Characters --
  45    ------------------------
  46 
  47    NUL                  : constant Character := Character'Val (0);
  48    SOH                  : constant Character := Character'Val (1);
  49    STX                  : constant Character := Character'Val (2);
  50    ETX                  : constant Character := Character'Val (3);
  51    EOT                  : constant Character := Character'Val (4);
  52    ENQ                  : constant Character := Character'Val (5);
  53    ACK                  : constant Character := Character'Val (6);
  54    BEL                  : constant Character := Character'Val (7);
  55    BS                   : constant Character := Character'Val (8);
  56    HT                   : constant Character := Character'Val (9);
  57    LF                   : constant Character := Character'Val (10);
  58    VT                   : constant Character := Character'Val (11);
  59    FF                   : constant Character := Character'Val (12);
  60    CR                   : constant Character := Character'Val (13);
  61    SO                   : constant Character := Character'Val (14);
  62    SI                   : constant Character := Character'Val (15);
  63 
  64    DLE                  : constant Character := Character'Val (16);
  65    DC1                  : constant Character := Character'Val (17);
  66    DC2                  : constant Character := Character'Val (18);
  67    DC3                  : constant Character := Character'Val (19);
  68    DC4                  : constant Character := Character'Val (20);
  69    NAK                  : constant Character := Character'Val (21);
  70    SYN                  : constant Character := Character'Val (22);
  71    ETB                  : constant Character := Character'Val (23);
  72    CAN                  : constant Character := Character'Val (24);
  73    EM                   : constant Character := Character'Val (25);
  74    SUB                  : constant Character := Character'Val (26);
  75    ESC                  : constant Character := Character'Val (27);
  76    FS                   : constant Character := Character'Val (28);
  77    GS                   : constant Character := Character'Val (29);
  78    RS                   : constant Character := Character'Val (30);
  79    US                   : constant Character := Character'Val (31);
  80 
  81    --------------------------------
  82    -- ISO 646 Graphic Characters --
  83    --------------------------------
  84 
  85    Space                : constant Character := ' ';  -- Character'Val(32)
  86    Exclamation          : constant Character := '!';  -- Character'Val(33)
  87    Quotation            : constant Character := '"';  -- Character'Val(34)
  88    Number_Sign          : constant Character := '#';  -- Character'Val(35)
  89    Dollar_Sign          : constant Character := '$';  -- Character'Val(36)
  90    Percent_Sign         : constant Character := '%';  -- Character'Val(37)
  91    Ampersand            : constant Character := '&';  -- Character'Val(38)
  92    Apostrophe           : constant Character := ''';  -- Character'Val(39)
  93    Left_Parenthesis     : constant Character := '(';  -- Character'Val(40)
  94    Right_Parenthesis    : constant Character := ')';  -- Character'Val(41)
  95    Asterisk             : constant Character := '*';  -- Character'Val(42)
  96    Plus_Sign            : constant Character := '+';  -- Character'Val(43)
  97    Comma                : constant Character := ',';  -- Character'Val(44)
  98    Hyphen               : constant Character := '-';  -- Character'Val(45)
  99    Minus_Sign           : Character renames Hyphen;
 100    Full_Stop            : constant Character := '.';  -- Character'Val(46)
 101    Solidus              : constant Character := '/';  -- Character'Val(47)
 102 
 103    --  Decimal digits '0' though '9' are at positions 48 through 57
 104 
 105    Colon                : constant Character := ':';  -- Character'Val(58)
 106    Semicolon            : constant Character := ';';  -- Character'Val(59)
 107    Less_Than_Sign       : constant Character := '<';  -- Character'Val(60)
 108    Equals_Sign          : constant Character := '=';  -- Character'Val(61)
 109    Greater_Than_Sign    : constant Character := '>';  -- Character'Val(62)
 110    Question             : constant Character := '?';  -- Character'Val(63)
 111 
 112    Commercial_At        : constant Character := '@';  -- Character'Val(64)
 113 
 114    --  Letters 'A' through 'Z' are at positions 65 through 90
 115 
 116    Left_Square_Bracket  : constant Character := '[';  -- Character'Val (91)
 117    Reverse_Solidus      : constant Character := '\';  -- Character'Val (92)
 118    Right_Square_Bracket : constant Character := ']';  -- Character'Val (93)
 119    Circumflex           : constant Character := '^';  -- Character'Val (94)
 120    Low_Line             : constant Character := '_';  -- Character'Val (95)
 121 
 122    Grave                : constant Character := '`';  -- Character'Val (96)
 123    LC_A                 : constant Character := 'a';  -- Character'Val (97)
 124    LC_B                 : constant Character := 'b';  -- Character'Val (98)
 125    LC_C                 : constant Character := 'c';  -- Character'Val (99)
 126    LC_D                 : constant Character := 'd';  -- Character'Val (100)
 127    LC_E                 : constant Character := 'e';  -- Character'Val (101)
 128    LC_F                 : constant Character := 'f';  -- Character'Val (102)
 129    LC_G                 : constant Character := 'g';  -- Character'Val (103)
 130    LC_H                 : constant Character := 'h';  -- Character'Val (104)
 131    LC_I                 : constant Character := 'i';  -- Character'Val (105)
 132    LC_J                 : constant Character := 'j';  -- Character'Val (106)
 133    LC_K                 : constant Character := 'k';  -- Character'Val (107)
 134    LC_L                 : constant Character := 'l';  -- Character'Val (108)
 135    LC_M                 : constant Character := 'm';  -- Character'Val (109)
 136    LC_N                 : constant Character := 'n';  -- Character'Val (110)
 137    LC_O                 : constant Character := 'o';  -- Character'Val (111)
 138    LC_P                 : constant Character := 'p';  -- Character'Val (112)
 139    LC_Q                 : constant Character := 'q';  -- Character'Val (113)
 140    LC_R                 : constant Character := 'r';  -- Character'Val (114)
 141    LC_S                 : constant Character := 's';  -- Character'Val (115)
 142    LC_T                 : constant Character := 't';  -- Character'Val (116)
 143    LC_U                 : constant Character := 'u';  -- Character'Val (117)
 144    LC_V                 : constant Character := 'v';  -- Character'Val (118)
 145    LC_W                 : constant Character := 'w';  -- Character'Val (119)
 146    LC_X                 : constant Character := 'x';  -- Character'Val (120)
 147    LC_Y                 : constant Character := 'y';  -- Character'Val (121)
 148    LC_Z                 : constant Character := 'z';  -- Character'Val (122)
 149    Left_Curly_Bracket   : constant Character := '{';  -- Character'Val (123)
 150    Vertical_Line        : constant Character := '|';  -- Character'Val (124)
 151    Right_Curly_Bracket  : constant Character := '}';  -- Character'Val (125)
 152    Tilde                : constant Character := '~';  -- Character'Val (126)
 153    DEL                  : constant Character := Character'Val (127);
 154 
 155    ---------------------------------
 156    -- ISO 6429 Control Characters --
 157    ---------------------------------
 158 
 159    IS4 : Character renames FS;
 160    IS3 : Character renames GS;
 161    IS2 : Character renames RS;
 162    IS1 : Character renames US;
 163 
 164    Reserved_128         : constant Character := Character'Val (128);
 165    Reserved_129         : constant Character := Character'Val (129);
 166    BPH                  : constant Character := Character'Val (130);
 167    NBH                  : constant Character := Character'Val (131);
 168    Reserved_132         : constant Character := Character'Val (132);
 169    NEL                  : constant Character := Character'Val (133);
 170    SSA                  : constant Character := Character'Val (134);
 171    ESA                  : constant Character := Character'Val (135);
 172    HTS                  : constant Character := Character'Val (136);
 173    HTJ                  : constant Character := Character'Val (137);
 174    VTS                  : constant Character := Character'Val (138);
 175    PLD                  : constant Character := Character'Val (139);
 176    PLU                  : constant Character := Character'Val (140);
 177    RI                   : constant Character := Character'Val (141);
 178    SS2                  : constant Character := Character'Val (142);
 179    SS3                  : constant Character := Character'Val (143);
 180 
 181    DCS                  : constant Character := Character'Val (144);
 182    PU1                  : constant Character := Character'Val (145);
 183    PU2                  : constant Character := Character'Val (146);
 184    STS                  : constant Character := Character'Val (147);
 185    CCH                  : constant Character := Character'Val (148);
 186    MW                   : constant Character := Character'Val (149);
 187    SPA                  : constant Character := Character'Val (150);
 188    EPA                  : constant Character := Character'Val (151);
 189 
 190    SOS                  : constant Character := Character'Val (152);
 191    Reserved_153         : constant Character := Character'Val (153);
 192    SCI                  : constant Character := Character'Val (154);
 193    CSI                  : constant Character := Character'Val (155);
 194    ST                   : constant Character := Character'Val (156);
 195    OSC                  : constant Character := Character'Val (157);
 196    PM                   : constant Character := Character'Val (158);
 197    APC                  : constant Character := Character'Val (159);
 198 
 199    ------------------------------
 200    -- Other Graphic Characters --
 201    ------------------------------
 202 
 203    --  Character positions 160 (16#A0#) .. 175 (16#AF#)
 204 
 205    No_Break_Space              : constant Character := Character'Val (160);
 206    NBSP                        : Character renames No_Break_Space;
 207    Inverted_Exclamation        : constant Character := Character'Val (161);
 208    Cent_Sign                   : constant Character := Character'Val (162);
 209    Pound_Sign                  : constant Character := Character'Val (163);
 210    Euro_Sign                   : constant Character := Character'Val (164);
 211    Yen_Sign                    : constant Character := Character'Val (165);
 212    UC_S_Caron                  : constant Character := Character'Val (166);
 213    Section_Sign                : constant Character := Character'Val (167);
 214    LC_S_Caron                  : constant Character := Character'Val (168);
 215    Copyright_Sign              : constant Character := Character'Val (169);
 216    Feminine_Ordinal_Indicator  : constant Character := Character'Val (170);
 217    Left_Angle_Quotation        : constant Character := Character'Val (171);
 218    Not_Sign                    : constant Character := Character'Val (172);
 219    Soft_Hyphen                 : constant Character := Character'Val (173);
 220    Registered_Trade_Mark_Sign  : constant Character := Character'Val (174);
 221    Macron                      : constant Character := Character'Val (175);
 222 
 223    --  Character positions 176 (16#B0#) .. 191 (16#BF#)
 224 
 225    Degree_Sign                 : constant Character := Character'Val (176);
 226    Ring_Above                  : Character renames Degree_Sign;
 227    Plus_Minus_Sign             : constant Character := Character'Val (177);
 228    Superscript_Two             : constant Character := Character'Val (178);
 229    Superscript_Three           : constant Character := Character'Val (179);
 230    UC_Z_Caron                  : constant Character := Character'Val (180);
 231    Micro_Sign                  : constant Character := Character'Val (181);
 232    Pilcrow_Sign                : constant Character := Character'Val (182);
 233    Paragraph_Sign              : Character renames Pilcrow_Sign;
 234    Middle_Dot                  : constant Character := Character'Val (183);
 235    LC_Z_Caron                  : constant Character := Character'Val (184);
 236    Superscript_One             : constant Character := Character'Val (185);
 237    Masculine_Ordinal_Indicator : constant Character := Character'Val (186);
 238    Right_Angle_Quotation       : constant Character := Character'Val (187);
 239    UC_Ligature_OE              : constant Character := Character'Val (188);
 240    LC_Ligature_OE              : constant Character := Character'Val (189);
 241    UC_Y_Diaeresis              : constant Character := Character'Val (190);
 242    Inverted_Question           : constant Character := Character'Val (191);
 243 
 244    --  Character positions 192 (16#C0#) .. 207 (16#CF#)
 245 
 246    UC_A_Grave                  : constant Character := Character'Val (192);
 247    UC_A_Acute                  : constant Character := Character'Val (193);
 248    UC_A_Circumflex             : constant Character := Character'Val (194);
 249    UC_A_Tilde                  : constant Character := Character'Val (195);
 250    UC_A_Diaeresis              : constant Character := Character'Val (196);
 251    UC_A_Ring                   : constant Character := Character'Val (197);
 252    UC_AE_Diphthong             : constant Character := Character'Val (198);
 253    UC_C_Cedilla                : constant Character := Character'Val (199);
 254    UC_E_Grave                  : constant Character := Character'Val (200);
 255    UC_E_Acute                  : constant Character := Character'Val (201);
 256    UC_E_Circumflex             : constant Character := Character'Val (202);
 257    UC_E_Diaeresis              : constant Character := Character'Val (203);
 258    UC_I_Grave                  : constant Character := Character'Val (204);
 259    UC_I_Acute                  : constant Character := Character'Val (205);
 260    UC_I_Circumflex             : constant Character := Character'Val (206);
 261    UC_I_Diaeresis              : constant Character := Character'Val (207);
 262 
 263    --  Character positions 208 (16#D0#) .. 223 (16#DF#)
 264 
 265    UC_Icelandic_Eth            : constant Character := Character'Val (208);
 266    UC_N_Tilde                  : constant Character := Character'Val (209);
 267    UC_O_Grave                  : constant Character := Character'Val (210);
 268    UC_O_Acute                  : constant Character := Character'Val (211);
 269    UC_O_Circumflex             : constant Character := Character'Val (212);
 270    UC_O_Tilde                  : constant Character := Character'Val (213);
 271    UC_O_Diaeresis              : constant Character := Character'Val (214);
 272    Multiplication_Sign         : constant Character := Character'Val (215);
 273    UC_O_Oblique_Stroke         : constant Character := Character'Val (216);
 274    UC_U_Grave                  : constant Character := Character'Val (217);
 275    UC_U_Acute                  : constant Character := Character'Val (218);
 276    UC_U_Circumflex             : constant Character := Character'Val (219);
 277    UC_U_Diaeresis              : constant Character := Character'Val (220);
 278    UC_Y_Acute                  : constant Character := Character'Val (221);
 279    UC_Icelandic_Thorn          : constant Character := Character'Val (222);
 280    LC_German_Sharp_S           : constant Character := Character'Val (223);
 281 
 282    --  Character positions 224 (16#E0#) .. 239 (16#EF#)
 283 
 284    LC_A_Grave                  : constant Character := Character'Val (224);
 285    LC_A_Acute                  : constant Character := Character'Val (225);
 286    LC_A_Circumflex             : constant Character := Character'Val (226);
 287    LC_A_Tilde                  : constant Character := Character'Val (227);
 288    LC_A_Diaeresis              : constant Character := Character'Val (228);
 289    LC_A_Ring                   : constant Character := Character'Val (229);
 290    LC_AE_Diphthong             : constant Character := Character'Val (230);
 291    LC_C_Cedilla                : constant Character := Character'Val (231);
 292    LC_E_Grave                  : constant Character := Character'Val (232);
 293    LC_E_Acute                  : constant Character := Character'Val (233);
 294    LC_E_Circumflex             : constant Character := Character'Val (234);
 295    LC_E_Diaeresis              : constant Character := Character'Val (235);
 296    LC_I_Grave                  : constant Character := Character'Val (236);
 297    LC_I_Acute                  : constant Character := Character'Val (237);
 298    LC_I_Circumflex             : constant Character := Character'Val (238);
 299    LC_I_Diaeresis              : constant Character := Character'Val (239);
 300 
 301    --  Character positions 240 (16#F0#) .. 255 (16#FF)
 302    LC_Icelandic_Eth            : constant Character := Character'Val (240);
 303    LC_N_Tilde                  : constant Character := Character'Val (241);
 304    LC_O_Grave                  : constant Character := Character'Val (242);
 305    LC_O_Acute                  : constant Character := Character'Val (243);
 306    LC_O_Circumflex             : constant Character := Character'Val (244);
 307    LC_O_Tilde                  : constant Character := Character'Val (245);
 308    LC_O_Diaeresis              : constant Character := Character'Val (246);
 309    Division_Sign               : constant Character := Character'Val (247);
 310    LC_O_Oblique_Stroke         : constant Character := Character'Val (248);
 311    LC_U_Grave                  : constant Character := Character'Val (249);
 312    LC_U_Acute                  : constant Character := Character'Val (250);
 313    LC_U_Circumflex             : constant Character := Character'Val (251);
 314    LC_U_Diaeresis              : constant Character := Character'Val (252);
 315    LC_Y_Acute                  : constant Character := Character'Val (253);
 316    LC_Icelandic_Thorn          : constant Character := Character'Val (254);
 317    LC_Y_Diaeresis              : constant Character := Character'Val (255);
 318 
 319    ------------------------------------------------
 320    -- Summary of Changes from Latin-1 => Latin-9 --
 321    ------------------------------------------------
 322 
 323    --   164     Currency                => Euro_Sign
 324    --   166     Broken_Bar              => UC_S_Caron
 325    --   168     Diaeresis               => LC_S_Caron
 326    --   180     Acute                   => UC_Z_Caron
 327    --   184     Cedilla                 => LC_Z_Caron
 328    --   188     Fraction_One_Quarter    => UC_Ligature_OE
 329    --   189     Fraction_One_Half       => LC_Ligature_OE
 330    --   190     Fraction_Three_Quarters => UC_Y_Diaeresis
 331 
 332 end Ada.Characters.Latin_9;