Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/libgnat/a-zchhan.adb @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ------------------------------------------------------------------------------ | |
2 -- -- | |
3 -- GNAT RUN-TIME COMPONENTS -- | |
4 -- -- | |
5 -- A D A . W I D E _ W I D E _ C H A R A C T E R S . H A N D L I N G -- | |
6 -- -- | |
7 -- B o d y -- | |
8 -- -- | |
9 -- Copyright (C) 2010-2017, 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 with Ada.Wide_Wide_Characters.Unicode; use Ada.Wide_Wide_Characters.Unicode; | |
33 | |
34 package body Ada.Wide_Wide_Characters.Handling is | |
35 | |
36 --------------------- | |
37 -- Is_Alphanumeric -- | |
38 --------------------- | |
39 | |
40 function Is_Alphanumeric (Item : Wide_Wide_Character) return Boolean is | |
41 begin | |
42 return Is_Letter (Item) or else Is_Digit (Item); | |
43 end Is_Alphanumeric; | |
44 | |
45 ---------------- | |
46 -- Is_Control -- | |
47 ---------------- | |
48 | |
49 function Is_Control (Item : Wide_Wide_Character) return Boolean is | |
50 begin | |
51 return Get_Category (Item) = Cc; | |
52 end Is_Control; | |
53 | |
54 -------------- | |
55 -- Is_Digit -- | |
56 -------------- | |
57 | |
58 function Is_Digit (Item : Wide_Wide_Character) return Boolean | |
59 renames Ada.Wide_Wide_Characters.Unicode.Is_Digit; | |
60 | |
61 ---------------- | |
62 -- Is_Graphic -- | |
63 ---------------- | |
64 | |
65 function Is_Graphic (Item : Wide_Wide_Character) return Boolean is | |
66 begin | |
67 return not Is_Non_Graphic (Item); | |
68 end Is_Graphic; | |
69 | |
70 -------------------------- | |
71 -- Is_Hexadecimal_Digit -- | |
72 -------------------------- | |
73 | |
74 function Is_Hexadecimal_Digit (Item : Wide_Wide_Character) return Boolean is | |
75 begin | |
76 return Is_Digit (Item) | |
77 or else Item in 'A' .. 'F' | |
78 or else Item in 'a' .. 'f'; | |
79 end Is_Hexadecimal_Digit; | |
80 | |
81 --------------- | |
82 -- Is_Letter -- | |
83 --------------- | |
84 | |
85 function Is_Letter (Item : Wide_Wide_Character) return Boolean | |
86 renames Ada.Wide_Wide_Characters.Unicode.Is_Letter; | |
87 | |
88 ------------------------ | |
89 -- Is_Line_Terminator -- | |
90 ------------------------ | |
91 | |
92 function Is_Line_Terminator (Item : Wide_Wide_Character) return Boolean | |
93 renames Ada.Wide_Wide_Characters.Unicode.Is_Line_Terminator; | |
94 | |
95 -------------- | |
96 -- Is_Lower -- | |
97 -------------- | |
98 | |
99 function Is_Lower (Item : Wide_Wide_Character) return Boolean is | |
100 begin | |
101 return Get_Category (Item) = Ll; | |
102 end Is_Lower; | |
103 | |
104 ------------- | |
105 -- Is_Mark -- | |
106 ------------- | |
107 | |
108 function Is_Mark (Item : Wide_Wide_Character) return Boolean | |
109 renames Ada.Wide_Wide_Characters.Unicode.Is_Mark; | |
110 | |
111 --------------------- | |
112 -- Is_Other_Format -- | |
113 --------------------- | |
114 | |
115 function Is_Other_Format (Item : Wide_Wide_Character) return Boolean | |
116 renames Ada.Wide_Wide_Characters.Unicode.Is_Other; | |
117 | |
118 ------------------------------ | |
119 -- Is_Punctuation_Connector -- | |
120 ------------------------------ | |
121 | |
122 function Is_Punctuation_Connector | |
123 (Item : Wide_Wide_Character) return Boolean | |
124 renames Ada.Wide_Wide_Characters.Unicode.Is_Punctuation; | |
125 | |
126 -------------- | |
127 -- Is_Space -- | |
128 -------------- | |
129 | |
130 function Is_Space (Item : Wide_Wide_Character) return Boolean | |
131 renames Ada.Wide_Wide_Characters.Unicode.Is_Space; | |
132 | |
133 ---------------- | |
134 -- Is_Special -- | |
135 ---------------- | |
136 | |
137 function Is_Special (Item : Wide_Wide_Character) return Boolean is | |
138 begin | |
139 return Is_Graphic (Item) and then not Is_Alphanumeric (Item); | |
140 end Is_Special; | |
141 | |
142 -------------- | |
143 -- Is_Upper -- | |
144 -------------- | |
145 | |
146 function Is_Upper (Item : Wide_Wide_Character) return Boolean is | |
147 begin | |
148 return Get_Category (Item) = Lu; | |
149 end Is_Upper; | |
150 | |
151 -------------- | |
152 -- To_Lower -- | |
153 -------------- | |
154 | |
155 function To_Lower (Item : Wide_Wide_Character) return Wide_Wide_Character | |
156 renames Ada.Wide_Wide_Characters.Unicode.To_Lower_Case; | |
157 | |
158 function To_Lower (Item : Wide_Wide_String) return Wide_Wide_String is | |
159 Result : Wide_Wide_String (Item'Range); | |
160 | |
161 begin | |
162 for J in Result'Range loop | |
163 Result (J) := To_Lower (Item (J)); | |
164 end loop; | |
165 | |
166 return Result; | |
167 end To_Lower; | |
168 | |
169 -------------- | |
170 -- To_Upper -- | |
171 -------------- | |
172 | |
173 function To_Upper (Item : Wide_Wide_Character) return Wide_Wide_Character | |
174 renames Ada.Wide_Wide_Characters.Unicode.To_Upper_Case; | |
175 | |
176 function To_Upper (Item : Wide_Wide_String) return Wide_Wide_String is | |
177 Result : Wide_Wide_String (Item'Range); | |
178 | |
179 begin | |
180 for J in Result'Range loop | |
181 Result (J) := To_Upper (Item (J)); | |
182 end loop; | |
183 | |
184 return Result; | |
185 end To_Upper; | |
186 | |
187 end Ada.Wide_Wide_Characters.Handling; |