Mercurial > projects > dwt2
comparison java/src/java/lang/Character.d @ 21:9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Mar 2009 20:38:55 +0100 |
parents | 950d84783eac |
children |
comparison
equal
deleted
inserted
replaced
20:dccb717aa902 | 21:9b96950f2c3c |
---|---|
1 module java.lang.Character; | 1 module java.lang.Character; |
2 | 2 |
3 import java.lang.exceptions; | 3 import java.lang.exceptions; |
4 import java.lang.util; | 4 import java.lang.util; |
5 import tango.text.Unicode; | 5 |
6 version(Tango){ | |
7 static import tango.text.Unicode; | |
8 } else { // Phobos | |
9 static import std.utf; | |
10 static import std.uni; | |
11 static import std.ctype; | |
12 static import std.string; | |
13 } | |
6 | 14 |
7 class Character { | 15 class Character { |
8 public static bool isUpperCase( dchar c ){ | 16 public static bool isUpperCase( dchar c ){ |
9 implMissing( __FILE__, __LINE__); | 17 implMissing( __FILE__, __LINE__); |
10 return false; | 18 return false; |
11 } | 19 } |
12 public static dchar toUpperCase( wchar c ){ | 20 public static dchar toUpperCase( wchar c ){ |
13 wchar[1] src; | 21 version(Tango){ |
14 src[0] = c; | 22 wchar[1] src; |
15 dchar[1] buf; | 23 src[0] = c; |
16 uint ate; | 24 dchar[1] buf; |
17 dchar[] res = tango.text.convert.Utf.toString32( src, buf, &ate ); | 25 uint ate; |
18 dchar[] r = tango.text.Unicode.toUpper( res ); | 26 dchar[] darr = tango.text.convert.Utf.toString32( src, buf, &ate ); |
19 return r[0]; | 27 } else { // Phobos |
28 wchar[1] src; | |
29 src[0] = c; | |
30 auto darr = std.utf.toUTF32(src); | |
31 } | |
32 return toUpperCase( darr[0] ); | |
20 } | 33 } |
21 public static dchar toUpperCase( dchar c ){ | 34 public static dchar toUpperCase( dchar c ){ |
22 dchar[] r = tango.text.Unicode.toUpper( [c] ); | 35 version(Tango){ |
23 return r[0]; | 36 dchar[1] src; |
37 src[0] = c; | |
38 dchar[] r = tango.text.Unicode.toUpper( src ); | |
39 return r[0]; | |
40 } else { // Phobos | |
41 return std.uni.toUniUpper( c ); | |
42 } | |
24 } | 43 } |
25 public static dchar toLowerCase( wchar c ){ | 44 public static dchar toLowerCase( wchar c ){ |
26 wchar[1] src; | 45 version(Tango){ |
27 src[0] = c; | 46 wchar[1] src; |
28 dchar[1] buf; | 47 src[0] = c; |
29 uint ate; | 48 dchar[1] buf; |
30 dchar[] res = tango.text.convert.Utf.toString32( src, buf, &ate ); | 49 uint ate; |
31 dchar[] r = tango.text.Unicode.toLower( res ); | 50 dchar[] darr = tango.text.convert.Utf.toString32( src, buf, &ate ); |
32 return r[0]; | 51 } else { // Phobos |
52 wchar[1] src; | |
53 src[0] = c; | |
54 auto darr = std.utf.toUTF32(src); | |
55 } | |
56 return toLowerCase( darr[0] ); | |
33 } | 57 } |
34 public static dchar toLowerCase( dchar c ){ | 58 public static dchar toLowerCase( dchar c ){ |
35 dchar[] r = tango.text.Unicode.toLower( [c] ); | 59 version(Tango){ |
36 return r[0]; | 60 dchar[1] src; |
61 src[0] = c; | |
62 dchar[] r = tango.text.Unicode.toLower( src ); | |
63 return r[0]; | |
64 } else { // Phobos | |
65 return std.uni.toUniLower( c ); | |
66 } | |
37 } | 67 } |
38 public static bool isWhitespace( dchar c ){ | 68 public static bool isWhitespace( dchar c ){ |
39 return tango.text.Unicode.isWhitespace( c ); | 69 version(Tango){ |
70 return tango.text.Unicode.isWhitespace( c ); | |
71 } else { // Phobos | |
72 return std.string.iswhite(c); | |
73 } | |
40 } | 74 } |
41 public static bool isDigit( dchar c ){ | 75 public static bool isDigit( dchar c ){ |
42 return tango.text.Unicode.isDigit( c ); | 76 version(Tango){ |
77 return tango.text.Unicode.isDigit( c ); | |
78 } else { // Phobos | |
79 return cast(bool)std.ctype.isdigit(c); | |
80 } | |
43 } | 81 } |
44 public static bool isLetter( dchar c ){ | 82 public static bool isLetter( dchar c ){ |
45 return tango.text.Unicode.isLetter(c); | 83 version(Tango){ |
84 return tango.text.Unicode.isLetter(c); | |
85 } else { // Phobos | |
86 return cast(bool)std.ctype.isalpha(c); | |
87 } | |
46 } | 88 } |
47 public static bool isSpace( dchar c ){ | 89 public static bool isSpace( dchar c ){ |
48 return tango.text.Unicode.isSpace(c); | 90 version(Tango){ |
91 return tango.text.Unicode.isSpace(c); | |
92 } else { // Phobos | |
93 return cast(bool)std.ctype.isspace(c); | |
94 } | |
49 } | 95 } |
50 public static bool isWhiteSpace( dchar c ){ | 96 public static bool isWhiteSpace( dchar c ){ |
51 return tango.text.Unicode.isWhitespace(c); | 97 version(Tango){ |
98 return tango.text.Unicode.isWhitespace(c); | |
99 } else { // Phobos | |
100 return std.string.iswhite(c); | |
101 } | |
52 } | 102 } |
53 public static bool isLetterOrDigit( dchar c ){ | 103 public static bool isLetterOrDigit( dchar c ){ |
54 return isDigit(c) || isLetter(c); | 104 return isDigit(c) || isLetter(c); |
55 } | 105 } |
56 public static bool isUnicodeIdentifierPart(char ch){ | 106 public static bool isUnicodeIdentifierPart(char ch){ |
73 this( char c ){ | 123 this( char c ){ |
74 // must be correct for container storage | 124 // must be correct for container storage |
75 implMissing( __FILE__, __LINE__); | 125 implMissing( __FILE__, __LINE__); |
76 } | 126 } |
77 } | 127 } |
128 | |
129 bool CharacterIsDefined( dchar ch ){ | |
130 version(Tango){ | |
131 return (ch in tango.text.UnicodeData.unicodeData) !is null; | |
132 } else { // Phobos | |
133 implMissing( __FILE__, __LINE__); | |
134 return false; | |
135 } | |
136 } | |
137 | |
138 dchar CharacterFirstToLower( String str ){ | |
139 int consumed; | |
140 return CharacterFirstToLower( str, consumed ); | |
141 } | |
142 | |
143 dchar CharacterFirstToLower( String str, out int consumed ){ | |
144 version(Tango){ | |
145 dchar[1] buf; | |
146 buf[0] = firstCodePoint( str, consumed ); | |
147 dchar[] r = tango.text.Unicode.toLower( buf ); | |
148 return r[0]; | |
149 } else { // Phobos | |
150 implMissing( __FILE__, __LINE__); | |
151 return 0; | |
152 } | |
153 } | |
154 | |
155 dchar CharacterToLower( dchar c ){ | |
156 version(Tango){ | |
157 dchar[] r = tango.text.Unicode.toLower( [c] ); | |
158 return r[0]; | |
159 } else { // Phobos | |
160 implMissing( __FILE__, __LINE__); | |
161 return 0; | |
162 } | |
163 } | |
164 dchar CharacterToUpper( dchar c ){ | |
165 version(Tango){ | |
166 dchar[] r = tango.text.Unicode.toUpper( [c] ); | |
167 return r[0]; | |
168 } else { // Phobos | |
169 implMissing( __FILE__, __LINE__); | |
170 return 0; | |
171 } | |
172 } | |
173 bool CharacterIsWhitespace( dchar c ){ | |
174 version(Tango){ | |
175 return tango.text.Unicode.isWhitespace( c ); | |
176 } else { // Phobos | |
177 implMissing( __FILE__, __LINE__); | |
178 return false; | |
179 } | |
180 } | |
181 bool CharacterIsDigit( dchar c ){ | |
182 version(Tango){ | |
183 return tango.text.Unicode.isDigit( c ); | |
184 } else { // Phobos | |
185 implMissing( __FILE__, __LINE__); | |
186 return false; | |
187 } | |
188 } | |
189 bool CharacterIsLetter( dchar c ){ | |
190 version(Tango){ | |
191 return tango.text.Unicode.isLetter( c ); | |
192 } else { // Phobos | |
193 implMissing( __FILE__, __LINE__); | |
194 return false; | |
195 } | |
196 } | |
197 |