/
chars.st
91 lines (67 loc) · 2.38 KB
/
chars.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
"======================================================================
|
| Test the character (of the) system
|
|
======================================================================"
"======================================================================
|
| Copyright (C) 1988, 1989, 1999, 2006 Free Software Foundation.
| Written by Steve Byrne
|
| This file is part of GNU Smalltalk.
|
| GNU Smalltalk is free software; you can redistribute it and/or modify it
| under the terms of the GNU General Public License as published by the Free
| Software Foundation; either version 2, or (at your option) any later version.
|
| GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
| details.
|
| You should have received a copy of the GNU General Public License along with
| GNU Smalltalk; see the file COPYING. If not, write to the Free Software
| Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
======================================================================"
^$A!
^$b!
^$$!
^$! !
^$ !
| a b c |
a := 0 to: 255.
b := a collect: [ :each | each asCharacter ].
c := b collect: [ :each | each asInteger ].
^c = a asArray!
| allChars |
allChars := (0 to: 127) asByteArray asString.
^(0 to: 127) allSatisfy: [ :index |
(allChars at: index + 1) == index asCharacter ]!
| which allChars |
allChars := (0 to: 255) asByteArray asString.
#(#isVowel #isLetter #isUppercase #isLowercase #isAlphaNumeric
#isDigit #isSeparator)
do: [ :symbol |
symbol printNl.
which := allChars collect: [ :each |
(each perform: symbol) ifTrue: [ $x ] ifFalse: [ $_ ]
].
Transcript showCr: (which copyFrom: 1 to: 64).
Transcript showCr: (which copyFrom: 65 to: 128).
Transcript showCr: (which copyFrom: 129 to: 192).
Transcript showCr: (which copyFrom: 193 to: 256).
Transcript nl.
]!
| which printable |
printable := (33 to: 126) asByteArray asString.
#(#asUppercase #asLowercase)
do: [ :symbol |
symbol printNl.
which := printable collect: [ :each | (each perform: symbol) ].
Transcript showCr: (which copyFrom: 1 to: 47).
Transcript showCr: (which copyFrom: 48 to: 94).
Transcript nl.
]
!