[squeak-dev] The Trunk: Multilingual-nice.196.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu May 29 13:00:37 UTC 2014
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.196.mcz
==================== Summary ====================
Name: Multilingual-nice.196
Author: nice
Time: 29 May 2014, 2:59:48.329 pm
UUID: 07f39804-8e14-49be-a55f-e8d2b809fddd
Ancestors: Multilingual-nice.195
Generalized what I did to Unicode: provide an API dealing with codes
Add charsetClass conveniency for this reason:
(EncodedCharSet charsetAt: leadingChar) is not always a charset, it can also be a LanguageEnvironment.
(EncodedCharSet charsetAt: leadingChar) charsetClass will always be a charset (an EncodedCharSet subclass)
=============== Diff against Multilingual-nice.195 ===============
Item was added:
+ ----- Method: EncodedCharSet class>>charsetClass (in category 'class methods') -----
+ charsetClass
+ ^self!
Item was added:
+ ----- Method: EncodedCharSet class>>convertToUnicode: (in category 'class methods') -----
+ convertToUnicode: aCode
+ "Translate aCode in our encoding, into equivalent unicode encoding"
+ | table v |
+ (table := self ucsTable) ifNil: [^ 16rFFFD].
+ (v := table at: 1 + self charCode) = -1 ifTrue: [^ 16rFFFD].
+ ^ v!
Item was changed:
----- Method: EncodedCharSet class>>isDigit: (in category 'character classification') -----
isDigit: char
+ "Answer whether char has the code of a digit in this encoding."
+ ^self isDigitCode: char charCode
- "Answer whether the receiver is a digit."
-
- | value |
- value := char asciiValue.
- ^ value >= 48 and: [value <= 57].
!
Item was added:
+ ----- Method: EncodedCharSet class>>isDigitCode: (in category 'character classification') -----
+ isDigitCode: anInteger
+ "Answer whether anInteger is the code of a digit."
+
+ ^ anInteger >= 48 and: [anInteger <= 57].
+ !
Item was changed:
----- Method: EncodedCharSet class>>isLetter: (in category 'character classification') -----
+ isLetter: char
+ "Answer whether char has the code of a letter in this encoding."
+ ^self isLetterCode: char charCode!
- isLetter: char
- "Answer whether the receiver is a letter."
-
- | value |
- value := char asciiValue.
- ^ (8r141 <= value and: [value <= 8r172]) or: [8r101 <= value and: [value <= 8r132]].
- !
Item was added:
+ ----- Method: EncodedCharSet class>>isLetterCode: (in category 'character classification') -----
+ isLetterCode: anInteger
+ "Answer whether anInteger is the code of a letter."
+
+ ^ (8r141 <= anInteger and: [anInteger <= 8r172]) or: [8r101 <= anInteger and: [anInteger <= 8r132]].
+ !
Item was changed:
----- Method: EncodedCharSet class>>isLowercase: (in category 'character classification') -----
+ isLowercase: char
+ "Answer whether char has the code of a lowercase letter in this encoding."
+ ^self isLowercaseCode: char charCode!
- isLowercase: char
- "Answer whether the receiver is a lowercase letter.
- (The old implementation answered whether the receiver is not an uppercase letter.)"
-
- | value |
- value := char asciiValue.
- ^ 8r141 <= value and: [value <= 8r172].
- !
Item was added:
+ ----- Method: EncodedCharSet class>>isLowercaseCode: (in category 'character classification') -----
+ isLowercaseCode: anInteger
+ "Answer whether anInteger is the code of a lowercase letter."
+
+ ^ 8r141 <= anInteger and: [anInteger <= 8r172].
+ !
Item was changed:
----- Method: EncodedCharSet class>>isUppercase: (in category 'character classification') -----
+ isUppercase: char
+ "Answer whether char has the code of an uppercase letter in this encoding."
+ ^self isUppercaseCode: char charCode!
- isUppercase: char
- "Answer whether the receiver is an uppercase letter.
- (The old implementation answered whether the receiver is not a lowercase letter.)"
-
- | value |
- value := char asciiValue.
- ^ 8r101 <= value and: [value <= 8r132].
- !
Item was added:
+ ----- Method: EncodedCharSet class>>isUppercaseCode: (in category 'character classification') -----
+ isUppercaseCode: anInteger
+ "Answer whether anInteger is the code of an uppercase letter."
+
+ ^ 8r101 <= anInteger and: [anInteger <= 8r132].
+ !
Item was removed:
- ----- Method: GB2312 class>>isLetter: (in category 'character classification') -----
- isLetter: char
-
- | value leading |
-
- leading := char leadingChar.
- value := char charCode.
-
- leading = 0 ifTrue: [^ super isLetter: char].
-
- value := value // 94 + 1.
- ^ 1 <= value and: [value < 84].
- !
Item was added:
+ ----- Method: GB2312 class>>isLetterCode: (in category 'character classification') -----
+ isLetterCode: anInteger
+ | value |
+ value := anInteger // 94 + 1.
+ ^ 1 <= value and: [value < 84].
+ !
Item was removed:
- ----- Method: JISX0208 class>>isLetter: (in category 'character classification') -----
- isLetter: char
-
- | value leading |
-
- leading := char leadingChar.
- value := char charCode.
-
- leading = 0 ifTrue: [^ super isLetter: char].
-
- value := value // 94 + 1.
- ^ 1 <= value and: [value < 84].
- !
Item was added:
+ ----- Method: JISX0208 class>>isLetterCode: (in category 'character classification') -----
+ isLetterCode: anInteger
+ | value |
+ value := anInteger // 94 + 1.
+ ^ 1 <= value and: [value < 84].
+ !
Item was removed:
- ----- Method: KSX1001 class>>isLetter: (in category 'character classification') -----
- isLetter: char
-
- | value leading |
-
- leading := char leadingChar.
- value := char charCode.
-
- leading = 0 ifTrue: [^ super isLetter: char].
-
- value := value // 94 + 1.
- ^ 1 <= value and: [value < 84].
- !
Item was added:
+ ----- Method: KSX1001 class>>isLetterCode: (in category 'character classification') -----
+ isLetterCode: anInteger
+ | value |
+ value := anInteger // 94 + 1.
+ ^ 1 <= value and: [value < 84].
+ !
Item was added:
+ ----- Method: LanguageEnvironment class>>charsetClass (in category 'accessing') -----
+ charsetClass
+ ^Unicode!
Item was changed:
----- Method: LanguageEnvironment class>>digitValueOf: (in category 'accessing') -----
digitValueOf: char
"Answer 0-9 if the receiver is $0-$9, 10-35 if it is $A-$Z, and < 0
otherwise. This is used to parse literal numbers of radix 2-36."
+ ^ self charsetClass digitValueOf: char.
- ^ Unicode digitValueOf: char.
!
Item was changed:
----- Method: LanguageEnvironment class>>isDigit: (in category 'accessing') -----
isDigit: char
+ ^ self charsetClass isDigit: char.
- ^ Unicode isDigit: char.
!
Item was changed:
----- Method: LanguageEnvironment class>>isLetter: (in category 'accessing') -----
isLetter: char
+ ^ self charsetClass isLetter: char.
- ^ Unicode isLetter: char.
!
Item was changed:
----- Method: LanguageEnvironment class>>isLowercase: (in category 'accessing') -----
isLowercase: char
+ ^ self charsetClass isLowercase: char.
- ^ Unicode isLowercase: char.
!
Item was changed:
----- Method: LanguageEnvironment class>>isUppercase: (in category 'accessing') -----
isUppercase: char
+ ^ self charsetClass isUppercase: char.
- ^ Unicode isUppercase: char.
!
Item was added:
+ ----- Method: Latin1 class>>convertToUnicode: (in category 'class methods') -----
+ convertToUnicode: aCode
+ ^aCode!
Item was removed:
- ----- Method: Latin1 class>>isLetter: (in category 'character classification') -----
- isLetter: char
- "Answer whether the receiver is a letter."
-
- ^ Unicode isLetter: char.
-
- !
Item was added:
+ ----- Method: Latin1 class>>isLetterCode: (in category 'character classification') -----
+ isLetterCode: anInteger
+ ^ Unicode isLetterCode: anInteger
+
+ !
Item was added:
+ ----- Method: Unicode class>>convertToUnicode: (in category 'class methods') -----
+ convertToUnicode: aCode
+ ^aCode!
Item was removed:
- ----- Method: Unicode class>>isDigit: (in category 'character classification') -----
- isDigit: char
- ^self isDigitCode: char charCode!
Item was removed:
- ----- Method: Unicode class>>isLetter: (in category 'character classification') -----
- isLetter: char
- ^self isLetterCode: char charCode!
Item was removed:
- ----- Method: Unicode class>>isLowercase: (in category 'character classification') -----
- isLowercase: char
- ^self isLowercaseCode: char charCode!
Item was removed:
- ----- Method: Unicode class>>isUppercase: (in category 'character classification') -----
- isUppercase: char
- ^self isUppercaseCode: char charCode!
More information about the Squeak-dev
mailing list
|