--- a/Character.st Mon Feb 20 14:26:43 2006 +0100
+++ b/Character.st Mon Feb 20 14:38:33 2006 +0100
@@ -40,21 +40,21 @@
This class represents characters.
Notice, that actual character objects are not used when characters
- are stored in strings, symbols etc;
+ are stored in strings, symbols etc;
these only store a character's asciiValue/codePoint for a more compact representation.
The word 'asciiValue' is a historic leftover - actually, any integer
code is allowed and actually used (i.e. characters are not limited to 8bit).
- Single byte Characters are unique; i.e. for every asciiValue (0..255) there exists exactly
- one instance of Character, which is shared
+ Single byte Characters are unique; i.e. for every asciiValue (0..255) there exists exactly
+ one instance of Character, which is shared
(Character value:xxx checks for this, and returns a reference to an existing instance).
- Other characters (i.e. asciivalue > 255) are not guaranteed to be shared;
+ Other characters (i.e. asciivalue > 255) are not guaranteed to be shared;
i.e. these might be created as required (actually, do NOT depend on which characters are and
which are not shared; always compare using #= if there is any chance of a non-ascii character
being involved.
-
+
This means: you may compare characters using #== ONLY IFF you are certain,
- that the characters ranges is 0..255.
+ that the characters ranges is 0..255.
Otherwise, you HAVE TO compare using #=. (if in doubt, always compare using #=).
Sorry for this inconvenience, but it is (practically) impossible to keep
the possible maximum of 2^32 characters (Unicode) around, for that convenience alone.
@@ -62,12 +62,12 @@
Methods marked as (JS) come from the manchester Character goody
(CharacterComparing) by Jan Steinman, which allow Characters to be used as
- Interval elements (i.e. ($a to:$z) do:[...] );
+ Interval elements (i.e. ($a to:$z) do:[...] );
They are not a big deal, but convenient add-ons.
Some of these have been modified a bit.
WARNING: characters are known by compiler and runtime system -
- do not change the instance layout.
+ do not change the instance layout.
Also, although you can create subclasses of Character, the compiler always
creates instances of Character for literals ...
@@ -76,43 +76,43 @@
Therefore, it may not make sense to create a character-subclass.
Case Mapping in Unicode:
- There are a number of complications to case mappings that occur once the repertoire
- of characters is expanded beyond ASCII.
-
- * Because of the inclusion of certain composite characters for compatibility,
- such as U+01F1 'DZ' capital dz, there is a third case, called titlecase,
- which is used where the first letter of a word is to be capitalized
- (e.g. Titlecase, vs. UPPERCASE, or lowercase).
- For example, the title case of the example character is U+01F2 'Dz' capital d with small z.
-
- * Case mappings may produce strings of different length than the original.
- For example, the German character U+00DF small letter sharp s expands when uppercased to
- the sequence of two characters 'SS'.
- This also occurs where there is no precomposed character corresponding to a case mapping.
- *** This is not yet implemented (in 5.2) ***
-
- * Characters may also have different case mappings, depending on the context.
- For example, U+03A3 capital sigma lowercases to U+03C3 small sigma if it is not followed
- by another letter, but lowercases to 03C2 small final sigma if it is.
- *** This is not yet implemented (in 5.2) ***
-
- * Characters may have case mappings that depend on the locale.
- For example, in Turkish the letter 0049 'I' capital letter i lowercases to 0131 small dotless i.
- *** This is not yet implemented (in 5.2) ***
-
- * Case mappings are not, in general, reversible.
- For example, once the string 'McGowan' has been uppercased, lowercased or titlecased,
- the original cannot be recovered by applying another uppercase, lowercase, or titlecase operation.
+ There are a number of complications to case mappings that occur once the repertoire
+ of characters is expanded beyond ASCII.
+
+ * Because of the inclusion of certain composite characters for compatibility,
+ such as U+01F1 'DZ' capital dz, there is a third case, called titlecase,
+ which is used where the first letter of a word is to be capitalized
+ (e.g. Titlecase, vs. UPPERCASE, or lowercase).
+ For example, the title case of the example character is U+01F2 'Dz' capital d with small z.
+
+ * Case mappings may produce strings of different length than the original.
+ For example, the German character U+00DF small letter sharp s expands when uppercased to
+ the sequence of two characters 'SS'.
+ This also occurs where there is no precomposed character corresponding to a case mapping.
+ *** This is not yet implemented (in 5.2) ***
+
+ * Characters may also have different case mappings, depending on the context.
+ For example, U+03A3 capital sigma lowercases to U+03C3 small sigma if it is not followed
+ by another letter, but lowercases to 03C2 small final sigma if it is.
+ *** This is not yet implemented (in 5.2) ***
+
+ * Characters may have case mappings that depend on the locale.
+ For example, in Turkish the letter 0049 'I' capital letter i lowercases to 0131 small dotless i.
+ *** This is not yet implemented (in 5.2) ***
+
+ * Case mappings are not, in general, reversible.
+ For example, once the string 'McGowan' has been uppercased, lowercased or titlecased,
+ the original cannot be recovered by applying another uppercase, lowercase, or titlecase operation.
Collation Sequence:
- *** This is not yet implemented (in 5.2) ***
+ *** This is not yet implemented (in 5.2) ***
[author:]
- Claus Gittinger
+ Claus Gittinger
[see also:]
- String TwoByteString Unicode16String Unicode32String
- StringCollection
+ String TwoByteString Unicode16String Unicode32String
+ StringCollection
"
! !
@@ -132,10 +132,10 @@
val := anInteger.
(val between:0 and:9) ifTrue:[
- ^ Character value:(val + ($0 codePoint))
+ ^ Character value:(val + ($0 codePoint))
].
(val between:10 and:35) ifTrue:[
- ^ Character value:(val + ($A codePoint - 10))
+ ^ Character value:(val + ($A codePoint - 10))
].
^self error:'value not in range 0 to 35'
!
@@ -148,118 +148,118 @@
c1 := aStream next.
ascii := c1 codePoint.
ascii <= 16r7F ifTrue:[
- "/ 0xxxxxxx - 7 bits
- ^ c1.
+ "/ 0xxxxxxx - 7 bits
+ ^ c1.
].
(ascii bitAnd:2r11000000) == 2r10000000 ifTrue:[
- "/ out of sync (got an intermediate character)
- self error:'out of sync'.
- ^ c1.
+ "/ out of sync (got an intermediate character)
+ self error:'out of sync'.
+ ^ c1.
].
fetchNext := [ |ch|
- ch := aStream next.
- (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
- "/ followup chars must have 2r10 in high bits
- self error:'bad encoding'.
- ].
- ch
- ].
+ ch := aStream next.
+ (ch codePoint bitAnd:2r11000000) == 2r10000000 ifFalse:[
+ "/ followup chars must have 2r10 in high bits
+ self error:'bad encoding'.
+ ].
+ ch
+ ].
(ascii bitAnd:2r11100000) == 2r11000000 ifTrue:[
- "/ 110xxxxx 10xxxxxx - 11 bits
- c2 := fetchNext value.
- ascii := c1 codePoint bitAnd:16r1F.
- ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- ascii <= 16r7F ifTrue:[
- self error:'invalid encoding'.
- ].
- ^ Character value:ascii
+ "/ 110xxxxx 10xxxxxx - 11 bits
+ c2 := fetchNext value.
+ ascii := c1 codePoint bitAnd:16r1F.
+ ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ ascii <= 16r7F ifTrue:[
+ self error:'invalid encoding'.
+ ].
+ ^ Character value:ascii
].
(ascii bitAnd:2r11110000) == 2r11100000 ifTrue:[
- "/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- ascii := c1 codePoint bitAnd:16r0F.
- ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- ascii <= 16r7FF ifTrue:[
- self error:'invalid encoding'.
- ].
- ^ Character value:ascii
+ "/ 1110xxxx 10xxxxxx 10xxxxxx - 16 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ ascii := c1 codePoint bitAnd:16r0F.
+ ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ ascii <= 16r7FF ifTrue:[
+ self error:'invalid encoding'.
+ ].
+ ^ Character value:ascii
].
"/ notice: currently, characters can only have 16bit encoding;
"/ therefore the following will raise a runtime exception,
(ascii bitAnd:2r11111000) == 2r11110000 ifTrue:[
- "/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- c4 := fetchNext value.
- ascii := c1 codePoint bitAnd:16r07.
- ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
- ascii <= 16rFFFF ifTrue:[
- self error:'invalid encoding'.
- ].
- ^ Character value:ascii
+ "/ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - 21 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ c4 := fetchNext value.
+ ascii := c1 codePoint bitAnd:16r07.
+ ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+ ascii <= 16rFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
+ ^ Character value:ascii
].
(ascii bitAnd:2r11111100) == 2r11111000 ifTrue:[
- "/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
- c2 := fetchNext value.
- c3 := fetchNext value.
- c4 := fetchNext value.
- c5 := fetchNext value.
- ascii := c1 codePoint bitAnd:16r03.
- ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
- ascii := (ascii bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
- ascii <= 16r1FFFFF ifTrue:[
- self error:'invalid encoding'.
- ].
- ^ Character value:ascii
+ "/ 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - 26 bits
+ c2 := fetchNext value.
+ c3 := fetchNext value.
+ c4 := fetchNext value.
+ c5 := fetchNext value.
+ ascii := c1 codePoint bitAnd:16r03.
+ ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c3 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c4 codePoint bitAnd:16r3F).
+ ascii := (ascii bitShift:6) bitOr:(c5 codePoint bitAnd:16r3F).
+ ascii <= 16r1FFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
+ ^ Character value:ascii
].
(ascii bitAnd:2r11111110) == 2r11111100 ifTrue:[
- "/ 1111110x ... 10xxxxxx - any number of bits
- ascii := c1 codePoint bitAnd:16r01.
-
- c2 := aStream peek.
- [ (c2 codePoint bitAnd:2r11000000) == 2r10000000 ] whileTrue:[
- ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
- aStream next.
- ].
- ascii <= 16r3FFFFFF ifTrue:[
- self error:'invalid encoding'.
- ].
- ^ Character value:ascii
+ "/ 1111110x ... 10xxxxxx - any number of bits
+ ascii := c1 codePoint bitAnd:16r01.
+
+ c2 := aStream peek.
+ [ (c2 codePoint bitAnd:2r11000000) == 2r10000000 ] whileTrue:[
+ ascii := (ascii bitShift:6) bitOr:(c2 codePoint bitAnd:16r3F).
+ aStream next.
+ ].
+ ascii <= 16r3FFFFFF ifTrue:[
+ self error:'invalid encoding'.
+ ].
+ ^ Character value:ascii
].
self error:'bad encoding'.
^ c1
"
- Character utf8DecodeFrom:'a' readStream
- Character utf8DecodeFrom:#[195 188] asString readStream
- "
+ Character utf8DecodeFrom:'a' readStream
+ Character utf8DecodeFrom:#[195 188] asString readStream
+ "
"test:
|utf8Encoding original readBack|
1 to:16rFFFF do:[:ascii |
- original := Character value:ascii.
- utf8Encoding := original asString utf8Encoded.
- readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
- readBack codePoint = ascii ifFalse:[
- self halt
- ]
+ original := Character value:ascii.
+ utf8Encoding := original asString utf8Encoded.
+ readBack := Character utf8DecodeFrom:(utf8Encoding readStream).
+ readBack codePoint = ascii ifFalse:[
+ self halt
+ ]
]
"
!
@@ -272,17 +272,17 @@
INT __codePoint;
if (__isSmallInteger(anInteger)) {
- __codePoint = __smallIntegerVal(anInteger);
- if ((unsigned)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
- RETURN ( __MKCHARACTER(__codePoint) );
- }
+ __codePoint = __smallIntegerVal(anInteger);
+ if ((unsigned)(__codePoint) <= MAX_IMMEDIATE_CHARACTER /* (__codePoint >= 0) && (__codePoint <= 255) */) {
+ RETURN ( __MKCHARACTER(__codePoint) );
+ }
}
%}.
(anInteger between:0 and:(CharacterTable size - 1)) ifTrue:[
- ^ CharacterTable at:(anInteger + 1)
+ ^ CharacterTable at:(anInteger + 1)
].
(anInteger between:16r100 and:16r3FFFFFFF) ifTrue:[
- ^ super basicNew setCodePoint:anInteger
+ ^ super basicNew setCodePoint:anInteger
].
"
a characters ascii-code must be 0..16r3FFFFFFF.
@@ -301,31 +301,31 @@
endOfInput
"Answer the Character representing ctrl-d ."
-
+
^ self value:4
!
leftParenthesis
"Answer the Character representing a left parenthesis."
-
+
^ self value:40
!
period
"Answer the Character representing a carriage period."
-
+
^ self value:46
!
poundSign
"Answer the Character representing a pound sign."
-
+
^ self value:35
!
rightParenthesis
"Answer the Character representing a right parenthesis."
-
+
^ self value:41
! !
@@ -344,16 +344,16 @@
!
cr
- "return the lineEnd character
+ "return the lineEnd character
- actually (in unix) this is a newline character"
^ Character value:10
!
-del
+del
"return the delete character"
- ^ Character value:16r7F
+ ^ Character value:16r7F
!
doubleQuote
@@ -380,11 +380,11 @@
"
"
0 to:255 do:[:i |
- Transcript
- show:'| '; show:((i printStringRadix:16) leftPaddedTo:2);
- show:' | '; show:(i printStringPaddedTo:3);
- show:' | '; show:(Character value:i);
- cr.
+ Transcript
+ show:'| '; show:((i printStringRadix:16) leftPaddedTo:2);
+ show:' | '; show:(i printStringPaddedTo:3);
+ show:' | '; show:(Character value:i);
+ cr.
]
"
!
@@ -412,7 +412,7 @@
^ Character value:10
!
-maxValue
+maxValue
"return the maximum asciiValue a character can have"
^ 16rFFFF
@@ -440,11 +440,11 @@
^ Character value:39
!
-return
+return
"return the return character.
In ST/X, this is different from cr - for Unix reasons."
- ^ Character value:13
+ ^ Character value:13
!
space
@@ -470,7 +470,7 @@
c = getchar();
if (c < 0) {
- RETURN (nil);
+ RETURN (nil);
}
RETURN ( __MKCHARACTER(c & 0xFF) );
%}.
@@ -483,9 +483,9 @@
"added for squeak compatibility: return a collection of all chars"
^ CharacterTable
-
+
"
- Character allCharacters
+ Character allCharacters
"
!
@@ -510,18 +510,18 @@
isLegalUnicodeCodePoint:anInteger
"answer true, if anInteger is a valid unicode code point"
- "Range 16rD800 - 16rDFFF is reserved for the
+ "Range 16rD800 - 16rDFFF is reserved for the
lower and upper substitution page for UCS-16"
(anInteger >= 16rD800) ifTrue:[
- (anInteger <= 16rDFFF) ifTrue:[
- ^ false.
- ].
- (anInteger == 16rFFFE) ifTrue:[
- ^ false.
- ].
- (anInteger == 16rFFFF) ifTrue:[
- ^ false.
- ].
+ (anInteger <= 16rDFFF) ifTrue:[
+ ^ false.
+ ].
+ (anInteger == 16rFFFE) ifTrue:[
+ ^ false.
+ ].
+ (anInteger == 16rFFFF) ifTrue:[
+ ^ false.
+ ].
].
^ true
!
@@ -529,14 +529,14 @@
separators
"added for squeak compatibility: return a collection of separator chars"
- ^ Array
- with:Character space
- with:Character return
- "/ with:Character cr
- with:Character tab
- with:Character lf
- with:Character ff
-
+ ^ Array
+ with:Character space
+ with:Character return
+ "/ with:Character cr
+ with:Character tab
+ with:Character lf
+ with:Character ff
+
"
Character separators
"
@@ -589,7 +589,7 @@
codePoint
"return the codePoint of myself.
- Traditionally, this was named 'asciiValue';
+ Traditionally, this was named 'asciiValue';
however, characters are not limited to 8bit characters."
^ asciivalue
@@ -604,7 +604,7 @@
!Character methodsFor:'arithmetic'!
+ aMagnitude
- "Return the Character that is <aMagnitude> higher than the receiver.
+ "Return the Character that is <aMagnitude> higher than the receiver.
Wrap if the resulting value is not a legal Character value. (JS)"
^ Character value:(asciivalue + aMagnitude asInteger \\ 16rFFFF)
@@ -617,20 +617,20 @@
!
- aMagnitude
- "Return the Character that is <aMagnitude> lower than the receiver.
+ "Return the Character that is <aMagnitude> lower than the receiver.
Wrap if the resulting value is not a legal Character value. (JS)
- claus:
- modified to return the difference as integer, if the argument
- is another character. If the argument is a number, a character is
- returned."
+ claus:
+ modified to return the difference as integer, if the argument
+ is another character. If the argument is a number, a character is
+ returned."
aMagnitude isCharacter ifTrue:[
- ^ asciivalue - aMagnitude asInteger
+ ^ asciivalue - aMagnitude asInteger
].
^ Character value:(asciivalue - aMagnitude asInteger \\ 16rFFFF)
"
- $z - $a
+ $z - $a
$d - 3
"
@@ -638,14 +638,14 @@
!
// aMagnitude
- "Return the Character who's value is the receiver divided by <aMagnitude>.
+ "Return the Character who's value is the receiver divided by <aMagnitude>.
Wrap if the resulting value is not a legal Character value. (JS)"
^ Character value:(asciivalue // aMagnitude asInteger \\ 16rFFFF)
!
\\ aMagnitude
- "Return the Character who's value is the receiver modulo <aMagnitude>.
+ "Return the Character who's value is the receiver modulo <aMagnitude>.
Wrap if the resulting value is not a legal Character value. (JS)"
^ Character value:(asciivalue \\ aMagnitude asInteger \\ 16rFFFF)
@@ -695,8 +695,8 @@
^ asciivalue = aCharacter codePoint
"
- $A = 65
- $A = 43
+ $A = 65
+ $A = 43
"
!
@@ -721,13 +721,13 @@
identityHash
"return an integer useful for hashing on identity"
-%{
+%{
INT __codePoint;
__codePoint = __smallIntegerVal(__INST(asciivalue));
if (__codePoint <= MAX_IMMEDIATE_CHARACTER) {
- RETURN ( __mkSmallInteger(__codePoint + 4096) );
+ RETURN ( __mkSmallInteger(__codePoint + 4096) );
}
%}.
@@ -765,7 +765,7 @@
^ self
"
- 32 asCharacter
+ 32 asCharacter
"
!
@@ -781,13 +781,13 @@
"return a character with same letter as the receiver, but in lowercase.
Returns the receiver if it is already lowercase or if there is no lowercase equivalent.
CAVEAT:
- for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
- (which is more than mozilla does, btw. ;-)"
+ for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+ (which is more than mozilla does, btw. ;-)"
%{
- static int
+ static int
__mapping[] = {
- /* From To Every Diff */
+ /* From To Every Diff */
0x0041, ((0x19 << 8) | 0x01), 0x0020 ,
0x00c0, ((0x16 << 8) | 0x01), 0x0020 ,
0x00d8, ((0x06 << 8) | 0x01), 0x0020 ,
@@ -912,8 +912,8 @@
0x212b, ((0x00 << 8) | 0x00), -8262 ,
0x2160, ((0x0f << 8) | 0x01), 0x0010 ,
0x24b6, ((0x19 << 8) | 0x01), 0x001a ,
- 0xff21, ((0x19 << 8) | 0x01), 0x0020 ,
- 0x10400, ((0x27 << 8) | 0x01), 0x0028
+ 0xff21, ((0x19 << 8) | 0x01), 0x0020 ,
+ 0x10400, ((0x27 << 8) | 0x01), 0x0028
};
REGISTER unsigned __codePoint;
@@ -921,28 +921,28 @@
__codePoint = __intVal(__INST(asciivalue));
for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 3) {
- unsigned rangeStart, rangeSize, rangeEnd, mod;
-
- rangeStart = (unsigned)__p[0];
- if (__codePoint < rangeStart) break;
-
- rangeSize = ((unsigned)__p[1]) >> 8;
- rangeEnd = rangeStart + rangeSize;
- if (__codePoint <= rangeEnd) {
- mod = __p[1] & 0xFF;
- if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
- OBJ newChar;
- unsigned newCodePoint;
-
- newCodePoint = __codePoint + __p[2];
- if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
- RETURN (__MKCHARACTER(newCodePoint)) ;
- }
- newChar = __MKUCHARACTER(newCodePoint) ;
- if (newChar == nil) goto allocationError;
- RETURN (newChar) ;
- }
- }
+ unsigned rangeStart, rangeSize, rangeEnd, mod;
+
+ rangeStart = (unsigned)__p[0];
+ if (__codePoint < rangeStart) break;
+
+ rangeSize = ((unsigned)__p[1]) >> 8;
+ rangeEnd = rangeStart + rangeSize;
+ if (__codePoint <= rangeEnd) {
+ mod = __p[1] & 0xFF;
+ if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
+ OBJ newChar;
+ unsigned newCodePoint;
+
+ newCodePoint = __codePoint + __p[2];
+ if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+ RETURN (__MKCHARACTER(newCodePoint)) ;
+ }
+ newChar = __MKUCHARACTER(newCodePoint) ;
+ if (newChar == nil) goto allocationError;
+ RETURN (newChar) ;
+ }
+ }
}
RETURN (self);
allocationError: ;
@@ -950,13 +950,13 @@
^ ObjectMemory allocationFailureSignal raise.
"
- $A asLowercase
- $a asLowercase
- (Character value:16r01F5) asUppercase asLowercase
- (Character value:16r0205) asUppercase asLowercase
- (Character value:16r03B1) asUppercase asLowercase
- (Character value:16r1E00) asLowercase
- "
+ $A asLowercase
+ $a asLowercase
+ (Character value:16r01F5) asUppercase asLowercase
+ (Character value:16r0205) asUppercase asLowercase
+ (Character value:16r03B1) asUppercase asLowercase
+ (Character value:16r1E00) asLowercase
+ "
!
asString
@@ -969,33 +969,33 @@
val = __intVal(_characterVal(self));
if (val <= 0xFF) {
- buffer[0] = (char) val;
- buffer[1] = '\0';
- s = __MKSTRING_L(buffer, 1);
- if (s != nil) {
- RETURN (s);
- }
+ buffer[0] = (char) val;
+ buffer[1] = '\0';
+ s = __MKSTRING_L(buffer, 1);
+ if (s != nil) {
+ RETURN (s);
+ }
}
if (val <= 0xFFFF) {
- s = __MKEMPTYUSTRING(1);
- if (s != nil) {
- __Unicode16StringInstPtr(s)->s_element[0] = val;
- RETURN (s);
- }
+ s = __MKEMPTYU16STRING(1);
+ if (s != nil) {
+ __Unicode16StringInstPtr(s)->s_element[0] = val;
+ RETURN (s);
+ }
}
%}.
asciivalue > 16rFF ifTrue:[
- asciivalue > 16rFFFF ifTrue:[
- ^ (Unicode32String new:1) at:1 put:self; yourself
- ].
- ^ (Unicode16String new:1) at:1 put:self; yourself
+ asciivalue > 16rFFFF ifTrue:[
+ ^ (Unicode32String new:1) at:1 put:self; yourself
+ ].
+ ^ (Unicode16String new:1) at:1 put:self; yourself
].
^ (String new:1) at:1 put:self; yourself.
"
- (Character value:16rB5) asString
- (Character value:16r1B5) asString
+ (Character value:16rB5) asString
+ (Character value:16r1B5) asString
"
!
@@ -1010,11 +1010,11 @@
Returns the receiver if it is already titlecase or if there is no titlecase equivalent."
"
- For example, in Unicode, character U+01F3 is LATIN SMALL LETTER DZ.
- (Let us write this compound character using ASCII as 'dz'.)
- This character uppercases to character U+01F1, LATIN CAPITAL LETTER DZ.
- (Which is basically 'DZ'.)
- But it titlecases to to character U+01F2, LATIN CAPITAL LETTER D WITH SMALL LETTER Z.
+ For example, in Unicode, character U+01F3 is LATIN SMALL LETTER DZ.
+ (Let us write this compound character using ASCII as 'dz'.)
+ This character uppercases to character U+01F1, LATIN CAPITAL LETTER DZ.
+ (Which is basically 'DZ'.)
+ But it titlecases to to character U+01F2, LATIN CAPITAL LETTER D WITH SMALL LETTER Z.
(Which we can write 'Dz'.)
character uppercase titlecase
@@ -1026,14 +1026,14 @@
%{
static unsigned short
__mapping[] = {
- 0x01F1, 0x01F2,
- 0x01F3, 0x01F2,
- 0x01C4, 0x01C5,
- 0x01C6, 0x01C5,
- 0x01C7, 0x01C8,
- 0x01C9, 0x01C8,
- 0x01CA, 0x01CB,
- 0x01CC, 0x01CB,
+ 0x01F1, 0x01F2,
+ 0x01F3, 0x01F2,
+ 0x01C4, 0x01C5,
+ 0x01C6, 0x01C5,
+ 0x01C7, 0x01C8,
+ 0x01C9, 0x01C8,
+ 0x01CA, 0x01CB,
+ 0x01CC, 0x01CB,
};
REGISTER unsigned __codePoint;
@@ -1041,36 +1041,36 @@
__codePoint = __intVal(__INST(asciivalue));
for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 2) {
- if ((__codePoint == __p[0]) || (__codePoint == __p[1])) {
- short newCodePoint;
- OBJ newChar;
-
- newCodePoint = __p[1];
- if (newCodePoint == __codePoint) {
- RETURN (self);
- }
- if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
- RETURN (__MKCHARACTER(newCodePoint)) ;
- }
- newChar = __MKUCHARACTER(newCodePoint) ;
- if (newChar == nil) goto getOutOfHere;
- RETURN (newChar) ;
- }
+ if ((__codePoint == __p[0]) || (__codePoint == __p[1])) {
+ short newCodePoint;
+ OBJ newChar;
+
+ newCodePoint = __p[1];
+ if (newCodePoint == __codePoint) {
+ RETURN (self);
+ }
+ if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+ RETURN (__MKCHARACTER(newCodePoint)) ;
+ }
+ newChar = __MKUCHARACTER(newCodePoint) ;
+ if (newChar == nil) goto getOutOfHere;
+ RETURN (newChar) ;
+ }
}
ch = self;
getOutOfHere: ;
%}.
ch notNil ifTrue:[
- ^ ch asUppercase.
+ ^ ch asUppercase.
].
^ ObjectMemory allocationFailureSignal raise.
"
- $A asTitlecase
- $a asTitlecase
- (Character value:16r01F1) asTitlecase
- "
+ $A asTitlecase
+ $a asTitlecase
+ (Character value:16r01F1) asTitlecase
+ "
!
asUnicodeString
@@ -1078,7 +1078,7 @@
This will vanish, as we now (rel5.2.x) use Unicode as default."
asciivalue > 16rFFFF ifTrue:[
- ^ (Unicode32String new:1) at:1 put:self; yourself.
+ ^ (Unicode32String new:1) at:1 put:self; yourself.
].
^ (Unicode16String new:1) at:1 put:self; yourself.
!
@@ -1087,13 +1087,13 @@
"return a character with same letter as the receiver, but in uppercase.
Returns the receiver if it is already uppercase or if there is no uppercase equivalent.
CAVEAT:
- for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
- (which is more than mozilla does, btw. ;-)"
+ for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+ (which is more than mozilla does, btw. ;-)"
%{
static int
__mapping[] = {
- /* From To Every Diff */
+ /* From To Every Diff */
0x0061, ((0x19 << 8) | 0x01), -32 ,
0x00b5, ((0x00 << 8) | 0x3b), 0x02e7 ,
0x00e0, ((0x16 << 8) | 0x01), -32 ,
@@ -1230,8 +1230,8 @@
0x1ff3, ((0x00 << 8) | 0x0e), 0x0009 ,
0x2170, ((0x0f << 8) | 0x01), -16 ,
0x24d0, ((0x19 << 8) | 0x01), -26 ,
- 0xff41, ((0x19 << 8) | 0x01), -32 ,
- 0x10428, ((0x27 << 8) | 0x01), -40
+ 0xff41, ((0x19 << 8) | 0x01), -32 ,
+ 0x10428, ((0x27 << 8) | 0x01), -40
};
REGISTER unsigned __codePoint;
@@ -1239,28 +1239,28 @@
__codePoint = __intVal(__INST(asciivalue));
for (__p = __mapping; (char *)__p < ((char *)__mapping) + sizeof(__mapping); __p += 3) {
- unsigned rangeStart, rangeSize, rangeEnd, mod;
-
- rangeStart = (unsigned)__p[0];
- if (__codePoint < rangeStart) break;
-
- rangeSize = ((unsigned)__p[1]) >> 8;
- rangeEnd = rangeStart + rangeSize;
- if (__codePoint <= rangeEnd) {
- mod = __p[1] & 0xFF;
- if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
- OBJ newChar;
- unsigned newCodePoint;
-
- newCodePoint = __codePoint + __p[2];
- if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
- RETURN (__MKCHARACTER(newCodePoint)) ;
- }
- newChar = __MKUCHARACTER(newCodePoint) ;
- if (newChar == nil) goto allocationError;
- RETURN (newChar) ;
- }
- }
+ unsigned rangeStart, rangeSize, rangeEnd, mod;
+
+ rangeStart = (unsigned)__p[0];
+ if (__codePoint < rangeStart) break;
+
+ rangeSize = ((unsigned)__p[1]) >> 8;
+ rangeEnd = rangeStart + rangeSize;
+ if (__codePoint <= rangeEnd) {
+ mod = __p[1] & 0xFF;
+ if ((mod == 0) || (((__codePoint - rangeStart) % mod) == 0)) {
+ OBJ newChar;
+ unsigned newCodePoint;
+
+ newCodePoint = __codePoint + __p[2];
+ if (newCodePoint <= MAX_IMMEDIATE_CHARACTER) {
+ RETURN (__MKCHARACTER(newCodePoint)) ;
+ }
+ newChar = __MKUCHARACTER(newCodePoint) ;
+ if (newChar == nil) goto allocationError;
+ RETURN (newChar) ;
+ }
+ }
}
RETURN (self);
allocationError: ;
@@ -1268,12 +1268,12 @@
^ ObjectMemory allocationFailureSignal raise.
"
- $A asLowercase
- $a asUppercase
- (Character value:16r01F5) asUppercase
- (Character value:16r0205) asUppercase
- (Character value:16r03B1) asUppercase
- "
+ $A asLowercase
+ $a asUppercase
+ (Character value:16r01F5) asUppercase
+ (Character value:16r0205) asUppercase
+ (Character value:16r03B1) asUppercase
+ "
!
digitValue
@@ -1283,14 +1283,14 @@
code := asciivalue.
(code between:($0 codePoint) and:($9 codePoint)) ifTrue:[
- ^ code - $0 codePoint
+ ^ code - $0 codePoint
].
(code between:($a codePoint) and:($z codePoint)) ifTrue:[
- ^ code + (10 - $a codePoint)
- ].
+ ^ code + (10 - $a codePoint)
+ ].
(code between:($A codePoint) and:($Z codePoint)) ifTrue:[
- ^ code + (10 - $A codePoint)
- ].
+ ^ code + (10 - $A codePoint)
+ ].
"remove error below for X3J20 conformance ... "
self error:'bad character'.
@@ -1308,7 +1308,7 @@
!
to:aMagnitude
- "Return an Interval over the characters from the receiver to <aMagnitude>.
+ "Return an Interval over the characters from the receiver to <aMagnitude>.
Wrap <aMagnitude> if it is not a legal Character value. (JS)"
^ Interval from:self to:(aMagnitude \\ 256)
@@ -1321,7 +1321,7 @@
|s|
asciivalue <= 16r7F ifTrue:[
- ^ self asString.
+ ^ self asString.
].
s := WriteStream on:(String new:6).
@@ -1331,60 +1331,60 @@
utf8EncodedOn:aStream
"append my UTF-8 representation to the argument, aStream.
- Up to 31 bits can be encoded in up to 6 bytes.
+ Up to 31 bits can be encoded in up to 6 bytes.
However, currently, characters are limited to 16 bits."
|b1 b2 b3 b4 b5 v|
asciivalue <= 16r7F ifTrue:[
- aStream nextPut:self.
- ^ self.
+ aStream nextPut:self.
+ ^ self.
].
b1 := Character value:((asciivalue bitAnd:16r3F) bitOr:2r10000000).
v := asciivalue bitShift:-6.
v <= 16r1F ifTrue:[
- aStream nextPut:(Character value:(v bitOr:2r11000000)).
- aStream nextPut:b1.
- ^ self.
+ aStream nextPut:(Character value:(v bitOr:2r11000000)).
+ aStream nextPut:b1.
+ ^ self.
].
b2 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
v := v bitShift:-6.
v <= 16r0F ifTrue:[
- aStream nextPut:(Character value:(v bitOr:2r11100000)).
- aStream nextPut:b2; nextPut:b1.
- ^ self.
+ aStream nextPut:(Character value:(v bitOr:2r11100000)).
+ aStream nextPut:b2; nextPut:b1.
+ ^ self.
].
b3 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
v := v bitShift:-6.
v <= 16r07 ifTrue:[
- aStream nextPut:(Character value:(v bitOr:2r11110000)).
- aStream nextPut:b3; nextPut:b2; nextPut:b1.
- ^ self.
+ aStream nextPut:(Character value:(v bitOr:2r11110000)).
+ aStream nextPut:b3; nextPut:b2; nextPut:b1.
+ ^ self.
].
b4 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
v := v bitShift:-6.
v <= 16r03 ifTrue:[
- aStream nextPut:(Character value:(v bitOr:2r11111000)).
- aStream nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
- ^ self.
+ aStream nextPut:(Character value:(v bitOr:2r11111000)).
+ aStream nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
+ ^ self.
].
b5 := Character value:((v bitAnd:16r3F) bitOr:2r10000000).
v := v bitShift:-6.
v <= 16r01 ifTrue:[
- aStream nextPut:(Character value:(v bitOr:2r11111100)).
- aStream nextPut:b5; nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
- ^ self.
+ aStream nextPut:(Character value:(v bitOr:2r11111100)).
+ aStream nextPut:b5; nextPut:b4; nextPut:b3; nextPut:b2; nextPut:b1.
+ ^ self.
].
"/ cannot happen - we only support up to 16 bit characters
self error:'ascii value > 31bit in utf8Encode'.
-
+
"
- $a utf8Encoded
- $ü utf8Encoded asByteArray
- (Character value:16r1fff) utf8Encoded asByteArray
- (Character value:16rffff) utf8Encoded asByteArray
- (Character value:16r800) utf8Encoded asByteArray
+ $a utf8Encoded
+ $ü utf8Encoded asByteArray
+ (Character value:16r1fff) utf8Encoded asByteArray
+ (Character value:16rffff) utf8Encoded asByteArray
+ (Character value:16r800) utf8Encoded asByteArray
"
! !
@@ -1421,25 +1421,25 @@
!Character methodsFor:'encoding'!
rot13
- "Usenet: from `rotate alphabet 13 places']
+ "Usenet: from `rotate alphabet 13 places']
The simple Caesar-cypher encryption that replaces each English
- letter with the one 13 places forward or back along the alphabet,
+ letter with the one 13 places forward or back along the alphabet,
so that 'The butler did it!!' becomes 'Gur ohgyre qvq vg!!'
- Most Usenet news reading and posting programs include a rot13 feature.
+ Most Usenet news reading and posting programs include a rot13 feature.
It is used to enclose the text in a sealed wrapper that the reader must choose
- to open -- e.g., for posting things that might offend some readers, or spoilers.
+ to open -- e.g., for posting things that might offend some readers, or spoilers.
A major advantage of rot13 over rot(N) for other N is that it
is self-inverse, so the same code can be used for encoding and decoding."
(((self >= $a) and:[ self < $n]) or:[(self >= $A) and:[ self < $N]])
- ifTrue: [ ^ Character value:(self codePoint + 13) ].
+ ifTrue: [ ^ Character value:(self codePoint + 13) ].
(((self > $m) and:[ self <= $z]) or:[(self > $M) and:[ self <= $Z]])
- ifTrue: [ ^ Character value:(self codePoint - 13) ].
+ ifTrue: [ ^ Character value:(self codePoint - 13) ].
^ self
"
- $h rot13
- $h rot13 rot13
+ $h rot13
+ $h rot13 rot13
'The butler did it!!' rot13 -> 'Gur ohgyre qvq vg!!'
'The butler did it!!' rot13 rot13 -> 'The butler did it!!'
"
@@ -1450,7 +1450,7 @@
asciiValue
"return the asciivalue of myself.
The name 'asciiValue' is a historic leftover:
- characters are not limited to 8bit characters.
+ characters are not limited to 8bit characters.
So the actual value returned is a codePoint (i.e. full potential for 31bit encoding).
PP has removed this method with 4.1 and providing asInteger instead.
ANSI defines #codePoint, please use this method"
@@ -1480,14 +1480,14 @@
print
"print myself on stdout.
- This method does NOT (by purpose) use the stream classes and
+ This method does NOT (by purpose) use the stream classes and
will therefore work even in case of emergency (but only, if Stdout is nil)."
%{ /* NOCONTEXT */
if (@global(Stdout) == nil) {
- putchar(__intVal(__INST(asciivalue)));
- RETURN(self);
+ putchar(__intVal(__INST(asciivalue)));
+ RETURN(self);
}
%}.
super print
@@ -1551,11 +1551,11 @@
!Character methodsFor:'private-accessing'!
setCodePoint:anInteger
- "very private - set the codePoint.
+ "very private - set the codePoint.
- use this only for characters with codes > 16rFF.
- DANGER alert:
- funny things happen, if this is applied to
- one of the shared characters with codePoints 0..255."
+ DANGER alert:
+ funny things happen, if this is applied to
+ one of the shared characters with codePoints 0..255."
asciivalue := anInteger
! !
@@ -1597,7 +1597,7 @@
val = __intVal(__INST(asciivalue));
if (val < ' ' || val == 0xFF) {
- RETURN ( true );
+ RETURN ( true );
}
#endif
RETURN (false);
@@ -1618,7 +1618,7 @@
val = __intVal(__INST(asciivalue));
if ((unsigned)(val - '0') <= ('9' - '0')) {
- RETURN ( true );
+ RETURN ( true );
}
RETURN ( false );
%}.
@@ -1628,15 +1628,15 @@
isDigitRadix:r
"return true, if I am a digit of a base r number"
- (asciivalue < $0 codePoint) ifTrue:[^ false].
+ (asciivalue < $0 codePoint) ifTrue:[^ false].
(r > 10) ifTrue:[
- (asciivalue <= $9 codePoint) ifTrue:[
- ^ true
- ].
- ((asciivalue - $a codePoint) between:0 and:(r - 11)) ifTrue:[
- ^ true
- ].
- ^ (asciivalue - $A codePoint) between:0 and:(r - 11)
+ (asciivalue <= $9 codePoint) ifTrue:[
+ ^ true
+ ].
+ ((asciivalue - $a codePoint) between:0 and:(r - 11)) ifTrue:[
+ ^ true
+ ].
+ ^ (asciivalue - $A codePoint) between:0 and:(r - 11)
].
(asciivalue - $0 codePoint) < r ifTrue:[^ true].
^ false
@@ -1653,7 +1653,7 @@
if ((val == '\n')
|| (val == '\r')
|| (val == '\f')) {
- RETURN ( true );
+ RETURN ( true );
}
RETURN (false);
%}.
@@ -1667,21 +1667,21 @@
"return true if I am an immediate object
i.e. I am represented in the pointer itself and
no real object header/storage is used me.
- For VW compatibility, shared characters (i.e. in the range 0..MAX_IMMEDIATE_CHARACTER)
+ For VW compatibility, shared characters (i.e. in the range 0..MAX_IMMEDIATE_CHARACTER)
also return true here"
-
+
%{ /* NOCONTEXT */
if (__smallIntegerVal(__INST(asciivalue)) <= MAX_IMMEDIATE_CHARACTER) {
- RETURN ( true );
+ RETURN ( true );
}
%}.
^ false
"
- $a isImmediate.
- (Character value:255) isImmediate.
- (Character value:256) isImmediate.
- (Character value:1566) isImmediate.
+ $a isImmediate.
+ (Character value:255) isImmediate.
+ (Character value:256) isImmediate.
+ (Character value:1566) isImmediate.
"
!
@@ -1695,10 +1695,10 @@
val = __intVal(__INST(asciivalue));
if ((unsigned)(val - 'a') <= ('z' - 'a')) {
- RETURN ( true );
+ RETURN ( true );
}
if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
- RETURN ( true );
+ RETURN ( true );
}
RETURN ( false );
%}.
@@ -1716,13 +1716,13 @@
val = __intVal(__INST(asciivalue));
if ((unsigned)(val - 'a') <= ('z' - 'a')) {
- RETURN ( true );
+ RETURN ( true );
}
if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
- RETURN ( true );
+ RETURN ( true );
}
if ((unsigned)(val - '0') <= ('9' - '0')) {
- RETURN ( true );
+ RETURN ( true );
}
RETURN ( false );
%}.
@@ -1732,9 +1732,9 @@
isLowercase
"return true, if I am a lower-case letter.
This one does care for national characters.
- Caveat:
- only returns the correct value for codes up to u+1d6ff (Unicode3.1).
- (which is more than mozilla does, btw. ;-)"
+ Caveat:
+ only returns the correct value for codes up to u+1d6ff (Unicode3.1).
+ (which is more than mozilla does, btw. ;-)"
%{ /* NOCONTEXT */
@@ -1744,206 +1744,206 @@
val = __intVal(__INST(asciivalue));
switch (val >> 8) {
- case 0x00:
- if ((unsigned)(val - 'a') <= ('z' - 'a')) {
- RETURN ( true );
- }
-
- /* iso8859 puts national lower case characters at e0 .. ff */
- if ((val >= 0xDF) && (val <= 0xFF)) {
- if (val != 0xF7) {
- RETURN(true);
- }
- }
- if (val == 0xAA) RETURN(true); /* FEMININE ORDINAL INDICATOR (high a-underline) */
- if (val == 0xB5) RETURN(true); /* MICRO SIGN */
- if (val == 0xBA) RETURN(true); /* MASCULINE ORDINAL INDICATOR (high o-underline) */
- RETURN (false);
-
- case 0x01:
- if (val <= 0x0137) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x0148) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x0178) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x017E) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x0180) { RETURN (true); }
- if (val < 0x01CD) {
- if (val == 0x0181) { RETURN (false); }
- if (val <= 0x0185) {
- RETURN (TRUE_IF_ODD(val));
- }
- if (val == 0x0188) { RETURN (true); }
- if (val == 0x018C) { RETURN (true); }
- if (val == 0x018D) { RETURN (true); }
- if (val == 0x0192) { RETURN (true); }
- if (val == 0x0195) { RETURN (true); }
- if (val == 0x0199) { RETURN (true); }
- if (val == 0x019A) { RETURN (true); }
- if (val == 0x019B) { RETURN (true); }
- if (val == 0x019E) { RETURN (true); }
- if (val <= 0x01A0) { RETURN (false); }
- if (val <= 0x01A6) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x01AA) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x01AE) { RETURN (TRUE_IF_ODD(val)); }
- if (val == 0x01B2) { RETURN (false); }
- if (val <= 0x01B6) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x01B9) { RETURN (true); }
- if (val == 0x01BA) { RETURN (true); }
- if (val == 0x01BD) { RETURN (true); }
- if (val == 0x01BE) { RETURN (true); }
- if (val == 0x01BF) { RETURN (true); }
- if (val == 0x01C6) { RETURN (true); }
- if (val == 0x01C9) { RETURN (true); }
- if (val == 0x01CC) { RETURN (true); }
- RETURN (false);
- }
- if (val <= 0x01DC) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x01EF) { RETURN (TRUE_IF_ODD(val)); }
- if (val == 0x01F0) { RETURN (true); }
- if (val == 0x01F1) { RETURN (false); }
- if (val == 0x01F2) { RETURN (false); }
- if (val == 0x01F3) { RETURN (true); }
- if (val <= 0x01F6) { RETURN (TRUE_IF_ODD(val)); }
- if (val == 0x01F7) { RETURN (false); }
- RETURN (TRUE_IF_ODD(val));
-
- case 0x02:
- if (val <= 0x0233) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x0236) { RETURN (true); }
- if (val < 0x0250) { RETURN (false); }
- if (val < 0x02B0) { RETURN (true); }
- RETURN (false);
-
-
- case 0x03:
- if (val == 0x0390) { RETURN (true); }
- if (val <= 0x03AB) { RETURN (false); }
- if (val <= 0x03D1) { RETURN (true); }
- if (val == 0x03D5) { RETURN (true); }
- if (val == 0x03D6) { RETURN (true); }
- if (val < 0x03D7) { RETURN (false); }
- if (val <= 0x03EF) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x03F3) { RETURN (true); }
- if (val == 0x03F5) { RETURN (true); }
+ case 0x00:
+ if ((unsigned)(val - 'a') <= ('z' - 'a')) {
+ RETURN ( true );
+ }
+
+ /* iso8859 puts national lower case characters at e0 .. ff */
+ if ((val >= 0xDF) && (val <= 0xFF)) {
+ if (val != 0xF7) {
+ RETURN(true);
+ }
+ }
+ if (val == 0xAA) RETURN(true); /* FEMININE ORDINAL INDICATOR (high a-underline) */
+ if (val == 0xB5) RETURN(true); /* MICRO SIGN */
+ if (val == 0xBA) RETURN(true); /* MASCULINE ORDINAL INDICATOR (high o-underline) */
+ RETURN (false);
+
+ case 0x01:
+ if (val <= 0x0137) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x0148) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x0178) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x017E) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x0180) { RETURN (true); }
+ if (val < 0x01CD) {
+ if (val == 0x0181) { RETURN (false); }
+ if (val <= 0x0185) {
+ RETURN (TRUE_IF_ODD(val));
+ }
+ if (val == 0x0188) { RETURN (true); }
+ if (val == 0x018C) { RETURN (true); }
+ if (val == 0x018D) { RETURN (true); }
+ if (val == 0x0192) { RETURN (true); }
+ if (val == 0x0195) { RETURN (true); }
+ if (val == 0x0199) { RETURN (true); }
+ if (val == 0x019A) { RETURN (true); }
+ if (val == 0x019B) { RETURN (true); }
+ if (val == 0x019E) { RETURN (true); }
+ if (val <= 0x01A0) { RETURN (false); }
+ if (val <= 0x01A6) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x01AA) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x01AE) { RETURN (TRUE_IF_ODD(val)); }
+ if (val == 0x01B2) { RETURN (false); }
+ if (val <= 0x01B6) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x01B9) { RETURN (true); }
+ if (val == 0x01BA) { RETURN (true); }
+ if (val == 0x01BD) { RETURN (true); }
+ if (val == 0x01BE) { RETURN (true); }
+ if (val == 0x01BF) { RETURN (true); }
+ if (val == 0x01C6) { RETURN (true); }
+ if (val == 0x01C9) { RETURN (true); }
+ if (val == 0x01CC) { RETURN (true); }
+ RETURN (false);
+ }
+ if (val <= 0x01DC) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x01EF) { RETURN (TRUE_IF_ODD(val)); }
+ if (val == 0x01F0) { RETURN (true); }
+ if (val == 0x01F1) { RETURN (false); }
+ if (val == 0x01F2) { RETURN (false); }
+ if (val == 0x01F3) { RETURN (true); }
+ if (val <= 0x01F6) { RETURN (TRUE_IF_ODD(val)); }
+ if (val == 0x01F7) { RETURN (false); }
+ RETURN (TRUE_IF_ODD(val));
+
+ case 0x02:
+ if (val <= 0x0233) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x0236) { RETURN (true); }
+ if (val < 0x0250) { RETURN (false); }
+ if (val < 0x02B0) { RETURN (true); }
+ RETURN (false);
+
+
+ case 0x03:
+ if (val == 0x0390) { RETURN (true); }
+ if (val <= 0x03AB) { RETURN (false); }
+ if (val <= 0x03D1) { RETURN (true); }
+ if (val == 0x03D5) { RETURN (true); }
+ if (val == 0x03D6) { RETURN (true); }
+ if (val < 0x03D7) { RETURN (false); }
+ if (val <= 0x03EF) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x03F3) { RETURN (true); }
+ if (val == 0x03F5) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x03F8) { RETURN (true); }
- if (val == 0x03FB) { RETURN (true); }
+ if (val == 0x03F8) { RETURN (true); }
+ if (val == 0x03FB) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x04:
- if (val <= 0x042F) { RETURN (false); }
- if (val <= 0x045F) { RETURN (true); }
- if (val <= 0x0481) { RETURN (TRUE_IF_ODD(val)); }
- if (val < 0x048A) { RETURN (false); }
- if (val <= 0x04C0) { RETURN (TRUE_IF_ODD(val)); }
+ RETURN (false);
+
+ case 0x04:
+ if (val <= 0x042F) { RETURN (false); }
+ if (val <= 0x045F) { RETURN (true); }
+ if (val <= 0x0481) { RETURN (TRUE_IF_ODD(val)); }
+ if (val < 0x048A) { RETURN (false); }
+ if (val <= 0x04C0) { RETURN (TRUE_IF_ODD(val)); }
#ifdef UNICODE_3_2
- if (val == 0x04C5) { RETURN (true); }
+ if (val == 0x04C5) { RETURN (true); }
#endif
#ifdef UNICODE_3_2
- if (val <= 0x04C8) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x04C8) { RETURN (TRUE_IF_EVEN(val)); }
#else
- if (val <= 0x04CA) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x04CD) { RETURN (false); }
- if (val == 0x04CE) { RETURN (true); }
+ if (val <= 0x04CA) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x04CD) { RETURN (false); }
+ if (val == 0x04CE) { RETURN (true); }
#endif
- if (val == 0x04CB) { RETURN (false); }
- if (val == 0x04CC) { RETURN (true); }
- RETURN (TRUE_IF_ODD(val));
-
- case 0x05:
- if (val <= 0x050F) { RETURN (TRUE_IF_ODD(val)); }
- if (val < 0x0561) { RETURN (false); }
- if (val <= 0x0587) { RETURN (true); }
- RETURN (false);
-
- case 0x1D:
+ if (val == 0x04CB) { RETURN (false); }
+ if (val == 0x04CC) { RETURN (true); }
+ RETURN (TRUE_IF_ODD(val));
+
+ case 0x05:
+ if (val <= 0x050F) { RETURN (TRUE_IF_ODD(val)); }
+ if (val < 0x0561) { RETURN (false); }
+ if (val <= 0x0587) { RETURN (true); }
+ RETURN (false);
+
+ case 0x1D:
#ifndef UNICODE_3_2
- if (val <= 0x1D2B) { RETURN (true); }
- if (val <= 0x1D61) { RETURN (false); }
- if (val <= 0x1D70) { RETURN (true); }
+ if (val <= 0x1D2B) { RETURN (true); }
+ if (val <= 0x1D61) { RETURN (false); }
+ if (val <= 0x1D70) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x1E:
- if (val < 0x1E96) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x1E9F) { RETURN (true); }
- RETURN (TRUE_IF_ODD(val));
-
- case 0x1F:
- if (val <= 0x1F6F) {
- if (val & 0x0008) { RETURN (false); }
- RETURN (true);
- }
- if (val <= 0x1F87) { RETURN (true); }
- if (val < 0x1FB8) {
- if (val & 0x0008) { RETURN (false); }
- RETURN (true);
- }
- if (val == 0x1FBE) { RETURN (true); }
- if (val == 0x1FD4) { RETURN (false); }
- if (val == 0x1FC5) { RETURN (false); }
- if (val == 0x1FD5) { RETURN (false); }
- if (val == 0x1FC1) { RETURN (false); }
- if (val == 0x1FF1) { RETURN (false); }
- if (val == 0x1FC0) { RETURN (false); }
- if (val == 0x1FF0) { RETURN (false); }
- if (((val & 0x000F) >= 0x0000) && ((val & 0x000F) <= 0x0007)) { RETURN (true); }
- RETURN (false);
-
- case 0x20:
+ RETURN (false);
+
+ case 0x1E:
+ if (val < 0x1E96) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x1E9F) { RETURN (true); }
+ RETURN (TRUE_IF_ODD(val));
+
+ case 0x1F:
+ if (val <= 0x1F6F) {
+ if (val & 0x0008) { RETURN (false); }
+ RETURN (true);
+ }
+ if (val <= 0x1F87) { RETURN (true); }
+ if (val < 0x1FB8) {
+ if (val & 0x0008) { RETURN (false); }
+ RETURN (true);
+ }
+ if (val == 0x1FBE) { RETURN (true); }
+ if (val == 0x1FD4) { RETURN (false); }
+ if (val == 0x1FC5) { RETURN (false); }
+ if (val == 0x1FD5) { RETURN (false); }
+ if (val == 0x1FC1) { RETURN (false); }
+ if (val == 0x1FF1) { RETURN (false); }
+ if (val == 0x1FC0) { RETURN (false); }
+ if (val == 0x1FF0) { RETURN (false); }
+ if (((val & 0x000F) >= 0x0000) && ((val & 0x000F) <= 0x0007)) { RETURN (true); }
+ RETURN (false);
+
+ case 0x20:
#ifndef UNICODE_3_2
- if (val == 0x2071) { RETURN (true); }
+ if (val == 0x2071) { RETURN (true); }
#endif
- if (val == 0x207F) { RETURN (true); }
- RETURN (false);
-
- case 0x21:
- if (val == 0x210A) { RETURN (true); }
- if (val < 0x210E) { RETURN (false); }
- if (val <= 0x210F) { RETURN (true); }
- if (val == 0x2113) { RETURN (true); }
- if (val == 0x212F) { RETURN (true); }
- if (val == 0x2134) { RETURN (true); }
- if (val == 0x2139) { RETURN (true); }
+ if (val == 0x207F) { RETURN (true); }
+ RETURN (false);
+
+ case 0x21:
+ if (val == 0x210A) { RETURN (true); }
+ if (val < 0x210E) { RETURN (false); }
+ if (val <= 0x210F) { RETURN (true); }
+ if (val == 0x2113) { RETURN (true); }
+ if (val == 0x212F) { RETURN (true); }
+ if (val == 0x2134) { RETURN (true); }
+ if (val == 0x2139) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x213D) { RETURN (true); }
- if (val <= 0x2145) { RETURN (false); }
- if (val <= 0x2149) { RETURN (true); }
+ if (val == 0x213D) { RETURN (true); }
+ if (val <= 0x2145) { RETURN (false); }
+ if (val <= 0x2149) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0xFB:
- if (val <= 0xFB1C) { RETURN (true); }
- RETURN (false);
-
- case 0xFF:
- if ((val >= 0xFF41) && (val <= 0xFF5A)) { RETURN (true); }
- RETURN (false);
-
- case 0x104:
- if (val <= 0x10427) { RETURN (false); }
- if (val <= 0x1044D) { RETURN (true); }
+ RETURN (false);
+
+ case 0xFB:
+ if (val <= 0xFB1C) { RETURN (true); }
+ RETURN (false);
+
+ case 0xFF:
+ if ((val >= 0xFF41) && (val <= 0xFF5A)) { RETURN (true); }
+ RETURN (false);
+
+ case 0x104:
+ if (val <= 0x10427) { RETURN (false); }
+ if (val <= 0x1044D) { RETURN (true); }
#ifdef UNICODE_3_2
- if (val <= 0x1044D) { RETURN (true); }
+ if (val <= 0x1044D) { RETURN (true); }
#else
- if (val <= 0x1044F) { RETURN (true); }
+ if (val <= 0x1044F) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x1D4:
- case 0x1D5:
- case 0x1D6:
- if (val <= 0x1D419) { RETURN (false); }
- if (val < 0x1D6be) {
- if (((val - 0x1D41A) % 52) <= 25) { RETURN (true); }
- RETURN (false);
- }
- if (val < 0x1D6c2) { RETURN (false); }
- if (val < 0x1D6db) { RETURN (true); }
- if (val == 0x1D6db) { RETURN (false); }
- if (val < 0x1D6e2) { RETURN (true); }
- if (val <= 0x1D6fb) { RETURN (false); }
- RETURN (true);
+ RETURN (false);
+
+ case 0x1D4:
+ case 0x1D5:
+ case 0x1D6:
+ if (val <= 0x1D419) { RETURN (false); }
+ if (val < 0x1D6be) {
+ if (((val - 0x1D41A) % 52) <= 25) { RETURN (true); }
+ RETURN (false);
+ }
+ if (val < 0x1D6c2) { RETURN (false); }
+ if (val < 0x1D6db) { RETURN (true); }
+ if (val == 0x1D6db) { RETURN (false); }
+ if (val < 0x1D6e2) { RETURN (true); }
+ if (val <= 0x1D6fb) { RETURN (false); }
+ RETURN (true);
}
#undef TRUE_IF_ODD
#undef TRUE_IF_EVEN
@@ -1978,15 +1978,15 @@
#ifndef NON_ASCII /* i.e. EBCDIC ;-) */
if (val <= ' ')
#endif
- if ((val == ' ')
- || (val == '\n')
- || (val == '\t')
- || (val == '\r')
- || (val == '\f')) {
- RETURN ( true );
- }
+ if ((val == ' ')
+ || (val == '\n')
+ || (val == '\t')
+ || (val == '\r')
+ || (val == '\f')) {
+ RETURN ( true );
+ }
RETURN (false);
-%}.
+%}.
^ (asciivalue == 16r20)
or:[asciivalue == 16r0D
or:[asciivalue == 16r0A
@@ -1998,9 +1998,9 @@
isUppercase
"return true, if I am an upper-case letter.
This one does care for national characters.
- Caveat:
- only returns the correct value for codes up to u+1d6ff (Unicode3.1).
- (which is more than mozilla does, btw. ;-)"
+ Caveat:
+ only returns the correct value for codes up to u+1d6ff (Unicode3.1).
+ (which is more than mozilla does, btw. ;-)"
%{ /* NOCONTEXT */
#define TRUE_IF_ODD(x) ((x & 1) ? true : false)
@@ -2011,197 +2011,197 @@
val = __intVal(__INST(asciivalue));
switch (val >> 8) {
- case 0x00:
- if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
- RETURN ( true );
- }
- /* iso8859 puts national upper case characters at c0 .. df */
- if ((val >= 0xC0) && (val <= 0xDE)) {
- if (val != 0xD7) {
- RETURN(true);
- }
- }
- RETURN (false);
-
- case 0x01:
- if (val <= 0x0137) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x0148) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x0178) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x017E) { RETURN (TRUE_IF_ODD(val)); }
- if (val < 0x01CD) {
- if (val == 0x0180) { RETURN (false); }
- if (val == 0x0181) { RETURN (true); }
- if (val <= 0x0186) {
- RETURN (TRUE_IF_EVEN(val));
- }
- if (val <= 0x0189) {
- RETURN (TRUE_IF_ODD(val));
- }
- if (val <= 0x018B) { RETURN (true); }
- if (val <= 0x018D) { RETURN (false); }
- if (val <= 0x0191) { RETURN (true); }
- if (val == 0x0193) { RETURN (true); }
- if (val == 0x0194) { RETURN (true); }
- if (val == 0x0196) { RETURN (true); }
- if (val == 0x0197) { RETURN (true); }
- if (val == 0x0198) { RETURN (true); }
- if (val == 0x019C) { RETURN (true); }
- if (val == 0x019D) { RETURN (true); }
- if (val == 0x019F) { RETURN (true); }
- if (val < 0x01A0) { RETURN (false); }
- if (val <= 0x01A6) { RETURN (TRUE_IF_EVEN(val)); }
- if (val <= 0x01AA) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x01AE) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x01B2) { RETURN (true); }
- if (val <= 0x01B7) { RETURN (TRUE_IF_ODD(val)); }
- if (val == 0x01B8) { RETURN (true); }
- if (val == 0x01BC) { RETURN (true); }
- if (val == 0x01C4) { RETURN (true); }
- if (val == 0x01C7) { RETURN (true); }
+ case 0x00:
+ if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
+ RETURN ( true );
+ }
+ /* iso8859 puts national upper case characters at c0 .. df */
+ if ((val >= 0xC0) && (val <= 0xDE)) {
+ if (val != 0xD7) {
+ RETURN(true);
+ }
+ }
+ RETURN (false);
+
+ case 0x01:
+ if (val <= 0x0137) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x0148) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x0178) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x017E) { RETURN (TRUE_IF_ODD(val)); }
+ if (val < 0x01CD) {
+ if (val == 0x0180) { RETURN (false); }
+ if (val == 0x0181) { RETURN (true); }
+ if (val <= 0x0186) {
+ RETURN (TRUE_IF_EVEN(val));
+ }
+ if (val <= 0x0189) {
+ RETURN (TRUE_IF_ODD(val));
+ }
+ if (val <= 0x018B) { RETURN (true); }
+ if (val <= 0x018D) { RETURN (false); }
+ if (val <= 0x0191) { RETURN (true); }
+ if (val == 0x0193) { RETURN (true); }
+ if (val == 0x0194) { RETURN (true); }
+ if (val == 0x0196) { RETURN (true); }
+ if (val == 0x0197) { RETURN (true); }
+ if (val == 0x0198) { RETURN (true); }
+ if (val == 0x019C) { RETURN (true); }
+ if (val == 0x019D) { RETURN (true); }
+ if (val == 0x019F) { RETURN (true); }
+ if (val < 0x01A0) { RETURN (false); }
+ if (val <= 0x01A6) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val <= 0x01AA) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x01AE) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x01B2) { RETURN (true); }
+ if (val <= 0x01B7) { RETURN (TRUE_IF_ODD(val)); }
+ if (val == 0x01B8) { RETURN (true); }
+ if (val == 0x01BC) { RETURN (true); }
+ if (val == 0x01C4) { RETURN (true); }
+ if (val == 0x01C7) { RETURN (true); }
#if 0
- if (val == 0x01C8) { RETURN (true); }
+ if (val == 0x01C8) { RETURN (true); }
#endif
- if (val == 0x01CA) { RETURN (true); }
+ if (val == 0x01CA) { RETURN (true); }
#if 0
- if (val == 0x01CB) { RETURN (true); }
+ if (val == 0x01CB) { RETURN (true); }
#endif
- RETURN (false); /* WRONG !!! */
- }
- if (val <= 0x01DC) { RETURN (TRUE_IF_ODD(val)); }
- if (val <= 0x01EF) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x01F0) { RETURN (false); }
- if (val == 0x01F1) { RETURN (true); }
- if (val == 0x01F2) { RETURN (false); }
- if (val == 0x01F3) { RETURN (false); }
- if (val == 0x01F4) { RETURN (true); }
- if (val == 0x01F5) { RETURN (false); }
- if (val == 0x01F6) { RETURN (true); }
- if (val == 0x01F7) { RETURN (true); }
- RETURN (TRUE_IF_EVEN(val));
-
- case 0x02:
- if (val <= 0x0233) { RETURN (TRUE_IF_EVEN(val)); }
- RETURN (false);
-
- case 0x03:
- if (val < 0x0386) { RETURN (false); }
- if (val == 0x0387) { RETURN (false); }
- if (val == 0x0390) { RETURN (false); }
- if (val <= 0x03AB) { RETURN (true); }
- if (val <= 0x03D1) { RETURN (false); }
- if (val <= 0x03D4) { RETURN (true); }
- if (val <= 0x03D7) { RETURN (false); }
- if (val <= 0x03EF) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x03F4) { RETURN (true); }
+ RETURN (false); /* WRONG !!! */
+ }
+ if (val <= 0x01DC) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x01EF) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x01F0) { RETURN (false); }
+ if (val == 0x01F1) { RETURN (true); }
+ if (val == 0x01F2) { RETURN (false); }
+ if (val == 0x01F3) { RETURN (false); }
+ if (val == 0x01F4) { RETURN (true); }
+ if (val == 0x01F5) { RETURN (false); }
+ if (val == 0x01F6) { RETURN (true); }
+ if (val == 0x01F7) { RETURN (true); }
+ RETURN (TRUE_IF_EVEN(val));
+
+ case 0x02:
+ if (val <= 0x0233) { RETURN (TRUE_IF_EVEN(val)); }
+ RETURN (false);
+
+ case 0x03:
+ if (val < 0x0386) { RETURN (false); }
+ if (val == 0x0387) { RETURN (false); }
+ if (val == 0x0390) { RETURN (false); }
+ if (val <= 0x03AB) { RETURN (true); }
+ if (val <= 0x03D1) { RETURN (false); }
+ if (val <= 0x03D4) { RETURN (true); }
+ if (val <= 0x03D7) { RETURN (false); }
+ if (val <= 0x03EF) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x03F4) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x03F7) { RETURN (true); }
- if (val == 0x03F9) { RETURN (true); }
- if (val == 0x03Fa) { RETURN (true); }
+ if (val == 0x03F7) { RETURN (true); }
+ if (val == 0x03F9) { RETURN (true); }
+ if (val == 0x03Fa) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x04:
- if (val <= 0x042F) { RETURN (true); }
- if (val <= 0x045F) { RETURN (false); }
- if (val <= 0x0481) { RETURN (TRUE_IF_EVEN(val)); }
- if (val < 0x048A) { RETURN (false); }
- if (val <= 0x04C0) { RETURN (TRUE_IF_EVEN(val)); }
+ RETURN (false);
+
+ case 0x04:
+ if (val <= 0x042F) { RETURN (true); }
+ if (val <= 0x045F) { RETURN (false); }
+ if (val <= 0x0481) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val < 0x048A) { RETURN (false); }
+ if (val <= 0x04C0) { RETURN (TRUE_IF_EVEN(val)); }
#ifdef UNICODE_3_2
- if (val == 0x04C5) { RETURN (false); }
+ if (val == 0x04C5) { RETURN (false); }
#endif
#ifdef UNICODE_3_2
- if (val <= 0x04C8) { RETURN (TRUE_IF_ODD(val)); }
+ if (val <= 0x04C8) { RETURN (TRUE_IF_ODD(val)); }
#else
- if (val <= 0x04CA) { RETURN (TRUE_IF_ODD(val)); }
- if (val == 0x04CD) { RETURN (true); }
- if (val == 0x04CE) { RETURN (false); }
+ if (val <= 0x04CA) { RETURN (TRUE_IF_ODD(val)); }
+ if (val == 0x04CD) { RETURN (true); }
+ if (val == 0x04CE) { RETURN (false); }
#endif
- if (val == 0x04CB) { RETURN (true); }
- if (val == 0x04CC) { RETURN (false); }
- RETURN (TRUE_IF_EVEN(val));
-
- case 0x05:
- if (val <= 0x050F) { RETURN (TRUE_IF_EVEN(val)); }
- if (val < 0x0531) { RETURN (false); }
- if (val <= 0x0556) { RETURN (true); }
- RETURN (false);
-
- case 0x10:
- if (val < 0x10A0) { RETURN (false); }
- if (val <= 0x10CF) { RETURN (true); }
- RETURN (false);
-
- case 0x1E:
- if (val < 0x1E96) { RETURN (TRUE_IF_EVEN(val)); }
- if (val < 0x1EA0) { RETURN (false); }
- RETURN (TRUE_IF_EVEN(val));
-
- case 0x1F:
- if (val <= 0x1F6F) {
- if (val & 0x0008) { RETURN (true); }
- }
- if (val <= 0x1F87) { RETURN (false); }
- if (val < 0x1FB8) { RETURN (false); }
- if (val < 0x1FBC) { RETURN (true); }
- if (val == 0x1FEC) { RETURN (true); }
- if (((val & 0x000F) >= 0x0008) && ((val & 0x000F) <= 0x000B)) { RETURN (true); }
- RETURN (false);
-
- case 0x21:
- if (val == 0x2102) { RETURN (true); }
- if (val == 0x2107) { RETURN (true); }
- if (val < 0x210B) { RETURN (false); }
- if (val < 0x210E) { RETURN (true); }
- if (val == 0x2110) { RETURN (true); }
- if (val == 0x2111) { RETURN (true); }
- if (val == 0x2112) { RETURN (true); }
- if (val == 0x2115) { RETURN (true); }
- if (val == 0x2119) { RETURN (true); }
- if (val == 0x211A) { RETURN (true); }
- if (val == 0x211B) { RETURN (true); }
- if (val == 0x211C) { RETURN (true); }
- if (val == 0x211D) { RETURN (true); }
- if (val < 0x2124) { RETURN (false); }
- if (val <= 0x212A) { RETURN (TRUE_IF_EVEN(val)); }
- if (val == 0x212B) { RETURN (true); }
- if (val == 0x212C) { RETURN (true); }
- if (val == 0x212D) { RETURN (true); }
- if (val == 0x2130) { RETURN (true); }
- if (val == 0x2131) { RETURN (true); }
- if (val == 0x2133) { RETURN (true); }
+ if (val == 0x04CB) { RETURN (true); }
+ if (val == 0x04CC) { RETURN (false); }
+ RETURN (TRUE_IF_EVEN(val));
+
+ case 0x05:
+ if (val <= 0x050F) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val < 0x0531) { RETURN (false); }
+ if (val <= 0x0556) { RETURN (true); }
+ RETURN (false);
+
+ case 0x10:
+ if (val < 0x10A0) { RETURN (false); }
+ if (val <= 0x10CF) { RETURN (true); }
+ RETURN (false);
+
+ case 0x1E:
+ if (val < 0x1E96) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val < 0x1EA0) { RETURN (false); }
+ RETURN (TRUE_IF_EVEN(val));
+
+ case 0x1F:
+ if (val <= 0x1F6F) {
+ if (val & 0x0008) { RETURN (true); }
+ }
+ if (val <= 0x1F87) { RETURN (false); }
+ if (val < 0x1FB8) { RETURN (false); }
+ if (val < 0x1FBC) { RETURN (true); }
+ if (val == 0x1FEC) { RETURN (true); }
+ if (((val & 0x000F) >= 0x0008) && ((val & 0x000F) <= 0x000B)) { RETURN (true); }
+ RETURN (false);
+
+ case 0x21:
+ if (val == 0x2102) { RETURN (true); }
+ if (val == 0x2107) { RETURN (true); }
+ if (val < 0x210B) { RETURN (false); }
+ if (val < 0x210E) { RETURN (true); }
+ if (val == 0x2110) { RETURN (true); }
+ if (val == 0x2111) { RETURN (true); }
+ if (val == 0x2112) { RETURN (true); }
+ if (val == 0x2115) { RETURN (true); }
+ if (val == 0x2119) { RETURN (true); }
+ if (val == 0x211A) { RETURN (true); }
+ if (val == 0x211B) { RETURN (true); }
+ if (val == 0x211C) { RETURN (true); }
+ if (val == 0x211D) { RETURN (true); }
+ if (val < 0x2124) { RETURN (false); }
+ if (val <= 0x212A) { RETURN (TRUE_IF_EVEN(val)); }
+ if (val == 0x212B) { RETURN (true); }
+ if (val == 0x212C) { RETURN (true); }
+ if (val == 0x212D) { RETURN (true); }
+ if (val == 0x2130) { RETURN (true); }
+ if (val == 0x2131) { RETURN (true); }
+ if (val == 0x2133) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x213E) { RETURN (true); }
- if (val == 0x213F) { RETURN (true); }
- if (val == 0x2145) { RETURN (true); }
+ if (val == 0x213E) { RETURN (true); }
+ if (val == 0x213F) { RETURN (true); }
+ if (val == 0x2145) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0xFF:
- if ((val >= 0xFF21) && (val <= 0xFF3A)) { RETURN (true); }
- RETURN (false);
-
- case 0x104:
- if (val <= 0x10427) { RETURN (true); }
- RETURN (false);
-
- case 0x1D4:
- case 0x1D5:
- case 0x1D6:
- if (val <= 0x1D419) { RETURN (true); }
- if (val < 0x1D6be) {
- if (((val - 0x1D41A) % 52) <= 25) { RETURN (false); }
- RETURN (true);
- }
- if (val < 0x1D6c1) { RETURN (true); }
- if (val < 0x1D6e2) { RETURN (false); }
- if (val < 0x1D6fb) { RETURN (true); }
-
- RETURN (false);
+ RETURN (false);
+
+ case 0xFF:
+ if ((val >= 0xFF21) && (val <= 0xFF3A)) { RETURN (true); }
+ RETURN (false);
+
+ case 0x104:
+ if (val <= 0x10427) { RETURN (true); }
+ RETURN (false);
+
+ case 0x1D4:
+ case 0x1D5:
+ case 0x1D6:
+ if (val <= 0x1D419) { RETURN (true); }
+ if (val < 0x1D6be) {
+ if (((val - 0x1D41A) % 52) <= 25) { RETURN (false); }
+ RETURN (true);
+ }
+ if (val < 0x1D6c1) { RETURN (true); }
+ if (val < 0x1D6e2) { RETURN (false); }
+ if (val < 0x1D6fb) { RETURN (true); }
+
+ RETURN (false);
}
RETURN (false);
-#undef TRUE_IF_ODD
-#undef TRUE_IF_EVEN
+#undef TRUE_IF_ODD
+#undef TRUE_IF_EVEN
%}
!
@@ -2236,7 +2236,7 @@
current language (Language variable)"
self isNationalLetter ifTrue:[^ true].
- ^ self isNationalDigit
+ ^ self isNationalDigit
!
isNationalDigit
@@ -2248,9 +2248,9 @@
codePoint := asciivalue.
- codePoint <= 16rFF ifTrue:[ "/ u00xx - unicode latin1 page
- (codePoint between:($0 codePoint) and:($9 codePoint)) ifTrue:[^ true].
- ^ false
+ codePoint <= 16rFF ifTrue:[ "/ u00xx - unicode latin1 page
+ (codePoint between:($0 codePoint) and:($9 codePoint)) ifTrue:[^ true].
+ ^ false
].
(codePoint between:16rFF10 and:16rFF19) ifTrue:[ ^ true].
@@ -2260,8 +2260,8 @@
isNationalLetter
"return true, if the receiver is a letter.
CAVEAT:
- for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
- (which is more than mozilla does, btw. ;-)"
+ for now, this method is only correct for unicode characters up to u+1d6ff (Unicode3.1).
+ (which is more than mozilla does, btw. ;-)"
%{ /* NOCONTEXT */
@@ -2269,470 +2269,470 @@
val = __intVal(__INST(asciivalue));
switch (val >> 8) {
- case 0x00:
- if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
- RETURN ( true );
- }
- if ((unsigned)(val - 'a') <= ('z' - 'a')) {
- RETURN ( true );
- }
- if (val == 0xAA) { RETURN (true); }
- if (val == 0xB5) { RETURN (true); }
- if (val == 0xBA) { RETURN (true); }
- if (val < 0xC0) { RETURN (false); }
- if (val == 0xD7) { RETURN (false); }
- if (val == 0xF7) { RETURN (false); }
- RETURN (true);
-
- case 0x01:
- RETURN (true);
-
- case 0x02:
+ case 0x00:
+ if ((unsigned)(val - 'A') <= ('Z' - 'A')) {
+ RETURN ( true );
+ }
+ if ((unsigned)(val - 'a') <= ('z' - 'a')) {
+ RETURN ( true );
+ }
+ if (val == 0xAA) { RETURN (true); }
+ if (val == 0xB5) { RETURN (true); }
+ if (val == 0xBA) { RETURN (true); }
+ if (val < 0xC0) { RETURN (false); }
+ if (val == 0xD7) { RETURN (false); }
+ if (val == 0xF7) { RETURN (false); }
+ RETURN (true);
+
+ case 0x01:
+ RETURN (true);
+
+ case 0x02:
#ifdef UNICODE_3_2
- if (val <= 0x2B8) { RETURN (true); }
- if (val == 0x2B9) { RETURN (false); }
- if (val == 0x2BA) { RETURN (false); }
+ if (val <= 0x2B8) { RETURN (true); }
+ if (val == 0x2B9) { RETURN (false); }
+ if (val == 0x2BA) { RETURN (false); }
#else
- if (val <= 0x2BA) { RETURN (true); }
+ if (val <= 0x2BA) { RETURN (true); }
#endif
- if (val <= 0x2C1) { RETURN (true); }
+ if (val <= 0x2C1) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val <= 0x2C5) { RETURN (false); }
- if (val <= 0x2CF) { RETURN (true); }
+ if (val <= 0x2C5) { RETURN (false); }
+ if (val <= 0x2CF) { RETURN (true); }
#endif
- if (val == 0x2D0) { RETURN (true); }
- if (val == 0x2D1) { RETURN (true); }
- if (val <= 0x2DF) { RETURN (false); }
- if (val <= 0x2E4) { RETURN (true); }
- if (val == 0x2EE) { RETURN (true); }
- RETURN (false);
-
- case 0x03:
- if (val == 0x37A) { RETURN (true); }
- if (val <= 0x385) { RETURN (false); }
- if (val == 0x387) { RETURN (false); }
+ if (val == 0x2D0) { RETURN (true); }
+ if (val == 0x2D1) { RETURN (true); }
+ if (val <= 0x2DF) { RETURN (false); }
+ if (val <= 0x2E4) { RETURN (true); }
+ if (val == 0x2EE) { RETURN (true); }
+ RETURN (false);
+
+ case 0x03:
+ if (val == 0x37A) { RETURN (true); }
+ if (val <= 0x385) { RETURN (false); }
+ if (val == 0x387) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0x3F6) { RETURN (false); }
+ if (val == 0x3F6) { RETURN (false); }
#endif
- RETURN (true);
-
- case 0x04:
- if (val <= 0x481) { RETURN (true); }
- if (val <= 0x486) { RETURN (false); }
- if (val == 0x487) { RETURN (true); }
+ RETURN (true);
+
+ case 0x04:
+ if (val <= 0x481) { RETURN (true); }
+ if (val <= 0x486) { RETURN (false); }
+ if (val == 0x487) { RETURN (true); }
#ifdef UNICODE_3_2
- if (val <= 0x48A) { RETURN (false); }
+ if (val <= 0x48A) { RETURN (false); }
#else
- if (val <= 0x489) { RETURN (false); }
+ if (val <= 0x489) { RETURN (false); }
#endif
- RETURN (true);
-
- case 0x05:
- if (val <= 0x50f) { RETURN (true); }
- if (val <= 0x530) { RETURN (false); }
- if (val <= 0x556) { RETURN (true); }
- if (val <= 0x558) { RETURN (false); }
- if (val <= 0x559) { RETURN (true); }
- if (val <= 0x55F) { RETURN (false); }
- if (val <= 0x587) { RETURN (true); }
- if (val <= 0x5cf) { RETURN (false); }
- if (val <= 0x5f2) { RETURN (true); }
- RETURN (false);
-
- case 0x06:
- if (val <= 0x620) { RETURN (false); }
- if (val <= 0x64A) { RETURN (true); }
- if (val <= 0x66D) { RETURN (false); }
- if (val == 0x670) { RETURN (false); }
- if (val <= 0x6D3) { RETURN (true); }
- if (val == 0x6D5) { RETURN (true); }
- if (val == 0x6E5) { RETURN (true); }
- if (val == 0x6E6) { RETURN (true); }
- if (val == 0x6EE) { RETURN (true); }
- if (val == 0x6EF) { RETURN (true); }
- if (val == 0x6FA) { RETURN (true); }
- if (val == 0x6FB) { RETURN (true); }
- if (val == 0x6FC) { RETURN (true); }
+ RETURN (true);
+
+ case 0x05:
+ if (val <= 0x50f) { RETURN (true); }
+ if (val <= 0x530) { RETURN (false); }
+ if (val <= 0x556) { RETURN (true); }
+ if (val <= 0x558) { RETURN (false); }
+ if (val <= 0x559) { RETURN (true); }
+ if (val <= 0x55F) { RETURN (false); }
+ if (val <= 0x587) { RETURN (true); }
+ if (val <= 0x5cf) { RETURN (false); }
+ if (val <= 0x5f2) { RETURN (true); }
+ RETURN (false);
+
+ case 0x06:
+ if (val <= 0x620) { RETURN (false); }
+ if (val <= 0x64A) { RETURN (true); }
+ if (val <= 0x66D) { RETURN (false); }
+ if (val == 0x670) { RETURN (false); }
+ if (val <= 0x6D3) { RETURN (true); }
+ if (val == 0x6D5) { RETURN (true); }
+ if (val == 0x6E5) { RETURN (true); }
+ if (val == 0x6E6) { RETURN (true); }
+ if (val == 0x6EE) { RETURN (true); }
+ if (val == 0x6EF) { RETURN (true); }
+ if (val == 0x6FA) { RETURN (true); }
+ if (val == 0x6FB) { RETURN (true); }
+ if (val == 0x6FC) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x6FF) { RETURN (true); }
+ if (val == 0x6FF) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x07:
- if (val <= 0x70F) { RETURN (false); }
- if (val == 0x711) { RETURN (false); }
- if (val <= 0x72F) { RETURN (true); }
+ RETURN (false);
+
+ case 0x07:
+ if (val <= 0x70F) { RETURN (false); }
+ if (val == 0x711) { RETURN (false); }
+ if (val <= 0x72F) { RETURN (true); }
#ifdef UNICODE_3_2
- if (val <= 0x74d) { RETURN (false); }
- if (val <= 0x74e) { RETURN (true); }
+ if (val <= 0x74d) { RETURN (false); }
+ if (val <= 0x74e) { RETURN (true); }
#else
- if (val <= 0x74c) { RETURN (false); }
- if (val <= 0x74f) { RETURN (true); }
+ if (val <= 0x74c) { RETURN (false); }
+ if (val <= 0x74f) { RETURN (true); }
#endif
- if (val <= 0x77F) { RETURN (false); }
- if (val <= 0x7a5) { RETURN (true); }
- if (val <= 0x7af) { RETURN (false); }
+ if (val <= 0x77F) { RETURN (false); }
+ if (val <= 0x7a5) { RETURN (true); }
+ if (val <= 0x7af) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0x7B1) { RETURN (true); }
+ if (val == 0x7B1) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x09:
+ RETURN (false);
+
+ case 0x09:
#ifdef UNICODE_3_2
- if (val <= 0x904) { RETURN (false); }
+ if (val <= 0x904) { RETURN (false); }
#else
- if (val <= 0x903) { RETURN (false); }
+ if (val <= 0x903) { RETURN (false); }
#endif
- if (val <= 0x93B) { RETURN (true); }
- if (val == 0x93D) { RETURN (true); }
- if (val == 0x950) { RETURN (true); }
- if (val <= 0x957) { RETURN (false); }
- if (val <= 0x961) { RETURN (true); }
- if (val <= 0x984) { RETURN (false); }
- if (val <= 0x9BB) { RETURN (true); }
+ if (val <= 0x93B) { RETURN (true); }
+ if (val == 0x93D) { RETURN (true); }
+ if (val == 0x950) { RETURN (true); }
+ if (val <= 0x957) { RETURN (false); }
+ if (val <= 0x961) { RETURN (true); }
+ if (val <= 0x984) { RETURN (false); }
+ if (val <= 0x9BB) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x9BD) { RETURN (true); }
+ if (val == 0x9BD) { RETURN (true); }
#endif
- if (val <= 0x9DB) { RETURN (false); }
- if (val <= 0x9E1) { RETURN (true); }
- if (val <= 0x9EF) { RETURN (false); }
- if (val <= 0x9F1) { RETURN (true); }
- RETURN (false);
-
- case 0x0A:
- if (val <= 0xa04) { RETURN (false); }
- if (val <= 0xa3B) { RETURN (true); }
- if (val <= 0xa58) { RETURN (false); }
- if (val <= 0xa65) { RETURN (true); }
- if (val <= 0xa71) { RETURN (false); }
- if (val <= 0xa80) { RETURN (true); }
- if (val <= 0xa84) { RETURN (false); }
- if (val <= 0xaBB) { RETURN (true); }
- if (val == 0xaBD) { RETURN (true); }
- if (val <= 0xaCF) { RETURN (false); }
+ if (val <= 0x9DB) { RETURN (false); }
+ if (val <= 0x9E1) { RETURN (true); }
+ if (val <= 0x9EF) { RETURN (false); }
+ if (val <= 0x9F1) { RETURN (true); }
+ RETURN (false);
+
+ case 0x0A:
+ if (val <= 0xa04) { RETURN (false); }
+ if (val <= 0xa3B) { RETURN (true); }
+ if (val <= 0xa58) { RETURN (false); }
+ if (val <= 0xa65) { RETURN (true); }
+ if (val <= 0xa71) { RETURN (false); }
+ if (val <= 0xa80) { RETURN (true); }
+ if (val <= 0xa84) { RETURN (false); }
+ if (val <= 0xaBB) { RETURN (true); }
+ if (val == 0xaBD) { RETURN (true); }
+ if (val <= 0xaCF) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0xAE2) { RETURN (false); }
- if (val == 0xAE3) { RETURN (false); }
+ if (val == 0xAE2) { RETURN (false); }
+ if (val == 0xAE3) { RETURN (false); }
#endif
- if (val <= 0xaE5) { RETURN (true); }
- RETURN (false);
-
- case 0x0B:
- if (val <= 0xB04) { RETURN (false); }
- if (val <= 0xb3B) { RETURN (true); }
- if (val == 0xb3d) { RETURN (true); }
- if (val <= 0xb5B) { RETURN (false); }
- if (val <= 0xb65) { RETURN (true); }
+ if (val <= 0xaE5) { RETURN (true); }
+ RETURN (false);
+
+ case 0x0B:
+ if (val <= 0xB04) { RETURN (false); }
+ if (val <= 0xb3B) { RETURN (true); }
+ if (val == 0xb3d) { RETURN (true); }
+ if (val <= 0xb5B) { RETURN (false); }
+ if (val <= 0xb65) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0xB71) { RETURN (true); }
- if (val == 0xB83) { RETURN (true); }
+ if (val == 0xB71) { RETURN (true); }
+ if (val == 0xB83) { RETURN (true); }
#endif
- if (val <= 0xb84) { RETURN (false); }
- if (val <= 0xbBB) { RETURN (true); }
- RETURN (false);
-
- case 0x0c:
- if (val <= 0xc04) { RETURN (false); }
- if (val <= 0xc3d) { RETURN (true); }
- if (val <= 0xc5f) { RETURN (false); }
- if (val <= 0xc65) { RETURN (true); }
- if (val <= 0xc84) { RETURN (false); }
+ if (val <= 0xb84) { RETURN (false); }
+ if (val <= 0xbBB) { RETURN (true); }
+ RETURN (false);
+
+ case 0x0c:
+ if (val <= 0xc04) { RETURN (false); }
+ if (val <= 0xc3d) { RETURN (true); }
+ if (val <= 0xc5f) { RETURN (false); }
+ if (val <= 0xc65) { RETURN (true); }
+ if (val <= 0xc84) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0xcbc) { RETURN (false); }
+ if (val == 0xcbc) { RETURN (false); }
#endif
- if (val <= 0xcbd) { RETURN (true); }
- if (val <= 0xcdc) { RETURN (false); }
- if (val <= 0xce5) { RETURN (true); }
- RETURN (false);
-
- case 0x0d:
- if (val <= 0xd04) { RETURN (false); }
- if (val <= 0xd3d) { RETURN (true); }
- if (val <= 0xd5f) { RETURN (false); }
- if (val <= 0xd65) { RETURN (true); }
- if (val <= 0xd84) { RETURN (false); }
- if (val <= 0xdc9) { RETURN (true); }
- RETURN (false);
-
- case 0x0E:
- if (val == 0xE31) { RETURN (false); }
- if (val <= 0xE33) { RETURN (true); }
- if (val <= 0xE3F) { RETURN (false); }
- if (val <= 0xE46) { RETURN (true); }
- if (val <= 0xE7f) { RETURN (false); }
- if (val <= 0xEb0) { RETURN (true); }
- if (val == 0xEb1) { RETURN (false); }
- if (val <= 0xEb3) { RETURN (true); }
- if (val <= 0xEbc) { RETURN (false); }
- if (val <= 0xEc7) { RETURN (true); }
- if (val <= 0xEdb) { RETURN (false); }
- RETURN (true);
-
- case 0x0F:
- if (val == 0xf00) { RETURN (true); }
- if (val <= 0xf3F) { RETURN (false); }
- if (val <= 0xf70) { RETURN (true); }
- if (val <= 0xf87) { RETURN (false); }
- if (val <= 0xf8f) { RETURN (true); }
- RETURN (false);
-
- case 0x10:
- if (val <= 0x102b) { RETURN (true); }
- if (val <= 0x104f) { RETURN (false); }
- if (val <= 0x1055) { RETURN (true); }
- if (val <= 0x109f) { RETURN (false); }
- if (val <= 0x10fa) { RETURN (true); }
- RETURN (false);
-
- case 0x11:
- case 0x12:
- RETURN (true);
-
- case 0x13:
- if (val <= 0x1360) { RETURN (true); }
- if (val <= 0x139f) { RETURN (false); }
- RETURN (true);
-
- case 0x14:
- case 0x15:
- RETURN (true);
-
- case 0x16:
- if (val == 0x166d) { RETURN (false); }
- if (val == 0x166e) { RETURN (false); }
- if (val == 0x1680) { RETURN (false); }
- if (val == 0x169b) { RETURN (false); }
- if (val == 0x169c) { RETURN (false); }
- if (val <= 0x16ea) { RETURN (true); }
- RETURN (false);
-
- case 0x17:
+ if (val <= 0xcbd) { RETURN (true); }
+ if (val <= 0xcdc) { RETURN (false); }
+ if (val <= 0xce5) { RETURN (true); }
+ RETURN (false);
+
+ case 0x0d:
+ if (val <= 0xd04) { RETURN (false); }
+ if (val <= 0xd3d) { RETURN (true); }
+ if (val <= 0xd5f) { RETURN (false); }
+ if (val <= 0xd65) { RETURN (true); }
+ if (val <= 0xd84) { RETURN (false); }
+ if (val <= 0xdc9) { RETURN (true); }
+ RETURN (false);
+
+ case 0x0E:
+ if (val == 0xE31) { RETURN (false); }
+ if (val <= 0xE33) { RETURN (true); }
+ if (val <= 0xE3F) { RETURN (false); }
+ if (val <= 0xE46) { RETURN (true); }
+ if (val <= 0xE7f) { RETURN (false); }
+ if (val <= 0xEb0) { RETURN (true); }
+ if (val == 0xEb1) { RETURN (false); }
+ if (val <= 0xEb3) { RETURN (true); }
+ if (val <= 0xEbc) { RETURN (false); }
+ if (val <= 0xEc7) { RETURN (true); }
+ if (val <= 0xEdb) { RETURN (false); }
+ RETURN (true);
+
+ case 0x0F:
+ if (val == 0xf00) { RETURN (true); }
+ if (val <= 0xf3F) { RETURN (false); }
+ if (val <= 0xf70) { RETURN (true); }
+ if (val <= 0xf87) { RETURN (false); }
+ if (val <= 0xf8f) { RETURN (true); }
+ RETURN (false);
+
+ case 0x10:
+ if (val <= 0x102b) { RETURN (true); }
+ if (val <= 0x104f) { RETURN (false); }
+ if (val <= 0x1055) { RETURN (true); }
+ if (val <= 0x109f) { RETURN (false); }
+ if (val <= 0x10fa) { RETURN (true); }
+ RETURN (false);
+
+ case 0x11:
+ case 0x12:
+ RETURN (true);
+
+ case 0x13:
+ if (val <= 0x1360) { RETURN (true); }
+ if (val <= 0x139f) { RETURN (false); }
+ RETURN (true);
+
+ case 0x14:
+ case 0x15:
+ RETURN (true);
+
+ case 0x16:
+ if (val == 0x166d) { RETURN (false); }
+ if (val == 0x166e) { RETURN (false); }
+ if (val == 0x1680) { RETURN (false); }
+ if (val == 0x169b) { RETURN (false); }
+ if (val == 0x169c) { RETURN (false); }
+ if (val <= 0x16ea) { RETURN (true); }
+ RETURN (false);
+
+ case 0x17:
#ifndef UNICODE_3_2
- if (val == 0x1712) { RETURN (false); }
- if (val == 0x1713) { RETURN (false); }
- if (val == 0x1714) { RETURN (false); }
- if (val == 0x1732) { RETURN (false); }
- if (val == 0x1733) { RETURN (false); }
- if (val == 0x1734) { RETURN (false); }
- if (val == 0x1735) { RETURN (false); }
- if (val == 0x1736) { RETURN (false); }
- if (val == 0x1752) { RETURN (false); }
- if (val == 0x1753) { RETURN (false); }
- if (val == 0x1772) { RETURN (false); }
- if (val == 0x1773) { RETURN (false); }
+ if (val == 0x1712) { RETURN (false); }
+ if (val == 0x1713) { RETURN (false); }
+ if (val == 0x1714) { RETURN (false); }
+ if (val == 0x1732) { RETURN (false); }
+ if (val == 0x1733) { RETURN (false); }
+ if (val == 0x1734) { RETURN (false); }
+ if (val == 0x1735) { RETURN (false); }
+ if (val == 0x1736) { RETURN (false); }
+ if (val == 0x1752) { RETURN (false); }
+ if (val == 0x1753) { RETURN (false); }
+ if (val == 0x1772) { RETURN (false); }
+ if (val == 0x1773) { RETURN (false); }
#endif
- if (val <= 0x17b3) { RETURN (true); }
+ if (val <= 0x17b3) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x17D7) { RETURN (true); }
- if (val == 0x17DC) { RETURN (true); }
+ if (val == 0x17D7) { RETURN (true); }
+ if (val == 0x17DC) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x18:
- if (val <= 0x181f) { RETURN (false); }
- if (val <= 0x18a8) { RETURN (true); }
- RETURN (false);
-
- case 0x19:
+ RETURN (false);
+
+ case 0x18:
+ if (val <= 0x181f) { RETURN (false); }
+ if (val <= 0x18a8) { RETURN (true); }
+ RETURN (false);
+
+ case 0x19:
#ifndef UNICODE_3_2
- if (val <= 0x191F) { RETURN (true); }
- if (val <= 0x194F) { RETURN (false); }
- if (val <= 0x197F) { RETURN (true); }
+ if (val <= 0x191F) { RETURN (true); }
+ if (val <= 0x194F) { RETURN (false); }
+ if (val <= 0x197F) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x1d:
- if (val = 0x1d00) { RETURN (true); }
- RETURN (false);
-
- case 0x1e:
- RETURN (true);
-
- case 0x1f:
- if (val <= 0x1fbc) { RETURN (true); }
- if (val == 0x1fbe) { RETURN (true); }
- if (val <= 0x1fc1) { RETURN (false); }
- if (val <= 0x1fcc) { RETURN (true); }
- if (val <= 0x1fcf) { RETURN (false); }
- if (val <= 0x1fdc) { RETURN (true); }
- if (val <= 0x1fdf) { RETURN (false); }
- if (val <= 0x1fec) { RETURN (true); }
- if (val <= 0x1ff1) { RETURN (false); }
- if (val <= 0x1ffc) { RETURN (true); }
- RETURN (false);
-
- case 0x20:
+ RETURN (false);
+
+ case 0x1d:
+ if (val = 0x1d00) { RETURN (true); }
+ RETURN (false);
+
+ case 0x1e:
+ RETURN (true);
+
+ case 0x1f:
+ if (val <= 0x1fbc) { RETURN (true); }
+ if (val == 0x1fbe) { RETURN (true); }
+ if (val <= 0x1fc1) { RETURN (false); }
+ if (val <= 0x1fcc) { RETURN (true); }
+ if (val <= 0x1fcf) { RETURN (false); }
+ if (val <= 0x1fdc) { RETURN (true); }
+ if (val <= 0x1fdf) { RETURN (false); }
+ if (val <= 0x1fec) { RETURN (true); }
+ if (val <= 0x1ff1) { RETURN (false); }
+ if (val <= 0x1ffc) { RETURN (true); }
+ RETURN (false);
+
+ case 0x20:
#ifndef UNICODE_3_2
- if (val == 0x2071) { RETURN (true); }
+ if (val == 0x2071) { RETURN (true); }
#endif
- if (val == 0x207f) { RETURN (true); }
- RETURN (false);
-
- case 0x21:
- if (val == 0x2102) { RETURN (true); }
- if (val == 0x2107) { RETURN (true); }
- if (val <= 0x2109) { RETURN (false); }
- if (val <= 0x2113) { RETURN (true); }
- if (val == 0x2115) { RETURN (true); }
- if (val <= 0x2118) { RETURN (false); }
- if (val <= 0x211d) { RETURN (true); }
- if (val <= 0x2123) { RETURN (false); }
- if (val == 0x2125) { RETURN (false); }
- if (val == 0x2127) { RETURN (false); }
- if (val == 0x2129) { RETURN (false); }
- if (val == 0x212E) { RETURN (false); }
- if (val == 0x2132) { RETURN (false); }
- if (val == 0x213A) { RETURN (false); }
+ if (val == 0x207f) { RETURN (true); }
+ RETURN (false);
+
+ case 0x21:
+ if (val == 0x2102) { RETURN (true); }
+ if (val == 0x2107) { RETURN (true); }
+ if (val <= 0x2109) { RETURN (false); }
+ if (val <= 0x2113) { RETURN (true); }
+ if (val == 0x2115) { RETURN (true); }
+ if (val <= 0x2118) { RETURN (false); }
+ if (val <= 0x211d) { RETURN (true); }
+ if (val <= 0x2123) { RETURN (false); }
+ if (val == 0x2125) { RETURN (false); }
+ if (val == 0x2127) { RETURN (false); }
+ if (val == 0x2129) { RETURN (false); }
+ if (val == 0x212E) { RETURN (false); }
+ if (val == 0x2132) { RETURN (false); }
+ if (val == 0x213A) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0x213B) { RETURN (false); }
- if (val <= 0x213F) { RETURN (true); }
- if (val <= 0x2144) { RETURN (false); }
- if (val == 0x214A) { RETURN (false); }
- if (val == 0x214B) { RETURN (false); }
+ if (val == 0x213B) { RETURN (false); }
+ if (val <= 0x213F) { RETURN (true); }
+ if (val <= 0x2144) { RETURN (false); }
+ if (val == 0x214A) { RETURN (false); }
+ if (val == 0x214B) { RETURN (false); }
#endif
- if (val <= 0x2152) { RETURN (true); }
- RETURN (false);
-
- case 0x30:
- if (val == 0x3005) { RETURN (true); }
- if (val == 0x3006) { RETURN (true); }
- if (val <= 0x3030) { RETURN (false); }
- if (val <= 0x3035) { RETURN (true); }
+ if (val <= 0x2152) { RETURN (true); }
+ RETURN (false);
+
+ case 0x30:
+ if (val == 0x3005) { RETURN (true); }
+ if (val == 0x3006) { RETURN (true); }
+ if (val <= 0x3030) { RETURN (false); }
+ if (val <= 0x3035) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val == 0x303B) { RETURN (true); }
- if (val == 0x303C) { RETURN (true); }
+ if (val == 0x303B) { RETURN (true); }
+ if (val == 0x303C) { RETURN (true); }
#endif
- if (val <= 0x3040) { RETURN (false); }
- if (val <= 0x3098) { RETURN (true); }
- if (val <= 0x309c) { RETURN (false); }
+ if (val <= 0x3040) { RETURN (false); }
+ if (val <= 0x3098) { RETURN (true); }
+ if (val <= 0x309c) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0x30A0) { RETURN (false); }
+ if (val == 0x30A0) { RETURN (false); }
#endif
- if (val == 0x30Fb) { RETURN (false); }
- RETURN ((true));
-
- case 0x31:
- if (val <= 0x318f) { RETURN (true); }
- if (val <= 0x319F) { RETURN (false); }
- RETURN ((true));
-
- case 0x34:
- RETURN ((true));
-
- case 0x4d:
- if (val <= 0x4DB4) { RETURN (false); }
+ if (val == 0x30Fb) { RETURN (false); }
+ RETURN ((true));
+
+ case 0x31:
+ if (val <= 0x318f) { RETURN (true); }
+ if (val <= 0x319F) { RETURN (false); }
+ RETURN ((true));
+
+ case 0x34:
+ RETURN ((true));
+
+ case 0x4d:
+ if (val <= 0x4DB4) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val <= 0x4DBF) { RETURN (true); }
- RETURN (false);
+ if (val <= 0x4DBF) { RETURN (true); }
+ RETURN (false);
#else
- RETURN (true);
+ RETURN (true);
#endif
- case 0x4e:
- RETURN ((true));
-
- case 0x9f:
- if (val <= 0x9fa4) { RETURN (false); }
- RETURN (true);
-
- case 0xA0:
- case 0xA1:
- case 0xA2:
- case 0xA3:
- RETURN (true);
-
- case 0xA4:
- if (val <= 0xa48f) { RETURN (true); }
- RETURN (false);
-
- case 0xA5:
- RETURN (true);
-
- case 0xAC:
- RETURN (true);
-
- case 0xD7:
- RETURN (true);
-
- case 0xF9:
- case 0xFA:
- RETURN (true);
-
- case 0xFB:
- if (val == 0xfb1e) { RETURN (false); }
- if (val == 0xfb29) { RETURN (false); }
- RETURN (true);
-
- case 0xFC:
- RETURN (true);
-
- case 0xFD:
- if (val <= 0xFD3d) { RETURN (true); }
- if (val <= 0xFD4F) { RETURN (false); }
+ case 0x4e:
+ RETURN ((true));
+
+ case 0x9f:
+ if (val <= 0x9fa4) { RETURN (false); }
+ RETURN (true);
+
+ case 0xA0:
+ case 0xA1:
+ case 0xA2:
+ case 0xA3:
+ RETURN (true);
+
+ case 0xA4:
+ if (val <= 0xa48f) { RETURN (true); }
+ RETURN (false);
+
+ case 0xA5:
+ RETURN (true);
+
+ case 0xAC:
+ RETURN (true);
+
+ case 0xD7:
+ RETURN (true);
+
+ case 0xF9:
+ case 0xFA:
+ RETURN (true);
+
+ case 0xFB:
+ if (val == 0xfb1e) { RETURN (false); }
+ if (val == 0xfb29) { RETURN (false); }
+ RETURN (true);
+
+ case 0xFC:
+ RETURN (true);
+
+ case 0xFD:
+ if (val <= 0xFD3d) { RETURN (true); }
+ if (val <= 0xFD4F) { RETURN (false); }
#ifndef UNICODE_3_2
- if (val == 0xFDFC) { RETURN (false); }
- if (val == 0xFDFD) { RETURN (false); }
+ if (val == 0xFDFC) { RETURN (false); }
+ if (val == 0xFDFD) { RETURN (false); }
#endif
- RETURN (true);
-
- case 0xFE:
+ RETURN (true);
+
+ case 0xFE:
#ifndef UNICODE_3_2
- if (val <= 0xFE0F) { RETURN (false); }
+ if (val <= 0xFE0F) { RETURN (false); }
#endif
- if (val <= 0xFE1f) { RETURN (true); }
- if (val <= 0xFE6F) { RETURN (false); }
- if (val <= 0xFEFE) { RETURN (true); }
- RETURN (false);
-
- case 0xFF:
- if (val <= 0xFF20) { RETURN (false); }
- if (val <= 0xFF3a) { RETURN (true); }
- if (val <= 0xFF40) { RETURN (false); }
- if (val <= 0xFF5a) { RETURN (true); }
- if (val <= 0xFF65) { RETURN (false); }
- if (val <= 0xFFdC) { RETURN (true); }
- RETURN (false);
-
- case 0x100:
+ if (val <= 0xFE1f) { RETURN (true); }
+ if (val <= 0xFE6F) { RETURN (false); }
+ if (val <= 0xFEFE) { RETURN (true); }
+ RETURN (false);
+
+ case 0xFF:
+ if (val <= 0xFF20) { RETURN (false); }
+ if (val <= 0xFF3a) { RETURN (true); }
+ if (val <= 0xFF40) { RETURN (false); }
+ if (val <= 0xFF5a) { RETURN (true); }
+ if (val <= 0xFF65) { RETURN (false); }
+ if (val <= 0xFFdC) { RETURN (true); }
+ RETURN (false);
+
+ case 0x100:
#ifndef UNICODE_3_2
- RETURN (true);
+ RETURN (true);
#else
- RETURN (false);
+ RETURN (false);
#endif
- case 0x103:
- if (val <= 0x1031f) { RETURN (true); }
- if (val <= 0x1032F) { RETURN (false); }
- if (val <= 0x10349) { RETURN (true); }
+ case 0x103:
+ if (val <= 0x1031f) { RETURN (true); }
+ if (val <= 0x1032F) { RETURN (false); }
+ if (val <= 0x10349) { RETURN (true); }
#ifndef UNICODE_3_2
- if (val <= 0x1037F) { RETURN (false); }
- if (val <= 0x1039E) { RETURN (true); }
+ if (val <= 0x1037F) { RETURN (false); }
+ if (val <= 0x1039E) { RETURN (true); }
#endif
- RETURN (false);
-
- case 0x104:
+ RETURN (false);
+
+ case 0x104:
#ifndef UNICODE_3_2
- if (val <= 0x1049F) { RETURN (true); }
- if (val <= 0x104aF) { RETURN (false); }
+ if (val <= 0x1049F) { RETURN (true); }
+ if (val <= 0x104aF) { RETURN (false); }
#endif
- RETURN (true);
-
- case 0x108:
+ RETURN (true);
+
+ case 0x108:
#ifndef UNICODE_3_2
- RETURN (true);
+ RETURN (true);
#else
- RETURN (false);
+ RETURN (false);
#endif
- case 0x1D4:
- case 0x1D5:
- RETURN (true);
-
- case 0x1D6:
- if (val == 0x1d6c1) { RETURN (false); }
- if (val == 0x1d6db) { RETURN (false); }
- if (val == 0x1d6fb) { RETURN (false); }
- RETURN (true);
+ case 0x1D4:
+ case 0x1D5:
+ RETURN (true);
+
+ case 0x1D6:
+ if (val == 0x1d6c1) { RETURN (false); }
+ if (val == 0x1d6db) { RETURN (false); }
+ if (val == 0x1d6fb) { RETURN (false); }
+ RETURN (true);
}
RETURN (false);
%}
@@ -2757,5 +2757,5 @@
!Character class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.125 2006-02-20 11:26:22 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.126 2006-02-20 13:38:33 cg Exp $'
! !