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