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