Article View: pe.cust.sources
Article #36Small Littletalk - Part 3 of 5
From: Earl Wallace
Date: Wed, 12 Jun 1985 04:34
Date: Wed, 12 Jun 1985 04:34
6883 lines
177797 bytes
177797 bytes
#! /bin/sh
#
# This is the Little Smalltalk program that Marc Ries of the P-E Tustin Office
# acquired and passed on to me. It should work with Perkin-Elmer's Edition VII
# and XELOS systems.
#
# -earlw@pesnta
#
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# prelude
# This archive created: Tue Jun 11 19:06:06 1985
# By: Earl Wallace (Perkin-Elmer Data Systems Group / Customer Service)
export PATH; PATH=/bin:$PATH
if test ! -d 'prelude'
then
mkdir 'prelude'
fi
cd 'prelude'
if test -f 'Makefile'
then
echo shar: will not over-write existing file "'Makefile'"
else
cat << \SHAR_EOF > 'Makefile'
.SUFFIXES : .st .p
PREPATH = /usr/src/public/lsmalltalk/prelude
BINDIR = ../bin
PARSED = class.p object.p \
string.p larray.p nil.p array.p\
boolean.p true.p false.p block.p symbol.p \
magnitude.p number.p integer.p char.p float.p radian.p point.p random.p \
collection.p bag.p set.p kcollection.p dictionary.p scollection.p interval.p \
list.p acollection.p file.p bytearray.p \
semaphore.p process.p smalltalk.p
.st.p:
$(BINDIR)/parse $(PREPATH)/$*.st >$*.p
install: standard
-make fastsave
bundle: *.st Makefile savescript
bundle Makefile savescript init *.st >../prelude.bundle
standard: $(PARSED)
cat $(PARSED) init >standard
newstd: $(PARSED)
cat $(PARSED) >newstd
fastsave: standard
$(BINDIR)/st -m <savescript
clean:
-rm *.p
SHAR_EOF
if test 748 -ne "`wc -c < 'Makefile'`"
then
echo shar: error transmitting "'Makefile'" '(should have been 748 characters)'
fi
fi # end of overwriting check
if test -f 'savescript'
then
echo shar: will not over-write existing file "'savescript'"
else
cat << \SHAR_EOF > 'savescript'
)s stdsave
SHAR_EOF
if test 11 -ne "`wc -c < 'savescript'`"
then
echo shar: error transmitting "'savescript'" '(should have been 11 characters)'
fi
fi # end of overwriting check
if test -f 'init'
then
echo shar: will not over-write existing file "'init'"
else
cat << \SHAR_EOF > 'init'
smalltalk new
SHAR_EOF
if test 14 -ne "`wc -c < 'init'`"
then
echo shar: error transmitting "'init'" '(should have been 14 characters)'
fi
fi # end of overwriting check
if test -f 'acollection.st'
then
echo shar: will not over-write existing file "'acollection.st'"
else
cat << \SHAR_EOF > 'acollection.st'
Class ArrayedCollection :SequenceableCollection
| current |
[
= anArray | i |
(self size ~= anArray size) ifTrue: [^ false].
i <- 0.
self do: [:x | (x ~= (anArray at: (i <- i + 1)))
ifTrue: [^ false]].
^ true
|
at: key ifAbsent: exceptionBlock
((key <= 0) or: [key > self size])
ifTrue: [^ exceptionBlock value].
^ self at: key
|
coerce: aCollection | temp |
temp <- self class new: aCollection size.
temp replaceFrom: 1 to: aCollection size with: aCollection.
^ temp
|
copyFrom: start to: stop | size temp |
size <- stop - start + 1.
temp <- self class new: size.
temp replaceFrom: 1 to: size with: self startingAt: start.
^ temp
|
currentKey
^ current
|
deepCopy | newobj |
newobj <- self class new: self size.
(1 to: self size) do:
[:i | newobj at: i
put: (self at: i) copy ].
^ newobj
|
do: aBlock
(1 to: self size)
do: [:i | current <- i.
aBlock value: (self at: i)]
|
first
current <- 1.
^ (current <= self size)
ifTrue: [ self at: current]
|
firstKey
^ 1
|
lastKey
^ self size
|
next
current <- current + 1.
^ (current <= self size)
ifTrue: [ self at: current]
|
shallowCopy | newobj |
newobj <- self class new: self size.
(1 to: self size) do:
[:i | newobj at: i
put: (self at: i) ].
^ newobj
]
SHAR_EOF
if test 1564 -ne "`wc -c < 'acollection.st'`"
then
echo shar: error transmitting "'acollection.st'" '(should have been 1564 characters)'
fi
fi # end of overwriting check
if test -f 'array.st'
then
echo shar: will not over-write existing file "'array.st'"
else
cat << \SHAR_EOF > 'array.st'
Class Array :ArrayedCollection
[
new: aValue
^ <primitive 114 aValue>
|
at: aNumber
( (aNumber < 1) or: [aNumber > <primitive 4 self> ] )
ifTrue: [ self error: 'index error'. ^nil ].
^ <primitive 111 self aNumber >
|
at: aNumber put: aValue
( (aNumber < 1) or: [aNumber > <primitive 4 self> ] )
ifTrue: [ self error: 'index error'. ^nil ].
<primitive 112 self aNumber aValue >.
^ aValue
|
printString | value i |
value <- ')'.
i <- <primitive 4 self>.
[i > 0] whileTrue:
[ value <- <primitive 111 self i> printString ,
' ', value.
i <- i - 1].
^ '#( ' , value
|
size
^ <primitive 4 self>
]
SHAR_EOF
if test 642 -ne "`wc -c < 'array.st'`"
then
echo shar: error transmitting "'array.st'" '(should have been 642 characters)'
fi
fi # end of overwriting check
if test -f 'bag.st'
then
echo shar: will not over-write existing file "'bag.st'"
else
cat << \SHAR_EOF > 'bag.st'
Class Bag :Collection
| dict count |
[
new
dict <- Dictionary new
| add: newElement
dict at: newElement
put: (1 + (dict at: newElement ifAbsent: [0]))
| add: newObj withOccurrences: anInteger
anInteger timesRepeat: [ self add: newObj ].
^ newObj
| remove: oldElement ifAbsent: exceptionBlock | i |
i <- dict at: oldElement
ifAbsent: [ ^ exceptionBlock value].
(1 = i) ifTrue: [dict removeKey: oldElement]
ifFalse: [dict at: oldElement put: i - 1 ]
| size
^ dict inject: 0 into: [:x :y | x + y]
| occurrencesOf: anElement
^ dict at: anElement ifAbsent: [0]
| first
(count <- dict first) isNil ifTrue: [^ nil].
count <- count - 1.
^ dict currentKey
| next
[count notNil] whileTrue:
[ (count > 0)
ifTrue: [count <- count - 1. ^ dict currentKey]
ifFalse: [(count <- dict next) isNil
ifTrue: [^ nil] ]].
^ nil
]
SHAR_EOF
if test 1102 -ne "`wc -c < 'bag.st'`"
then
echo shar: error transmitting "'bag.st'" '(should have been 1102 characters)'
fi
fi # end of overwriting check
if test -f 'block.st'
then
echo shar: will not over-write existing file "'block.st'"
else
cat << \SHAR_EOF > 'block.st'
"
Class Block.
Note how whileTrue: and whileFalse: depend upon the parser
optimizing the loops into control flow, rather than message
passing. If this were not the case, whileTrue: would have to
be implemented using recursion, as follows:
whileTrue: aBlock
(self value) ifFalse: [^nil].
aBlock value.
^ self whileTrue: aBlock
"
Class Block
[
newProcess
^ <primitive 141 self>
|
newProcessWith: argumentArray
^ <primitive 141 self argumentArray>
|
fork
self newProcess resume.
^ nil
|
forkWith: argumentArray
(self newProcessWith: argumentArray) resume.
^ nil
|
whileTrue
^ [self value ] whileTrue: []
|
whileTrue: aBlock
^ [ self value ] whileTrue: [ aBlock value ]
|
whileFalse
^ [ self value ] whileFalse: []
|
whileFalse: aBlock
^ [ self value ] whileFalse: [ aBlock value ]
|
value
<primitive 140 0>
|
value: a
<primitive 140 1>
|
value: a value: b
<primitive 140 2>
|
value: a value: b value: c
<primitive 140 3>
|
value: a value: b value: c value: d
<primitive 140 4>
|
value: a value: b value: c value: d value: e
<primitive 140 5>
]
SHAR_EOF
if test 1111 -ne "`wc -c < 'block.st'`"
then
echo shar: error transmitting "'block.st'" '(should have been 1111 characters)'
fi
fi # end of overwriting check
if test -f 'boolean.st'
then
echo shar: will not over-write existing file "'boolean.st'"
else
cat << \SHAR_EOF > 'boolean.st'
Class Boolean
[
& aBoolean
^ self and: [aBoolean]
| | aBoolean
^ self or: [aBoolean]
| and: aBlock
^ self and: [aBlock value]
| or: aBlock
^ self or: [aBlock value]
| eqv: aBoolean
^ self == aBoolean
| xor: aBoolean
^ self ~~ aBoolean
]
SHAR_EOF
if test 297 -ne "`wc -c < 'boolean.st'`"
then
echo shar: error transmitting "'boolean.st'" '(should have been 297 characters)'
fi
fi # end of overwriting check
if test -f 'bytearray.st'
then
echo shar: will not over-write existing file "'bytearray.st'"
else
cat << \SHAR_EOF > 'bytearray.st'
Class ByteArray :ArrayedCollection
[
new: size
^ <primitive 116 size>
|
at: index
^ <primitive 118 self index>
|
at: index put: value
<primitive 119 self index value>
|
printString | str |
str <- '#[ '.
(1 to: self size)
do: [:i | str <- str , (self at: i) printString , ' '].
^ str , ']'
|
size
^ <primitive 117 self>
]
SHAR_EOF
if test 344 -ne "`wc -c < 'bytearray.st'`"
then
echo shar: error transmitting "'bytearray.st'" '(should have been 344 characters)'
fi
fi # end of overwriting check
if test -f 'char.st'
then
echo shar: will not over-write existing file "'char.st'"
else
cat << \SHAR_EOF > 'char.st'
Class Char :Magnitude
[
== aChar
^ <primitive 6 self aChar>
ifTrue: [<primitive 46 self aChar>]
ifFalse: [false]
| < aChar
^ <primitive 6 self aChar>
ifTrue: [<primitive 42 self aChar>]
ifFalse: [self compareError]
|
= aChar
^ <primitive 6 self aChar>
ifTrue: [<primitive 46 self aChar>]
ifFalse: [self compareError]
| > aChar
^ <primitive 6 self aChar>
ifTrue: [<primitive 43 self aChar>]
ifFalse: [self compareError]
|
asciiValue
^ <primitive 59 self>
|
asLowercase
^ <primitive 54 self>
ifTrue: [<primitive 57 self>]
ifFalse: [self]
|
asUppercase
^ <primitive 53 self>
ifTrue: [<primitive 57 self>]
ifFalse: [self]
|
asString
^ <primitive 58 self>
|
compareError
^ self error: 'char cannot be compared to non char'
|
digitValue | i |
((i <- <primitive 50 self>) isNil)
ifTrue: [self error: 'digitValue on nondigit char'].
^ i
|
isAlphaNumeric
^ <primitive 56 self>
|
isDigit
^ self between: $0 and: $9
|
isLetter
^ self isLowercase or: [self isUppercase]
|
isLowercase
^ self between: $a and: $z
|
isSeparator
^ <primitive 55 self>
|
isUppercase
^ (self between: $A and: $Z)
|
isVowel
^ <primitive 51 self>
|
printString
^ '$' , <primitive 58 self>
]
SHAR_EOF
if test 1255 -ne "`wc -c < 'char.st'`"
then
echo shar: error transmitting "'char.st'" '(should have been 1255 characters)'
fi
fi # end of overwriting check
if test -f 'class.st'
then
echo shar: will not over-write existing file "'class.st'"
else
cat << \SHAR_EOF > 'class.st'
Class Class
[
edit
<primitive 150 self>
|
list
<primitive 157 self>
|
new | superclass newinstance |
superclass <- <primitive 151 self>.
<primitive 3 superclass >
ifTrue: [newinstance <- superclass new ].
newinstance <- <primitive 153 self newinstance >.
<primitive 155 self #new >
ifTrue: [newinstance <- newinstance new].
^ newinstance
|
new: aValue | superclass newinstance |
superclass <- <primitive 151 self>.
<primitive 3 superclass >
ifTrue: [newinstance <- superclass new ].
newinstance <- <primitive 153 self newinstance >.
<primitive 155 self #new: >
ifTrue: [newinstance <- newinstance new: aValue ].
^ newinstance
|
printString
^ <primitive 152 self >
|
respondsTo
<primitive 154 self>
|
respondsTo: aSymbol | aClass |
aClass <- self.
[aClass notNil] whileTrue:
[ <primitive 155 aClass aSymbol> ifTrue: [ ^ true ].
aClass <- aClass superClass ].
^ false
|
superClass
^ <primitive 151 self>
|
variables
^ <primitive 158 self>
|
view
<primitive 156 self>
]
SHAR_EOF
if test 1048 -ne "`wc -c < 'class.st'`"
then
echo shar: error transmitting "'class.st'" '(should have been 1048 characters)'
fi
fi # end of overwriting check
if test -f 'collection.st'
then
echo shar: will not over-write existing file "'collection.st'"
else
cat << \SHAR_EOF > 'collection.st'
Class Collection
[
addAll: aCollection
aCollection do: [:x | self add: x ]
|
asArray
^ Array new: self size ;
replaceFrom: 1 to: self size with: self
|
asBag
^ Bag new addAll: self
|
asSet
^ Set new addAll: self
|
asList
^ List new addAllLast: self
|
asString
^ String new: self size ;
replaceFrom: 1 to: self size with: self
|
coerce: aCollection | newobj |
newobj <- self new.
aCollection do: [:x | newobj add: x].
^ newobj
|
collect: aBlock
^ self inject: self class new
into: [:x :y | x add: (aBlock value: y). x ]
|
deepCopy | newobj |
newobj <- List new .
self do: [:x | newobj addLast: x copy ].
^ self coerce: newobj
|
detect: aBlock
^ self detect: aBlock
ifAbsent: [self error: 'no object found matching detect']
|
detect: aBlock ifAbsent: exceptionBlock
self do: [:x |
(aBlock value: x) ifTrue: [^ x]].
^ exceptionBlock value
|
first
^ self error: 'subclass should implement first'
|
includes: anObject
self do: [:x | (x = anObject) ifTrue: [^ true]].
^ false
|
inject: thisValue into: binaryBlock | last |
last <- thisValue.
self do: [:x | last <- binaryBlock value: last value: x].
^ last
|
isEmpty
^ (self size = 0)
|
occurrencesOf: anObject
^ self inject: 0
into: [:x :y | (y = anObject)
ifTrue: [x + 1]
ifFalse: [x] ]
|
printString
^ ( self inject: self class printString , ' ('
into: [:x :y | x , ' ' , y printString]), ' )'
|
reject: aBlock
^ self select: [:x | (aBlock value: x) not ]
|
remove: oldObject
self remove: oldObject ifAbsent:
[^ self error:
'attempt to remove object not found in collection' ].
^ oldObject
|
remove: oldObject ifAbsent: exceptionBlock
^ (self includes: oldObject)
ifTrue: [self remove: oldObject]
ifFalse: exceptionBlock
|
select: aBlock
^ self inject: self class new
into: [:x :y | (aBlock value: y)
ifTrue: [x add: y]. x]
|
shallowCopy | newobj |
newobj <- List new .
self do: [:x | newobj addLast: x].
^ self coerce: newobj
|
size | i |
i <- 0.
self do: [:x | i <- i + 1 ].
^ i
]
SHAR_EOF
if test 2501 -ne "`wc -c < 'collection.st'`"
then
echo shar: error transmitting "'collection.st'" '(should have been 2501 characters)'
fi
fi # end of overwriting check
if test -f 'dictionary.st'
then
echo shar: will not over-write existing file "'dictionary.st'"
else
cat << \SHAR_EOF > 'dictionary.st'
"
Dictionarys are implemented using Points in order to reduce
the number of classes in the standard prelude
this also has the advantage of making the output appear in
key @ value
form
"
Class Dictionary :KeyedCollection
| hashTable currentBucket currentList |
[
new
hashTable <- Array new: 17
|
hashNumber: aKey
^ ( <primitive 5 aKey> \\ hashTable size) + 1
|
getList: aKey | list bucketNumber |
bucketNumber <- self hashNumber: aKey.
list <- hashTable at: bucketNumber.
(list isNil)
ifTrue: [list <- List new.
hashTable at: bucketNumber put: list].
^ list
|
at: aKey put: anObject | list anAssoc |
list <- self getList: aKey.
anAssoc <- self findAssociation: aKey inList: list.
(anAssoc isNil)
ifTrue: [anAssoc <- (Point new x: aKey) y: anObject.
list add: anAssoc]
ifFalse: [anAssoc y: anObject].
^ anObject
|
at: aKey ifAbsent: exceptionBlock | list anAssoc |
list <- self getList: aKey.
anAssoc <- self findAssociation: aKey inList: list.
(anAssoc isNil)
ifTrue: [^ exceptionBlock value].
^ anAssoc y
|
removeKey: aKey ifAbsent: exceptionBlock | list anAssoc|
list <- self getList: aKey.
anAssoc <- self findAssociation: aKey inList: list.
(anAssoc isNil)
ifTrue: [^ exceptionBlock value].
^ ( list remove: anAssoc
ifAbsent: [ ^ exceptionBlock value ] ) y
|
findAssociation: aKey inList: linkedList
linkedList do:
[:item | (item x = aKey) ifTrue: [^ item]].
^ nil
|
first | item |
(1 to: 17) do:
[:i | ((item <- self checkBucket: i) notNil)
ifTrue: [ ^ item y] ] .
^ nil
|
next | item |
((item <- currentList next) notNil)
ifTrue: [ ^ item y ].
[currentBucket < 17] whileTrue:
[currentBucket <- currentBucket + 1.
((item <- self checkBucket: currentBucket) notNil)
ifTrue: [ ^ item y ] ].
^ nil
|
printString
^ (self inject: (self class printString) , ' ( '
into: [ :aString :aValue |
aString , self currentKey printString ,
' @ ' , aValue printString , ' ' ]
) , ')'
|
currentKey | clist|
^ (currentList notNil)
ifTrue: [clist <- currentList current.
(clist notNil) ifTrue: [clist x]
]
|
checkBucket: bucketNumber
((currentList <- hashTable at:
(currentBucket <- bucketNumber)) isNil)
ifTrue: [ ^ nil ].
^ currentList first
]
SHAR_EOF
if test 2333 -ne "`wc -c < 'dictionary.st'`"
then
echo shar: error transmitting "'dictionary.st'" '(should have been 2333 characters)'
fi
fi # end of overwriting check
if test -f 'false.st'
then
echo shar: will not over-write existing file "'false.st'"
else
cat << \SHAR_EOF > 'false.st'
Class False :Boolean
[
ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock
^ falseAlternativeBlock value
! ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock
^ falseAlternativeBlock value
! ifTrue: trueAlternativeBlock
^ nil
! ifFalse: falseAlternativeBlock
^ falseAlternativeBlock value
! not
^ true
]
SHAR_EOF
if test 436 -ne "`wc -c < 'false.st'`"
then
echo shar: error transmitting "'false.st'" '(should have been 436 characters)'
fi
fi # end of overwriting check
if test -f 'file.st'
then
echo shar: will not over-write existing file "'file.st'"
else
cat << \SHAR_EOF > 'file.st'
Class File :SequenceableCollection
[
modeCharacter
<primitive 133 self 0>
|
modeInteger
<primitive 133 self 2>
|
modeString
<primitive 133 self 1>
|
at: aPosition
<primitive 135 self aPosition>.
^ self read
|
at: aPosition put: anObject
<primitive 135 self aPosition>.
^ self write: anObject
|
currentKey
^ <primitive 136 self>
|
first
^ self at: 0
|
next
^ self read
|
open: aName
<primitive 130 self aName 'r' >
|
open: aName for: opType
<primitive 130 self aName opType >
|
read
^ <primitive 131 self>
|
size
^ <primitive 134 self>
|
write: anObject
^ <primitive 132 self anObject>
]
SHAR_EOF
if test 630 -ne "`wc -c < 'file.st'`"
then
echo shar: error transmitting "'file.st'" '(should have been 630 characters)'
fi
fi # end of overwriting check
if test -f 'float.st'
then
echo shar: will not over-write existing file "'float.st'"
else
cat << \SHAR_EOF > 'float.st'
Class Float :Number
[
= aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 66 self aNumber>]
ifFalse: [super = aNumber]
|
< aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 62 self aNumber>]
ifFalse: [super < aNumber]
|
> aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 63 self aNumber>]
ifFalse: [ super > aNumber]
|
+ aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 60 self aNumber>]
ifFalse: [super + aNumber]
|
- aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 61 self aNumber>]
ifFalse: [super - aNumber]
|
* aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 68 self aNumber>]
ifFalse: [super * aNumber]
|
/ aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 69 self aNumber>]
ifFalse: [super / aNumber]
|
^ aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 88 self aNumber>]
ifFalse: [super raisedTo: aNumber]
|
arcCos
^ Radian new: <primitive 85 self>
|
arcSin
^ Radian new: <primitive 84 self>
|
arcTan
^ Radian new: <primitive 86 self>
|
asFloat
^ self
|
asString
^ <primitive 78 self>
|
ceiling
^ <primitive 73 self>
|
coerce: aNumber
^ aNumber asFloat
|
exp
^ <primitive 79 self>
|
floor
^ <primitive 72 self>
|
fractionPart
^ <primitive 76 self>
|
gamma
^ <primitive 77 self>
|
integerPart
^ <primitive 75 self>
|
ln
^ <primitive 70 self>
|
radix: aNumber
^ <primitive 89 self aNumber>
|
rounded
^ <primitive 72 (self + 0.5)>
|
sqrt
^ <primitive 71 self>
|
truncated
^ (self < 0.0) ifTrue: [<primitive 73 self>]
ifFalse: [<primitive 72 self>]
]
SHAR_EOF
if test 1655 -ne "`wc -c < 'float.st'`"
then
echo shar: error transmitting "'float.st'" '(should have been 1655 characters)'
fi
fi # end of overwriting check
if test -f 'integer.st'
then
echo shar: will not over-write existing file "'integer.st'"
else
cat << \SHAR_EOF > 'integer.st'
Class Integer :Number
[
= aNumber
^ <primitive 6 self aNumber>
ifTrue: [ <primitive 16 self aNumber> ]
ifFalse: [ super = aNumber ]
|
> aNumber
^ <primitive 6 self aNumber>
ifTrue: [ <primitive 13 self aNumber> ]
ifFalse: [ super > aNumber ]
|
< aNumber
^ <primitive 6 self aNumber>
ifTrue: [ <primitive 12 self aNumber> ]
ifFalse: [ super < aNumber ]
|
+ aNumber
^ <primitive 6 self aNumber>
ifTrue: [ <primitive 10 self aNumber> ]
ifFalse: [ super + aNumber ]
|
- aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 11 self aNumber>]
ifFalse: [ super - aNumber ]
|
* aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 18 self aNumber>]
ifFalse: [ super * aNumber ]
|
/ aNumber
^ self asFloat / aNumber
|
// aNumber
^ <primitive 6 self aNumber>
ifTrue: [<primitive 19 self aNumber>]
ifFalse: [self opError]
|
\\ aNumber | i |
^ <primitive 6 self aNumber>
ifTrue: [i <- self * ( (self < 0)
ifTrue: [ -1 ]
ifFalse: [ 1 ] ).
i rem: aNumber]
ifFalse: [self opError]
|
allMask: anInteger
^ anInteger = <primitive 23 self anInteger>
|
anyMask: anInteger
^ 0 ~= <primitive 23 self anInteger>
|
asCharacter
^ <primitive 36 self>
|
asFloat
^ <primitive 39 self >
|
asString
^ <primitive 37 self>
|
bitAnd: anInteger
^ <primitive 23 self anInteger>
|
bitAt: anInteger
^ <primitive 21 self anInteger>
|
bitInvert
^ <primitive 33 self>
|
bitOr: anInteger
^ <primitive 22 self anInteger>
|
bitShift: anInteger
^ <primitive 25 self anInteger>
|
bitXor: anInteger
^ <primitive 24 self anInteger>
|
even
^ (self rem: 2) = 0
|
factorial
^ <primitive 38 self>
|
gcd: anInteger
^ <primitive 6 self anInteger>
ifTrue: [<primitive 20 self anInteger>]
ifFalse: [self opError]
|
highBit
^ <primitive 34 self>
|
lcm: anInteger
^ <primitive 6 self anInteger>
ifTrue: [self * anInteger quo:
(self gcd: anInteger)]
ifFalse: [self opError]
|
noMask: anInteger
^ 0 = (self bitAnd: anInteger)
|
odd
^ (self rem: 2) ~= 0
|
quo: anInteger
^ <primitive 6 self anInteger>
ifTrue: [<primitive 28 self anInteger>]
ifFalse: [self opError]
|
radix: aNumber
^ <primitive 26 self aNumber>
|
rem: anInteger
^ <primitive 6 self anInteger>
ifTrue: [<primitive 29 self anInteger>]
ifFalse: [self opError]
|
timesRepeat: aBlock | i |
i <- 0.
[i < self] whileTrue:
[aBlock value. i <- i + 1]
]
SHAR_EOF
if test 2472 -ne "`wc -c < 'integer.st'`"
then
echo shar: error transmitting "'integer.st'" '(should have been 2472 characters)'
fi
fi # end of overwriting check
if test -f 'interval.st'
then
echo shar: will not over-write existing file "'interval.st'"
else
cat << \SHAR_EOF > 'interval.st'
Class Interval :SequenceableCollection
| lower upper step current |
[
from: lowerBound to: upperBound by: stepSize
current <- lower <- lowerBound.
upper <- upperBound.
step <- stepSize
| size
^ ((step strictlyPositive)
ifTrue: [upper < lower]
ifFalse: [lower < upper] )
ifTrue: [ 0 ]
ifFalse: [upper - lower // step + 1]
| inRange: value
^ (step strictlyPositive)
ifTrue: [(value >= lower) and: [value <= upper]]
ifFalse: [(value >= upper) and: [value <= lower]]
| first
current <- lower.
^ (self inRange: current) ifTrue: [current]
| next
current <- current + step.
^ (self inRange: current) ifTrue: [current]
| at: index ifAbsent: exceptionBlock | val |
val <- lower + (step * (index - 1)).
^ (self inRange: val)
ifTrue: [ val ]
ifFalse: [exceptionBlock value]
| printString
^ 'Interval ', lower printString , ' to ',
upper printString , ' by ' , step printString
| coerce: newcollection
^ newcollection asArray
| at: index put: val
^ self error: 'cannot store into Interval'
| add: val
^ self error: 'cannot store into Interval'
| removeKey: key ifAbsent: exceptionBlock
self error: 'cannot remove from Interval'.
^ exceptionBlock value
|
deepCopy
^ lower to: upper by: step
|
shallowCopy
^ lower to: upper by: step
]
SHAR_EOF
if test 1369 -ne "`wc -c < 'interval.st'`"
then
echo shar: error transmitting "'interval.st'" '(should have been 1369 characters)'
fi
fi # end of overwriting check
if test -f 'kcollection.st'
then
echo shar: will not over-write existing file "'kcollection.st'"
else
cat << \SHAR_EOF > 'kcollection.st'
Class KeyedCollection :Collection
[
add: anElement
^ self error: 'Must add with explicit key'
|
addAll: aCollection
aCollection binaryDo: [:x :y | self at: x put: y].
^ aCollection
|
asDictionary | newCollection |
newCollection <- Dictionary new.
self binaryDo:
[:key :val | newCollection at: key put: val].
^ newCollection
|
at: key
^ self at: key ifAbsent:
[self error:
(key printString , ': association not found').
^ key]
|
atAll: aCollection put: anObject
aCollection do: [:x | self at: x put: anObject]
|
binaryDo: aBlock | item |
self do: [:x | aBlock value: self currentKey
value: x ].
^ nil
|
collect: aBlock
^ self coerce:
(self inject: Dictionary new
into: [:x :y | x at: self currentKey
put: (aBlock value: y) . x ] )
|
includesKey: key
self at: key ifAbsent: [^ false].
^ true
|
indexOf: anElement
^ self indexOf: anElement
ifAbsent: [self error: 'indexOf element not found']
|
indexOf: anElement ifAbsent: exceptionBlock
self do: [:x | (x = anElement)
ifTrue: [ ^ self currentKey ]].
^ exceptionBlock value
|
keys | newset |
newset <- Set new.
self keysDo: [:x | newset add: x].
^ newset
|
keysDo: aBlock
^ self do: [ :x | aBlock value: self currentKey ]
|
keysSelect: aBlock
^ self coerce:
(self inject: Dictionary new
into: [:x :y | (aBlock value: y currentKey)
ifTrue: [x at: self currentKey
put: y]. x ] )
|
remove: anElement
^ self error: 'object must be removed with explicit key'
|
removeKey: key
^ self removeKey: key ifAbsent:
[self error: 'no element associated with key'. ^ key]
|
removeKey: key ifAbsent: exceptionBlock
^ self error: 'subclass should implement RemoveKey:ifAbsent:'
|
select: aBlock
^ self coerce:
(self inject: Dictionary new
into: [:x :y | (aBlock value: y)
ifTrue: [x at: self currentKey
put: y]. x ] )
|
values | newbag |
newbag <- Bag new.
self do: [:x | newbag add: x].
^ newbag
]
SHAR_EOF
if test 2628 -ne "`wc -c < 'kcollection.st'`"
then
echo shar: error transmitting "'kcollection.st'" '(should have been 2628 characters)'
fi
fi # end of overwriting check
if test -f 'larray.st'
then
echo shar: will not over-write existing file "'larray.st'"
else
cat << \SHAR_EOF > 'larray.st'
Class ArrayedCollection
" This is just a null version of ArrayedCollection to serve as a place
holder until the real version is read in during the prelude "
[
nothing
1
]
SHAR_EOF
if test 175 -ne "`wc -c < 'larray.st'`"
then
echo shar: error transmitting "'larray.st'" '(should have been 175 characters)'
fi
fi # end of overwriting check
if test -f 'list.st'
then
echo shar: will not over-write existing file "'list.st'"
else
cat << \SHAR_EOF > 'list.st'
"
Lists are implemented using Points in order to
reduce the number of classes in the standard prelude
"
Class List :SequenceableCollection
| first current |
[
add: anItem
first <- (Point new x: anItem ) y: first .
^ anItem
|
addFirst: anItem
first <- (Point new x: anItem ) y: first .
^ anItem
|
addLast: anItem
(first isNil)
ifTrue: [^ self addFirst: anItem].
(self findLast) y: ((Point new x: anItem) y: nil).
^ anItem
|
addAllFirst: aCollection
aCollection do: [:x | self addFirst: x]
|
addAllLast: aCollection
aCollection do: [:x | self addLast: x]
|
coerce: aCollection | newList |
newList <- List new.
aCollection do: [:x | newList addLast: x].
^ newList
|
findLast | item |
((item <- first) isNil)
ifTrue: [^ nil].
[(item y) notNil]
whileTrue: [item <- item y].
^ item
|
remove: anItem
^ self remove: anItem
ifAbsent: [self error: 'cant find item']
|
remove: anItem ifAbsent: exceptionBlock
(first isNil)
ifTrue: [^ exceptionBlock value].
self inject: nil into: [:prev :current |
(current x == anItem)
ifTrue: [(prev isNil)
ifTrue: [first <- current y]
ifFalse: [prev y: (current y)].
^ anItem].
current ] .
^ exceptionBlock value
|
removeError
^ self error: 'cannot remove from an empty list'
|
removeFirst | item |
(first isNil)
ifTrue: [^ self removeError].
item <- first.
first <- first y.
^ item x
|
removeLast
(first isNil)
ifTrue: [^ self removeError].
^ self remove: self last
ifAbsent: [self removeError]
|
first
^ ((current <- first) notNil)
ifTrue: [ current x ]
|
next
^ ((current <- current y) notNil)
ifTrue: [ current x ]
|
current
^ current x
|
last
(first isNil)
ifTrue: [^ nil].
^ self findLast x
|
isEmpty
^ first == nil
]
SHAR_EOF
if test 1802 -ne "`wc -c < 'list.st'`"
then
echo shar: error transmitting "'list.st'" '(should have been 1802 characters)'
fi
fi # end of overwriting check
if test -f 'magnitude.st'
then
echo shar: will not over-write existing file "'magnitude.st'"
else
cat << \SHAR_EOF > 'magnitude.st'
Class Magnitude
[
<= arg
^ (self < arg) or: [self = arg]
| < arg
^ (arg > self)
| = arg
^ (self > arg or: [self < arg]) not
| ~= arg
^ (self = arg) not
| >= arg
^ (self > arg) or: [self = arg]
| > arg
^ arg < self
| between: low and: high
^ (self >= low) and: [self <= high]
| min: arg
^ (self < arg) ifTrue: [self] ifFalse: [arg]
| max: arg
^ (self > arg) ifTrue: [self] ifFalse: [arg]
]
SHAR_EOF
if test 416 -ne "`wc -c < 'magnitude.st'`"
then
echo shar: error transmitting "'magnitude.st'" '(should have been 416 characters)'
fi
fi # end of overwriting check
if test -f 'nil.st'
then
echo shar: will not over-write existing file "'nil.st'"
else
cat << \SHAR_EOF > 'nil.st'
Class UndefinedObject
[
isNil
^ true
|
notNil
^ false
|
printString
^ 'nil'
]
SHAR_EOF
if test 150 -ne "`wc -c < 'nil.st'`"
then
echo shar: error transmitting "'nil.st'" '(should have been 150 characters)'
fi
fi # end of overwriting check
if test -f 'number.st'
then
echo shar: will not over-write existing file "'number.st'"
else
cat << \SHAR_EOF > 'number.st'
Class Number :Magnitude
[
maxtype: aNumber
^ <primitive 9 self aNumber>
ifTrue: [self]
ifFalse: [aNumber coerce: self ]
|
= aNumber
^ (self maxtype: aNumber) = (aNumber maxtype: self)
|
< aNumber
^ (self maxtype: aNumber) < (aNumber maxtype: self)
|
> aNumber
^ (self maxtype: aNumber) > (aNumber maxtype: self)
|
+ aNumber
^ (self maxtype: aNumber) + (aNumber maxtype: self)
|
- aNumber
^ (self maxtype: aNumber) - (aNumber maxtype: self)
|
* aNumber
^ (self maxtype: aNumber) * (aNumber maxtype: self)
|
/ aNumber
^ (self maxtype: aNumber) / (aNumber maxtype: self)
|
^ aNumber
^ self asFloat ^ aNumber asFloat
|
@ aNumber
^ ( Point new x: self ) y: aNumber
|
abs
^ (self < 0)
ifTrue: [ 0 - self ]
ifFalse: [ self ]
|
exp
^ self asFloat exp
|
gamma
^ self asFloat gamma
|
ln
^ self asFloat ln
|
log: aNumber
^ self ln / aNumber ln
|
negated
^ 0 - self
|
negative
^ self < 0
|
pi
^ self * 3.1415926
|
positive
^ self >= 0
|
radians
^ Radian new: self asFloat
|
raisedTo: aNumber
^ self asFloat ^ aNumber asFloat
|
reciprocal
^ 1.00 / self
|
roundTo: aNumber
^ (self / aNumber) rounded * aNumber
|
sign
^ (self < 0)
ifTrue: [ -1 ]
ifFalse: [ (self > 0)
ifTrue: [ 1 ]
ifFalse: [ 0 ] ]
|
sqrt
^ self asFloat sqrt
|
squared
^ self * self
|
strictlyPositive
^ self > 0
|
to: highValue
^ Interval new ; from: self to: highValue by: 1
|
to: highValue by: stepSize
^ Interval new ; from: self to: highValue by: stepSize
|
truncateTo: aNumber
^ (self / aNumber) truncated * aNumber
]
SHAR_EOF
if test 1597 -ne "`wc -c < 'number.st'`"
then
echo shar: error transmitting "'number.st'" '(should have been 1597 characters)'
fi
fi # end of overwriting check
if test -f 'object.st'
then
echo shar: will not over-write existing file "'object.st'"
else
cat << \SHAR_EOF > 'object.st'
Class Object
[
== anObject
^ <primitive 7 self anObject >
|
~~ x
^ (self == x) not
|
= x
^ (self == x)
|
~= x
^ (self = x) not
|
asString
^ self class printString
|
asSymbol
^ self asString asSymbol
|
class
^ <primitive 1 self >
|
copy
^ self shallowCopy
|
deepCopy | size newobj |
size <- <primitive 4 self>.
(size < 0)
ifTrue: [^ self] "if special just copy object"
ifFalse: [ newobj <- self class new.
(1 to: size) do: [:i |
<primitive 112 newobj i
( <primitive 111 self i > copy ) > ].
^ newobj ]
|
do: aBlock | item |
item <- self first.
^ [item notNil] whileTrue:
[aBlock value: item. item <- self next]
|
error: aString
<primitive 122 aString self>
|
first
^ self
|
isKindOf: aClass | objectClass |
objectClass <- self class.
[objectClass notNil] whileTrue:
[(objectClass == aClass) ifTrue: [^ true].
objectClass <- objectClass superClass].
^ false
|
isMemberOf: aClass
^ aClass == self class
|
isNil
^ false
|
next
^ nil
|
notNil
^ true
|
print
<primitive 121 (self printString) >
|
printString
^ self asString
| respondsTo: cmd
^ self class respondsTo: cmd
| shallowCopy | size newobj |
size <- <primitive 4 self>.
(size < 0)
ifTrue: [^ self] "if special just copy object"
ifFalse: [ newobj <- self class new.
(1 to: size) do: [:i |
<primitive 112 newobj i
<primitive 111 self i > > ].
^ newobj ]
]
SHAR_EOF
if test 1760 -ne "`wc -c < 'object.st'`"
then
echo shar: error transmitting "'object.st'" '(should have been 1760 characters)'
fi
fi # end of overwriting check
if test -f 'point.st'
then
echo shar: will not over-write existing file "'point.st'"
else
cat << \SHAR_EOF > 'point.st'
Class Point :Magnitude
| xvalue yvalue |
[
< aPoint
^ (xvalue < aPoint x) and: [yvalue < aPoint y]
|
<= aPoint
^ (xvalue <= aPoint x) and: [yvalue < aPoint y]
|
>= aPoint
^ (xvalue >= aPoint x) and: [yvalue >= aPoint y]
|
= aPoint
^ (xvalue = aPoint x) and: [yvalue = aPoint y]
|
* scale
^ (Point new x: (xvalue * scale)) y: (yvalue * scale)
|
+ delta
^ (Point new x: (xvalue + delta x)) y: (yvalue + delta y)
|
- delta
^ (Point new x: (xvalue - delta x)) y: (yvalue - delta y)
|
/ scale
^ (Point new x: (xvalue / scale)) y: (yvalue / scale)
|
// scale
^ (Point new x: (xvalue // scale)) y: (yvalue // scale)
|
abs
^ (Point new x: xvalue abs) y: (yvalue abs)
|
asString
^ xvalue asString , ' @ ' , (yvalue asString)
|
dist: aPoint
^ ((xvalue - aPoint x) squared +
(yvalue - aPoint y) squared) sqrt
|
max: aPoint
^ (Point new x: (xvalue max: aPoint x))
y: (yvalue max: aPoint y)
|
min: aPoint
^ (Point new x: (xvalue min: aPoint x))
y: (yvalue min: aPoint y)
|
printString
^ xvalue printString , ' @ ' , (yvalue printString)
|
transpose
^ (Point new x: yvalue) y: xvalue
|
x
^ xvalue
|
x: aValue
xvalue <- aValue
|
x: xValue y: yValue
xvalue <- xValue.
yvalue <- yValue
|
y
^ yvalue
|
y: aValue
yvalue <- aValue
]
SHAR_EOF
if test 1288 -ne "`wc -c < 'point.st'`"
then
echo shar: error transmitting "'point.st'" '(should have been 1288 characters)'
fi
fi # end of overwriting check
if test -f 'process.st'
then
echo shar: will not over-write existing file "'process.st'"
else
cat << \SHAR_EOF > 'process.st'
Class Process
[ block
(self state == #TERMINATED)
ifTrue: [self termErr: 'block'. ^ nil].
<primitive 145 self 2>.
^ self state
| resume
(self state == #TERMINATED)
ifTrue: [self termErr: 'resume'. ^ nil].
<primitive 145 self 0>.
^ self state
| suspend
(self state == #TERMINATED)
ifTrue: [self termErr: 'suspend'. ^ nil].
<primitive 145 self 1>.
^ self state
| state | pstate |
pstate <- <primitive 146 self>.
(pstate = 0) ifTrue: [pstate <- #READY. ^ pstate].
(pstate = 1) ifTrue: [pstate <- #SUSPENDED. ^ pstate].
(pstate = 2) ifTrue: [pstate <- #BLOCKED. ^ pstate].
(pstate = 3) ifTrue: [pstate <- #BLOCKED. ^ pstate].
(pstate >= 4) ifTrue: [pstate <- #TERMINATED. ^ pstate]
| terminate
<primitive 142 self>.
^ self state
| termErr: msgName
('Cannot ',msgName,' a terminated process.') print
| unblock
(self state == #TERMINATED)
ifTrue: [self termErr: 'unblock'. ^ nil].
<primitive 145 self 3>.
^ self state
| yield
^ nil
]
SHAR_EOF
if test 1003 -ne "`wc -c < 'process.st'`"
then
echo shar: error transmitting "'process.st'" '(should have been 1003 characters)'
fi
fi # end of overwriting check
if test -f 'radian.st'
then
echo shar: will not over-write existing file "'radian.st'"
else
cat << \SHAR_EOF > 'radian.st'
Class Radian :Magnitude
| value |
[
new: x
value <- <primitive 80 (x asFloat) >
| < arg
^ value < arg asFloat
| = arg
^ value = arg asFloat
| sin
^ <primitive 81 value>
| cos
^ <primitive 82 value>
| tan
^ <primitive 81 value> / <primitive 82 value>
| asFloat
^ value
| printString
^ value asString , ' radians'
]
SHAR_EOF
if test 459 -ne "`wc -c < 'radian.st'`"
then
echo shar: error transmitting "'radian.st'" '(should have been 459 characters)'
fi
fi # end of overwriting check
if test -f 'random.st'
then
echo shar: will not over-write existing file "'random.st'"
else
cat << \SHAR_EOF > 'random.st'
Class Random
| seed |
[
new
seed <- 1
|
randomize
seed <- <primitive 161>
|
first
^ <primitive 32 (seed <- <primitive 35 seed > ) >
|
next
^ <primitive 32 (seed <- <primitive 35 seed > ) >
|
between: low and: high
^ (self next * (high - low)) + low
|
randInteger: limit
^ (self next * limit) truncated + 1
|
next: n | newa |
newa <- Array new: n.
(1 to: n) do: [:x | newa at: x put: self next].
^ newa
]
SHAR_EOF
if test 494 -ne "`wc -c < 'random.st'`"
then
echo shar: error transmitting "'random.st'" '(should have been 494 characters)'
fi
fi # end of overwriting check
if test -f 'scollection.st'
then
echo shar: will not over-write existing file "'scollection.st'"
else
cat << \SHAR_EOF > 'scollection.st'
Class SequenceableCollection :KeyedCollection
[
, aCollection
^ self coerce: (List new ;
addAllLast: self ;
addAllLast: aCollection )
|
collect: aBlock
^ self coerce:
(self inject: List new
into: [:x :y | x addLast: (aBlock value: y) . x ] )
|
copyFrom: start to: stop | newcol |
newcol <- List new.
(start to: stop) do: [:i | newcol addLast: (self at: i)].
^ self coerce: newcol
|
copyWith: newElement
^ self coerce: (List new ;
addAllLast: self ;
addLast: newElement )
|
copyWithout: oldElement | newcol |
newcol <- List new.
self do: [ :x | (x == oldElement)
ifFalse: [ newcol addLast: x ]].
^ self coerce: newcol
|
equals: aSubCollection startingAt: anIndex | i |
i <- 0.
self do: [:x |
(x = (aSubCollection at: (anIndex + i)
ifAbsent: [^ false]))
ifFalse: [^ false].
i <- i + 1].
^ true
|
findFirst: aBlock
^ self findFirst: aBlock
ifAbsent: [self error: 'first element not found']
|
findFirst: aBlock ifAbsent: exceptionBlock
self do: [:x | (aBlock value: x)
ifTrue: [ ^ self currentKey]].
^ exceptionBlock value
|
findLast: aBlock
self findLast: aBlock
ifAbsent: [self error: 'last element not found']
|
findLast: aBlock ifAbsent: exceptionBlock
self reverseDo: [:x | (aBlock value: x)
ifTrue: [ ^ self currentKey]].
^ exceptionBlock value
|
indexOfSubCollection: aSubCollection
startingAt: anIndex
ifAbsent: exceptionBlock | n m |
n <- anIndex.
m <- self size - aSubCollection size.
[n <= m] whileTrue:
[(aSubCollection equals: self startingAt: n)
ifTrue: [^ n].
n <- n + 1].
^ exceptionBlock value
|
indexOfSubCollection: aSubCollection startingAt: anIndex
^ self indexOfSubCollection: aSubCollection
startingAt: anIndex
ifAbsent: [ self error: 'element not found'. nil]
|
last
^ (0 = self size) ifFalse: [ self at: self lastKey ]
|
replaceFrom: start to: stop with: repcol
repcol inject: start
into: [:x :y | self at: x put: y. x + 1]
|
replaceFrom: first to: stop with: repcol startingAt: repStart | i |
i <- 0 .
[(first + i) <= stop] whileTrue:
[self at: (first + i)
put: (repcol at: i + repStart).
i <- i + 1 ]
|
reverseDo: aBlock | n m |
n <- self lastKey. m <- self firstKey.
[n >= m] whileTrue:
[(self includesKey: n) ifTrue:
[aBlock value: (self at: n)].
n <- n - 1].
^ nil
|
reversed | newar i |
newar <- Array new: (i <- self size).
self do: [:x | newar at: i put: x. i <- i - 1].
^ self coerce: newar
|
select: aBlock
^ self coerce:
(self inject: List new
into: [:x :y | (aBlock value: y)
ifTrue: [x addLast: y]. x ] )
|
sort
^ self sort: [:x :y | x <= y]
|
sort: sortBlock | index temp newArray |
newArray <- self asArray.
(2 to: newArray size) do:
[ :highIndex | index <- highIndex - 1.
[(index >= 1) and:
[(sortBlock value: (newArray at: index)
value: (newArray at: (index + 1))) not]]
whileTrue: [temp <- newArray at: index.
newArray at: index
put: (newArray at: index + 1).
newArray at: index + 1 put: temp.
index <- index - 1 ]].
^ self coerce: newArray
|
with: aSequenceableCollection do: aBlock | arg1 arg2 |
arg1 <- self first. arg2 <- aSequenceableCollection first.
[ arg1 notNil] whileTrue:
[ aBlock value: arg1 value: arg2.
arg1 <- self next.
arg2 <- aSequenceableCollection next].
^ nil
]
SHAR_EOF
if test 4499 -ne "`wc -c < 'scollection.st'`"
then
echo shar: error transmitting "'scollection.st'" '(should have been 4499 characters)'
fi
fi # end of overwriting check
if test -f 'semaphore.st'
then
echo shar: will not over-write existing file "'semaphore.st'"
else
cat << \SHAR_EOF > 'semaphore.st'
Class Semaphore :List
| excessSignals |
[ new
excessSignals <- 0
| new: aNumber
excessSignals <- aNumber
| signal
<primitive 148>. "start atomic action"
(self isEmpty)
ifTrue: [excessSignals <- excessSignals + 1]
ifFalse: [self removeFirst unblock].
<primitive 149> "end atomic action"
| wait
<primitive 148>. "start atomic actions"
(excessSignals = 0)
ifTrue: [self addLast: selfProcess.
selfProcess block]
ifFalse: [excessSignals <- excessSignals - 1].
<primitive 149> "end atomic actions"
]
SHAR_EOF
if test 530 -ne "`wc -c < 'semaphore.st'`"
then
echo shar: error transmitting "'semaphore.st'" '(should have been 530 characters)'
fi
fi # end of overwriting check
if test -f 'set.st'
then
echo shar: will not over-write existing file "'set.st'"
else
cat << \SHAR_EOF > 'set.st'
Class Set :Collection
| list |
[
new
list <- List new
| add: newElement
(list includes: newElement)
ifFalse: [list add: newElement]
| remove: oldElement ifAbsent: exceptionBlock
list remove: oldElement ifAbsent: exceptionBlock
| size
^ list size
| occurrencesOf: anElement
^ (list includes: anElement) ifTrue: [1] ifFalse: [0]
| first
^ list first
| next
^ list next
]
SHAR_EOF
if test 506 -ne "`wc -c < 'set.st'`"
then
echo shar: error transmitting "'set.st'" '(should have been 506 characters)'
fi
fi # end of overwriting check
if test -f 'smalltalk.st'
then
echo shar: will not over-write existing file "'smalltalk.st'"
else
cat << \SHAR_EOF > 'smalltalk.st'
Class Smalltalk :Dictionary
[
date
^ <primitive 160 >
|
debug: n
^ <primitive 8 2 n>
|
display
^ <primitive 8 1 1>
|
displayAssign
^ <primitive 8 1 2>
|
doPrimitive: primNumber withArguments: argArray
^ <primitive 30 primNumber argArray>
|
noDisplay
^ <primitive 8 1 0>
|
perform: aMessage withArguments: argArray
^ <primitive 143 argArray aMessage >
|
sh: command
^ <primitive 125 command >
|
time: aBlock | start |
start <- <primitive 161>.
aBlock value.
^ <primitive 161> - start
]
SHAR_EOF
if test 517 -ne "`wc -c < 'smalltalk.st'`"
then
echo shar: error transmitting "'smalltalk.st'" '(should have been 517 characters)'
fi
fi # end of overwriting check
if test -f 'string.st'
then
echo shar: will not over-write existing file "'string.st'"
else
cat << \SHAR_EOF > 'string.st'
Class String :ArrayedCollection
[
, aString
^ <primitive 103 self aString>
|
= aString
^ <primitive 6 self aString>
ifTrue: [<primitive 101 self aString> = 0]
ifFalse: [self compareError]
|
< aString
^ <primitive 6 self aString>
ifTrue: [<primitive 101 self aString> < 0]
ifFalse: [self compareError]
|
<= aString
^ <primitive 6 self aString>
ifTrue: [<primitive 101 self aString> <= 0]
ifFalse: [self compareError]
|
>= aString
^ <primitive 6 self aString>
ifTrue: [<primitive 101 self aString> >= 0]
ifFalse: [self compareError]
|
> aString
^ <primitive 6 self aString>
ifTrue: [<primitive 101 self aString> > 0]
ifFalse: [self compareError]
|
asSymbol
^ <primitive 108 self>
|
at: aNumber
^ <primitive 104 self aNumber>
|
at: aNumber put: aChar
<primitive 105 self aNumber aChar>
|
compareError
^ self error: 'strings can only be compared to strings'
|
copyFrom: start to: stop
^ <primitive 106 self start (stop - start + 1) >
|
copyFrom: start length: len
^ <primitive 106 self start len >
|
deepCopy
^ <primitive 107 self >
|
new: size
^ <primitive 115 size>
|
printString
^ <primitive 109 self>
|
print
<primitive 121 self>
|
size
^ <primitive 100 self>
|
sameAs: aString
^ <primitive 6 self aString>
ifTrue: [<primitive 102 self aString>]
ifFalse: [self compareError]
]
SHAR_EOF
if test 1376 -ne "`wc -c < 'string.st'`"
then
echo shar: error transmitting "'string.st'" '(should have been 1376 characters)'
fi
fi # end of overwriting check
if test -f 'symbol.st'
then
echo shar: will not over-write existing file "'symbol.st'"
else
cat << \SHAR_EOF > 'symbol.st'
Class Symbol
[
== aSymbol
^ <primitive 6 self aSymbol >
ifTrue: [<primitive 91 self aSymbol >]
ifFalse: [false]
|
printString
^ <primitive 92 self>
|
asString
^ <primitive 93 self>
]
SHAR_EOF
if test 200 -ne "`wc -c < 'symbol.st'`"
then
echo shar: error transmitting "'symbol.st'" '(should have been 200 characters)'
fi
fi # end of overwriting check
if test -f 'test.st'
then
echo shar: will not over-write existing file "'test.st'"
else
cat << \SHAR_EOF > 'test.st'
Class Test
| var |
[
printString
^ 'test value ', var printString
|
set: aVal
var <- aVal
]
SHAR_EOF
if test 99 -ne "`wc -c < 'test.st'`"
then
echo shar: error transmitting "'test.st'" '(should have been 99 characters)'
fi
fi # end of overwriting check
if test -f 'tests.st'
then
echo shar: will not over-write existing file "'tests.st'"
else
cat << \SHAR_EOF > 'tests.st'
Class One
| two |
[
start
^ self one
|
one
two <- Two new.
two two: self
|
three
two four
]
Class Two
[
two: back
back three
|
four
'in four' print.
self gak
]
SHAR_EOF
if test 180 -ne "`wc -c < 'tests.st'`"
then
echo shar: error transmitting "'tests.st'" '(should have been 180 characters)'
fi
fi # end of overwriting check
if test -f 'true.st'
then
echo shar: will not over-write existing file "'true.st'"
else
cat << \SHAR_EOF > 'true.st'
Class True :Boolean
[
ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock
^ trueAlternativeBlock value
! ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock
^ trueAlternativeBlock value
! ifTrue: trueAlternativeBlock
^ trueAlternativeBlock value
! ifFalse: falseAlternativeBlock
^ nil
| not
^ false
]
SHAR_EOF
if test 433 -ne "`wc -c < 'true.st'`"
then
echo shar: error transmitting "'true.st'" '(should have been 433 characters)'
fi
fi # end of overwriting check
if test -f 'class.p'
then
echo shar: will not over-write existing file "'class.p'"
else
cat << \SHAR_EOF > 'class.p'
temp <- <primitive 110 10 >
<primitive 112 temp 1 " view " \
#( #[ 32 250 1 156 242 245] \
#( ) ) >
<primitive 112 temp 2 " variables " \
#( #[ 32 250 1 158 243 245] \
#( ) ) >
<primitive 112 temp 3 " superClass " \
#( #[ 32 250 1 151 243 245] \
#( ) ) >
<primitive 112 temp 4 " respondsTo: " \
#( #[ 32 114 34 162 247 18 34 33 250 2 155 247 2 91 243 \
242 34 10 46 241 114 242 249 22 242 92 243 245] \
#( ) ) >
<primitive 112 temp 5 " respondsTo " \
#( #[ 32 250 1 154 242 245] \
#( ) ) >
<primitive 112 temp 6 " printString " \
#( #[ 32 250 1 152 243 245] \
#( ) ) >
<primitive 112 temp 7 " new: " \
#( #[ 32 250 1 151 114 34 250 1 3 247 4 34 160 241 115 \
242 32 35 250 2 153 115 32 48 250 2 155 247 5 35 \
33 176 241 115 242 35 243 245] \
#( #new: ) ) >
<primitive 112 temp 8 " new " \
#( #[ 32 250 1 151 113 33 250 1 3 247 4 33 160 241 114 \
242 32 34 250 2 153 114 32 48 250 2 155 247 4 34 \
160 241 114 242 34 243 245] \
#( #new ) ) >
<primitive 112 temp 9 " list " \
#( #[ 32 250 1 157 242 245] \
#( ) ) >
<primitive 112 temp 10 " edit " \
#( #[ 32 250 1 150 242 245] \
#( ) ) >
<primitive 98 #Class \
<primitive 97 #Class #Object #/u/smalltalk/prelude/class.st \
#( ) \
#( #view #variables #superClass #respondsTo: #respondsTo #printString #new: #new #list #edit ) \
temp 4 4 > >
SHAR_EOF
if test 1351 -ne "`wc -c < 'class.p'`"
then
echo shar: error transmitting "'class.p'" '(should have been 1351 characters)'
fi
fi # end of overwriting check
if test -f 'object.p'
then
echo shar: will not over-write existing file "'object.p'"
else
cat << \SHAR_EOF > 'object.p'
temp <- <primitive 110 21 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 32 250 1 4 113 33 80 199 247 4 32 243 248 26 242 \
32 164 160 114 81 33 178 225 3 11 34 35 32 35 250 \
2 111 250 3 112 243 179 242 34 243 242 245] \
#( ) ) >
<primitive 112 temp 2 " respondsTo: " \
#( #[ 32 164 33 11 41 243 245] \
#( ) ) >
<primitive 112 temp 3 " printString " \
#( #[ 32 10 16 243 245] \
#( ) ) >
<primitive 112 temp 4 " print " \
#( #[ 32 169 250 1 121 242 245] \
#( ) ) >
<primitive 112 temp 5 " notNil " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 112 temp 6 " next " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " isNil " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 8 " isMemberOf: " \
#( #[ 33 32 164 181 243 245] \
#( ) ) >
<primitive 112 temp 9 " isKindOf: " \
#( #[ 32 164 114 34 162 247 16 34 33 181 247 2 91 243 242 \
34 10 46 241 114 242 249 20 242 92 243 245] \
#( ) ) >
<primitive 112 temp 10 " first " \
#( #[ 32 243 245] \
#( ) ) >
<primitive 112 temp 11 " error: " \
#( #[ 33 32 250 2 122 242 245] \
#( ) ) >
<primitive 112 temp 12 " do: " \
#( #[ 32 166 114 34 162 247 11 33 34 180 242 32 167 241 114 \
242 249 15 243 245] \
#( ) ) >
<primitive 112 temp 13 " deepCopy " \
#( #[ 32 250 1 4 113 33 80 199 247 4 32 243 248 28 242 \
32 164 160 114 81 33 178 225 3 13 34 35 32 35 250 \
2 111 10 20 250 3 112 243 179 242 34 243 242 245] \
#( ) ) >
<primitive 112 temp 14 " copy " \
#( #[ 32 10 42 243 245] \
#( ) ) >
<primitive 112 temp 15 " class " \
#( #[ 32 250 1 1 243 245] \
#( ) ) >
<primitive 112 temp 16 " asSymbol " \
#( #[ 32 10 16 10 17 243 245] \
#( ) ) >
<primitive 112 temp 17 " asString " \
#( #[ 32 164 169 243 245] \
#( ) ) >
<primitive 112 temp 18 " ~= " \
#( #[ 32 33 201 172 243 245] \
#( ) ) >
<primitive 112 temp 19 " = " \
#( #[ 32 33 181 243 245] \
#( ) ) >
<primitive 112 temp 20 " ~~ " \
#( #[ 32 33 181 172 243 245] \
#( ) ) >
<primitive 112 temp 21 " == " \
#( #[ 32 33 250 2 7 243 245] \
#( ) ) >
<primitive 98 #Object \
<primitive 97 #Object #Object #/u/smalltalk/prelude/object.st \
#( ) \
#( #shallowCopy #respondsTo: #printString #print #notNil #next #isNil #isMemberOf: #isKindOf: #first #error: #do: #deepCopy #copy #class #asSymbol #asString #~= #= #~~ #== ) \
temp 4 7 > >
SHAR_EOF
if test 2344 -ne "`wc -c < 'object.p'`"
then
echo shar: error transmitting "'object.p'" '(should have been 2344 characters)'
fi
fi # end of overwriting check
if test -f 'string.p'
then
echo shar: will not over-write existing file "'string.p'"
else
cat << \SHAR_EOF > 'string.p'
temp <- <primitive 110 18 >
<primitive 112 temp 1 " sameAs: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 102 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 2 " size " \
#( #[ 32 250 1 100 243 245] \
#( ) ) >
<primitive 112 temp 3 " print " \
#( #[ 32 250 1 121 242 245] \
#( ) ) >
<primitive 112 temp 4 " printString " \
#( #[ 32 250 1 109 243 245] \
#( ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 115 243 245] \
#( ) ) >
<primitive 112 temp 6 " deepCopy " \
#( #[ 32 250 1 107 243 245] \
#( ) ) >
<primitive 112 temp 7 " copyFrom:length: " \
#( #[ 32 33 34 250 3 106 243 245] \
#( ) ) >
<primitive 112 temp 8 " copyFrom:to: " \
#( #[ 32 33 34 33 193 81 192 250 3 106 243 245] \
#( ) ) >
<primitive 112 temp 9 " compareError " \
#( #[ 32 48 188 243 245] \
#( 'strings can only be compared to strings' ) ) >
<primitive 112 temp 10 " at:put: " \
#( #[ 32 33 34 250 3 105 242 245] \
#( ) ) >
<primitive 112 temp 11 " at: " \
#( #[ 32 33 250 2 104 243 245] \
#( ) ) >
<primitive 112 temp 12 " asSymbol " \
#( #[ 32 250 1 108 243 245] \
#( ) ) >
<primitive 112 temp 13 " > " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 204 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 14 " >= " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 203 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 15 " <= " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 200 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 16 " < " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 199 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 17 " = " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 201 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 18 " , " \
#( #[ 32 33 250 2 103 243 245] \
#( ) ) >
<primitive 98 #String \
<primitive 97 #String #ArrayedCollection #/u/smalltalk/prelude/string.st \
#( ) \
#( #sameAs: #size #print #printString #new: #deepCopy #copyFrom:length: #copyFrom:to: #compareError #at:put: #at: #asSymbol #> #>= #<= #< #= #, ) \
temp 3 5 > >
SHAR_EOF
if test 2112 -ne "`wc -c < 'string.p'`"
then
echo shar: error transmitting "'string.p'" '(should have been 2112 characters)'
fi
fi # end of overwriting check
if test -f 'larray.p'
then
echo shar: will not over-write existing file "'larray.p'"
else
cat << \SHAR_EOF > 'larray.p'
temp <- <primitive 110 1 >
<primitive 112 temp 1 " nothing " \
#( #[ 81 242 245] \
#( ) ) >
<primitive 98 #ArrayedCollection \
<primitive 97 #ArrayedCollection #Object #/u/smalltalk/prelude/larray.st \
#( ) \
#( #nothing ) \
temp 1 2 > >
SHAR_EOF
if test 250 -ne "`wc -c < 'larray.p'`"
then
echo shar: error transmitting "'larray.p'" '(should have been 250 characters)'
fi
fi # end of overwriting check
if test -f 'nil.p'
then
echo shar: will not over-write existing file "'nil.p'"
else
cat << \SHAR_EOF > 'nil.p'
temp <- <primitive 110 3 >
<primitive 112 temp 1 " printString " \
#( #[ 48 243 245] \
#( 'nil' ) ) >
<primitive 112 temp 2 " notNil " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 3 " isNil " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 98 #UndefinedObject \
<primitive 97 #UndefinedObject #Object #/u/smalltalk/prelude/nil.st \
#( ) \
#( #printString #notNil #isNil ) \
temp 1 2 > >
SHAR_EOF
if test 409 -ne "`wc -c < 'nil.p'`"
then
echo shar: error transmitting "'nil.p'" '(should have been 409 characters)'
fi
fi # end of overwriting check
if test -f 'array.p'
then
echo shar: will not over-write existing file "'array.p'"
else
cat << \SHAR_EOF > 'array.p'
temp <- <primitive 110 5 >
<primitive 112 temp 1 " size " \
#( #[ 32 250 1 4 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 48 113 32 250 1 4 114 34 80 204 247 21 32 34 250 \
2 111 169 49 11 17 33 11 17 113 34 81 193 241 114 \
242 249 26 242 50 33 11 17 243 245] \
#( ')' ' ' '#( ' ) ) >
<primitive 112 temp 3 " at:put: " \
#( #[ 33 81 199 251 6 33 32 250 1 4 204 247 6 32 48 \
188 242 93 243 242 32 33 34 250 3 112 242 34 243 245 \
] \
#( 'index error' ) ) >
<primitive 112 temp 4 " at: " \
#( #[ 33 81 199 251 6 33 32 250 1 4 204 247 6 32 48 \
188 242 93 243 242 32 33 250 2 111 243 245] \
#( 'index error' ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 114 243 245] \
#( ) ) >
<primitive 98 #Array \
<primitive 97 #Array #ArrayedCollection #/u/smalltalk/prelude/array.st \
#( ) \
#( #size #printString #at:put: #at: #new: ) \
temp 3 4 > >
SHAR_EOF
if test 904 -ne "`wc -c < 'array.p'`"
then
echo shar: error transmitting "'array.p'" '(should have been 904 characters)'
fi
fi # end of overwriting check
if test -f 'boolean.p'
then
echo shar: will not over-write existing file "'boolean.p'"
else
cat << \SHAR_EOF > 'boolean.p'
temp <- <primitive 110 6 >
<primitive 112 temp 1 " xor: " \
#( #[ 32 33 182 243 245] \
#( ) ) >
<primitive 112 temp 2 " eqv: " \
#( #[ 32 33 181 243 245] \
#( ) ) >
<primitive 112 temp 3 " or: " \
#( #[ 32 251 2 33 165 243 245] \
#( ) ) >
<primitive 112 temp 4 " and: " \
#( #[ 32 252 2 33 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " | " \
#( #[ 32 251 1 33 243 245] \
#( ) ) >
<primitive 112 temp 6 " & " \
#( #[ 32 252 1 33 243 245] \
#( ) ) >
<primitive 98 #Boolean \
<primitive 97 #Boolean #Object #/u/smalltalk/prelude/boolean.st \
#( ) \
#( #xor: #eqv: #or: #and: #| #& ) \
temp 2 3 > >
SHAR_EOF
if test 634 -ne "`wc -c < 'boolean.p'`"
then
echo shar: error transmitting "'boolean.p'" '(should have been 634 characters)'
fi
fi # end of overwriting check
if test -f 'true.p'
then
echo shar: will not over-write existing file "'true.p'"
else
cat << \SHAR_EOF > 'true.p'
temp <- <primitive 110 5 >
<primitive 112 temp 1 " not " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 2 " ifFalse: " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 3 " ifTrue: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 4 " ifFalse:ifTrue: " \
#( #[ 34 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " ifTrue:ifFalse: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 98 #True \
<primitive 97 #True #Boolean #/u/smalltalk/prelude/true.st \
#( ) \
#( #not #ifFalse: #ifTrue: #ifFalse:ifTrue: #ifTrue:ifFalse: ) \
temp 3 2 > >
SHAR_EOF
if test 577 -ne "`wc -c < 'true.p'`"
then
echo shar: error transmitting "'true.p'" '(should have been 577 characters)'
fi
fi # end of overwriting check
if test -f 'false.p'
then
echo shar: will not over-write existing file "'false.p'"
else
cat << \SHAR_EOF > 'false.p'
temp <- <primitive 110 5 >
<primitive 112 temp 1 " not " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 112 temp 2 " ifFalse: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 3 " ifTrue: " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 4 " ifFalse:ifTrue: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " ifTrue:ifFalse: " \
#( #[ 34 165 243 245] \
#( ) ) >
<primitive 98 #False \
<primitive 97 #False #Boolean #/u/smalltalk/prelude/false.st \
#( ) \
#( #not #ifFalse: #ifTrue: #ifFalse:ifTrue: #ifTrue:ifFalse: ) \
temp 3 2 > >
SHAR_EOF
if test 580 -ne "`wc -c < 'false.p'`"
then
echo shar: error transmitting "'false.p'" '(should have been 580 characters)'
fi
fi # end of overwriting check
if test -f 'block.p'
then
echo shar: will not over-write existing file "'block.p'"
else
cat << \SHAR_EOF > 'block.p'
temp <- <primitive 110 14 >
<primitive 112 temp 1 " value:value:value:value:value: " \
#( #[ 85 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 2 " value:value:value:value: " \
#( #[ 84 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 3 " value:value:value: " \
#( #[ 83 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 4 " value:value: " \
#( #[ 82 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 5 " value: " \
#( #[ 81 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 6 " value " \
#( #[ 80 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 7 " whileFalse: " \
#( #[ 32 165 246 5 33 165 242 249 9 243 245] \
#( ) ) >
<primitive 112 temp 8 " whileFalse " \
#( #[ 32 165 246 4 93 242 249 8 243 245] \
#( ) ) >
<primitive 112 temp 9 " whileTrue: " \
#( #[ 32 165 247 5 33 165 242 249 9 243 245] \
#( ) ) >
<primitive 112 temp 10 " whileTrue " \
#( #[ 32 165 247 4 93 242 249 8 243 245] \
#( ) ) >
<primitive 112 temp 11 " forkWith: " \
#( #[ 32 33 11 35 10 40 242 93 243 245] \
#( ) ) >
<primitive 112 temp 12 " fork " \
#( #[ 32 10 33 10 40 242 93 243 245] \
#( ) ) >
<primitive 112 temp 13 " newProcessWith: " \
#( #[ 32 33 250 2 141 243 245] \
#( ) ) >
<primitive 112 temp 14 " newProcess " \
#( #[ 32 250 1 141 243 245] \
#( ) ) >
<primitive 98 #Block \
<primitive 97 #Block #Object #/u/smalltalk/prelude/block.st \
#( ) \
#( #value:value:value:value:value: #value:value:value:value: #value:value:value: #value:value: #value: #value #whileFalse: #whileFalse #whileTrue: #whileTrue #forkWith: #fork #newProcessWith: #newProcess ) \
temp 6 3 > >
SHAR_EOF
if test 1632 -ne "`wc -c < 'block.p'`"
then
echo shar: error transmitting "'block.p'" '(should have been 1632 characters)'
fi
fi # end of overwriting check
if test -f 'symbol.p'
then
echo shar: will not over-write existing file "'symbol.p'"
else
cat << \SHAR_EOF > 'symbol.p'
temp <- <primitive 110 3 >
<primitive 112 temp 1 " asString " \
#( #[ 32 250 1 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 32 250 1 92 243 245] \
#( ) ) >
<primitive 112 temp 3 " == " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 91 248 2 242 \
92 243 245] \
#( ) ) >
<primitive 98 #Symbol \
<primitive 97 #Symbol #Object #/u/smalltalk/prelude/symbol.st \
#( ) \
#( #asString #printString #== ) \
temp 2 4 > >
SHAR_EOF
if test 452 -ne "`wc -c < 'symbol.p'`"
then
echo shar: error transmitting "'symbol.p'" '(should have been 452 characters)'
fi
fi # end of overwriting check
if test -f 'magnitude.p'
then
echo shar: will not over-write existing file "'magnitude.p'"
else
cat << \SHAR_EOF > 'magnitude.p'
temp <- <primitive 110 9 >
<primitive 112 temp 1 " max: " \
#( #[ 32 33 204 247 3 32 248 2 242 33 243 245] \
#( ) ) >
<primitive 112 temp 2 " min: " \
#( #[ 32 33 199 247 3 32 248 2 242 33 243 245] \
#( ) ) >
<primitive 112 temp 3 " between:and: " \
#( #[ 32 33 203 252 3 32 34 200 243 245] \
#( ) ) >
<primitive 112 temp 4 " > " \
#( #[ 33 32 199 243 245] \
#( ) ) >
<primitive 112 temp 5 " >= " \
#( #[ 32 33 204 251 3 32 33 201 243 245] \
#( ) ) >
<primitive 112 temp 6 " ~= " \
#( #[ 32 33 201 172 243 245] \
#( ) ) >
<primitive 112 temp 7 " = " \
#( #[ 32 33 204 251 3 32 33 199 172 243 245] \
#( ) ) >
<primitive 112 temp 8 " < " \
#( #[ 33 32 204 243 245] \
#( ) ) >
<primitive 112 temp 9 " <= " \
#( #[ 32 33 199 251 3 32 33 201 243 245] \
#( ) ) >
<primitive 98 #Magnitude \
<primitive 97 #Magnitude #Object #/u/smalltalk/prelude/magnitude.st \
#( ) \
#( #max: #min: #between:and: #> #>= #~= #= #< #<= ) \
temp 3 4 > >
SHAR_EOF
if test 980 -ne "`wc -c < 'magnitude.p'`"
then
echo shar: error transmitting "'magnitude.p'" '(should have been 980 characters)'
fi
fi # end of overwriting check
if test -f 'number.p'
then
echo shar: will not over-write existing file "'number.p'"
else
cat << \SHAR_EOF > 'number.p'
temp <- <primitive 110 30 >
<primitive 112 temp 1 " truncateTo: " \
#( #[ 32 33 190 10 47 33 194 243 245] \
#( ) ) >
<primitive 112 temp 2 " to:by: " \
#( #[ 5 46 160 241 32 33 34 131 0 242 243 245] \
#( #from:to:by: ) ) >
<primitive 112 temp 3 " to: " \
#( #[ 5 46 160 241 32 33 81 131 0 242 243 245] \
#( #from:to:by: ) ) >
<primitive 112 temp 4 " strictlyPositive " \
#( #[ 32 80 204 243 245] \
#( ) ) >
<primitive 112 temp 5 " squared " \
#( #[ 32 32 194 243 245] \
#( ) ) >
<primitive 112 temp 6 " sqrt " \
#( #[ 32 175 10 43 243 245] \
#( ) ) >
<primitive 112 temp 7 " sign " \
#( #[ 32 80 199 247 3 90 248 11 242 32 80 204 247 3 81 \
248 2 242 80 243 245] \
#( ) ) >
<primitive 112 temp 8 " roundTo: " \
#( #[ 32 33 190 10 41 33 194 243 245] \
#( ) ) >
<primitive 112 temp 9 " reciprocal " \
#( #[ 48 32 190 243 245] \
#( 1.00 ) ) >
<primitive 112 temp 10 " raisedTo: " \
#( #[ 32 175 33 175 11 16 243 245] \
#( ) ) >
<primitive 112 temp 11 " radians " \
#( #[ 5 54 32 175 176 243 245] \
#( ) ) >
<primitive 112 temp 12 " positive " \
#( #[ 32 80 203 243 245] \
#( ) ) >
<primitive 112 temp 13 " pi " \
#( #[ 32 48 194 243 245] \
#( 3.1415926 ) ) >
<primitive 112 temp 14 " negative " \
#( #[ 32 80 199 243 245] \
#( ) ) >
<primitive 112 temp 15 " negated " \
#( #[ 80 32 193 243 245] \
#( ) ) >
<primitive 112 temp 16 " log: " \
#( #[ 32 10 32 33 10 32 190 243 245] \
#( ) ) >
<primitive 112 temp 17 " ln " \
#( #[ 32 175 10 32 243 245] \
#( ) ) >
<primitive 112 temp 18 " gamma " \
#( #[ 32 175 10 26 243 245] \
#( ) ) >
<primitive 112 temp 19 " exp " \
#( #[ 32 175 10 23 243 245] \
#( ) ) >
<primitive 112 temp 20 " abs " \
#( #[ 32 80 199 247 5 80 32 193 248 2 242 32 243 245] \
#( ) ) >
<primitive 112 temp 21 " @ " \
#( #[ 5 53 160 32 11 50 33 11 51 243 245] \
#( ) ) >
<primitive 112 temp 22 " ^ " \
#( #[ 32 175 33 175 11 16 243 245] \
#( ) ) >
<primitive 112 temp 23 " / " \
#( #[ 32 33 11 34 33 32 11 34 190 243 245] \
#( ) ) >
<primitive 112 temp 24 " * " \
#( #[ 32 33 11 34 33 32 11 34 194 243 245] \
#( ) ) >
<primitive 112 temp 25 " - " \
#( #[ 32 33 11 34 33 32 11 34 193 243 245] \
#( ) ) >
<primitive 112 temp 26 " + " \
#( #[ 32 33 11 34 33 32 11 34 192 243 245] \
#( ) ) >
<primitive 112 temp 27 " > " \
#( #[ 32 33 11 34 33 32 11 34 204 243 245] \
#( ) ) >
<primitive 112 temp 28 " < " \
#( #[ 32 33 11 34 33 32 11 34 199 243 245] \
#( ) ) >
<primitive 112 temp 29 " = " \
#( #[ 32 33 11 34 33 32 11 34 201 243 245] \
#( ) ) >
<primitive 112 temp 30 " maxtype: " \
#( #[ 32 33 250 2 9 247 3 32 248 4 242 33 32 191 243 \
245] \
#( ) ) >
<primitive 98 #Number \
<primitive 97 #Number #Magnitude #/u/smalltalk/prelude/number.st \
#( ) \
#( #truncateTo: #to:by: #to: #strictlyPositive #squared #sqrt #sign #roundTo: #reciprocal #raisedTo: #radians #positive #pi #negative #negated #log: #ln #gamma #exp #abs #@ #^ #/ #* #- #+ #> #< #= #maxtype: ) \
temp 3 6 > >
SHAR_EOF
if test 3046 -ne "`wc -c < 'number.p'`"
then
echo shar: error transmitting "'number.p'" '(should have been 3046 characters)'
fi
fi # end of overwriting check
if test -f 'integer.p'
then
echo shar: will not over-write existing file "'integer.p'"
else
cat << \SHAR_EOF > 'integer.p'
temp <- <primitive 110 31 >
<primitive 112 temp 1 " timesRepeat: " \
#( #[ 80 114 34 32 199 247 11 33 165 242 34 81 192 241 114 \
242 249 16 242 245] \
#( ) ) >
<primitive 112 temp 2 " rem: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 29 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 3 " radix: " \
#( #[ 32 33 250 2 26 243 245] \
#( ) ) >
<primitive 112 temp 4 " quo: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 28 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 5 " odd " \
#( #[ 32 82 205 80 202 243 245] \
#( ) ) >
<primitive 112 temp 6 " noMask: " \
#( #[ 80 32 33 197 201 243 245] \
#( ) ) >
<primitive 112 temp 7 " lcm: " \
#( #[ 32 33 250 2 6 247 10 32 33 194 32 33 11 27 206 \
248 4 242 32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 8 " highBit " \
#( #[ 32 250 1 34 243 245] \
#( ) ) >
<primitive 112 temp 9 " gcd: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 20 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 10 " factorial " \
#( #[ 32 250 1 38 243 245] \
#( ) ) >
<primitive 112 temp 11 " even " \
#( #[ 32 82 205 80 201 243 245] \
#( ) ) >
<primitive 112 temp 12 " bitXor: " \
#( #[ 32 33 250 2 24 243 245] \
#( ) ) >
<primitive 112 temp 13 " bitShift: " \
#( #[ 32 33 250 2 25 243 245] \
#( ) ) >
<primitive 112 temp 14 " bitOr: " \
#( #[ 32 33 250 2 22 243 245] \
#( ) ) >
<primitive 112 temp 15 " bitInvert " \
#( #[ 32 250 1 33 243 245] \
#( ) ) >
<primitive 112 temp 16 " bitAt: " \
#( #[ 32 33 250 2 21 243 245] \
#( ) ) >
<primitive 112 temp 17 " bitAnd: " \
#( #[ 32 33 250 2 23 243 245] \
#( ) ) >
<primitive 112 temp 18 " asString " \
#( #[ 32 250 1 37 243 245] \
#( ) ) >
<primitive 112 temp 19 " asFloat " \
#( #[ 32 250 1 39 243 245] \
#( ) ) >
<primitive 112 temp 20 " asCharacter " \
#( #[ 32 250 1 36 243 245] \
#( ) ) >
<primitive 112 temp 21 " anyMask: " \
#( #[ 80 32 33 250 2 23 202 243 245] \
#( ) ) >
<primitive 112 temp 22 " allMask: " \
#( #[ 33 32 33 250 2 23 201 243 245] \
#( ) ) >
<primitive 112 temp 23 " \\ " \
#( #[ 32 33 250 2 6 247 18 32 32 80 199 247 3 90 248 \
2 242 81 194 114 34 33 205 248 4 242 32 10 35 243 \
245] \
#( ) ) >
<primitive 112 temp 24 " // " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 19 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 25 " / " \
#( #[ 32 175 33 190 243 245] \
#( ) ) >
<primitive 112 temp 26 " * " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 18 248 5 242 \
32 33 145 0 243 245] \
#( #* ) ) >
<primitive 112 temp 27 " - " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 11 248 5 242 \
32 33 145 0 243 245] \
#( #- ) ) >
<primitive 112 temp 28 " + " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 10 248 5 242 \
32 33 145 0 243 245] \
#( #+ ) ) >
<primitive 112 temp 29 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 12 248 5 242 \
32 33 145 0 243 245] \
#( #< ) ) >
<primitive 112 temp 30 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 13 248 5 242 \
32 33 145 0 243 245] \
#( #> ) ) >
<primitive 112 temp 31 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 16 248 5 242 \
32 33 145 0 243 245] \
#( #= ) ) >
<primitive 98 #Integer \
<primitive 97 #Integer #Number #/u/smalltalk/prelude/integer.st \
#( ) \
#( #timesRepeat: #rem: #radix: #quo: #odd #noMask: #lcm: #highBit #gcd: #factorial #even #bitXor: #bitShift: #bitOr: #bitInvert #bitAt: #bitAnd: #asString #asFloat #asCharacter #anyMask: #allMask: #\\ #// #/ #* #- #+ #< #> #= ) \
temp 3 5 > >
SHAR_EOF
if test 3531 -ne "`wc -c < 'integer.p'`"
then
echo shar: error transmitting "'integer.p'" '(should have been 3531 characters)'
fi
fi # end of overwriting check
if test -f 'char.p'
then
echo shar: will not over-write existing file "'char.p'"
else
cat << \SHAR_EOF > 'char.p'
temp <- <primitive 110 18 >
<primitive 112 temp 1 " printString " \
#( #[ 48 32 250 1 58 11 17 243 245] \
#( '$' ) ) >
<primitive 112 temp 2 " isVowel " \
#( #[ 32 250 1 51 243 245] \
#( ) ) >
<primitive 112 temp 3 " isUppercase " \
#( #[ 32 48 49 218 243 245] \
#( $A $Z ) ) >
<primitive 112 temp 4 " isSeparator " \
#( #[ 32 250 1 55 243 245] \
#( ) ) >
<primitive 112 temp 5 " isLowercase " \
#( #[ 32 48 49 218 243 245] \
#( $a $z ) ) >
<primitive 112 temp 6 " isLetter " \
#( #[ 32 10 28 251 3 32 10 29 243 245] \
#( ) ) >
<primitive 112 temp 7 " isDigit " \
#( #[ 32 48 49 218 243 245] \
#( $0 $9 ) ) >
<primitive 112 temp 8 " isAlphaNumeric " \
#( #[ 32 250 1 56 243 245] \
#( ) ) >
<primitive 112 temp 9 " digitValue " \
#( #[ 32 250 1 50 241 113 161 247 3 32 48 188 242 33 243 \
245] \
#( 'digitValue on nondigit char' ) ) >
<primitive 112 temp 10 " compareError " \
#( #[ 32 48 188 243 245] \
#( 'char cannot be compared to non char' ) ) >
<primitive 112 temp 11 " asString " \
#( #[ 32 250 1 58 243 245] \
#( ) ) >
<primitive 112 temp 12 " asUppercase " \
#( #[ 32 250 1 53 247 6 32 250 1 57 248 2 242 32 243 \
245] \
#( ) ) >
<primitive 112 temp 13 " asLowercase " \
#( #[ 32 250 1 54 247 6 32 250 1 57 248 2 242 32 243 \
245] \
#( ) ) >
<primitive 112 temp 14 " asciiValue " \
#( #[ 32 250 1 59 243 245] \
#( ) ) >
<primitive 112 temp 15 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 43 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 16 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 17 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 42 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 18 " == " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 2 242 \
92 243 245] \
#( ) ) >
<primitive 98 #Char \
<primitive 97 #Char #Magnitude #/u/smalltalk/prelude/char.st \
#( ) \
#( #printString #isVowel #isUppercase #isSeparator #isLowercase #isLetter #isDigit #isAlphaNumeric #digitValue #compareError #asString #asUppercase #asLowercase #asciiValue #> #= #< #== ) \
temp 2 4 > >
SHAR_EOF
if test 2174 -ne "`wc -c < 'char.p'`"
then
echo shar: error transmitting "'char.p'" '(should have been 2174 characters)'
fi
fi # end of overwriting check
if test -f 'float.p'
then
echo shar: will not over-write existing file "'float.p'"
else
cat << \SHAR_EOF > 'float.p'
temp <- <primitive 110 25 >
<primitive 112 temp 1 " truncated " \
#( #[ 32 48 199 247 6 32 250 1 73 248 5 242 32 250 1 \
72 243 245] \
#( 0.0 ) ) >
<primitive 112 temp 2 " sqrt " \
#( #[ 32 250 1 71 243 245] \
#( ) ) >
<primitive 112 temp 3 " rounded " \
#( #[ 32 48 192 250 1 72 243 245] \
#( 0.5 ) ) >
<primitive 112 temp 4 " radix: " \
#( #[ 32 33 250 2 89 243 245] \
#( ) ) >
<primitive 112 temp 5 " ln " \
#( #[ 32 250 1 70 243 245] \
#( ) ) >
<primitive 112 temp 6 " integerPart " \
#( #[ 32 250 1 75 243 245] \
#( ) ) >
<primitive 112 temp 7 " gamma " \
#( #[ 32 250 1 77 243 245] \
#( ) ) >
<primitive 112 temp 8 " fractionPart " \
#( #[ 32 250 1 76 243 245] \
#( ) ) >
<primitive 112 temp 9 " floor " \
#( #[ 32 250 1 72 243 245] \
#( ) ) >
<primitive 112 temp 10 " exp " \
#( #[ 32 250 1 79 243 245] \
#( ) ) >
<primitive 112 temp 11 " coerce: " \
#( #[ 33 175 243 245] \
#( ) ) >
<primitive 112 temp 12 " ceiling " \
#( #[ 32 250 1 73 243 245] \
#( ) ) >
<primitive 112 temp 13 " asString " \
#( #[ 32 250 1 78 243 245] \
#( ) ) >
<primitive 112 temp 14 " asFloat " \
#( #[ 32 243 245] \
#( ) ) >
<primitive 112 temp 15 " arcTan " \
#( #[ 5 54 32 250 1 86 176 243 245] \
#( ) ) >
<primitive 112 temp 16 " arcSin " \
#( #[ 5 54 32 250 1 84 176 243 245] \
#( ) ) >
<primitive 112 temp 17 " arcCos " \
#( #[ 5 54 32 250 1 85 176 243 245] \
#( ) ) >
<primitive 112 temp 18 " ^ " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 88 248 5 242 \
32 33 145 0 243 245] \
#( #raisedTo: ) ) >
<primitive 112 temp 19 " / " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 69 248 5 242 \
32 33 145 0 243 245] \
#( #/ ) ) >
<primitive 112 temp 20 " * " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 68 248 5 242 \
32 33 145 0 243 245] \
#( #* ) ) >
<primitive 112 temp 21 " - " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 61 248 5 242 \
32 33 145 0 243 245] \
#( #- ) ) >
<primitive 112 temp 22 " + " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 60 248 5 242 \
32 33 145 0 243 245] \
#( #+ ) ) >
<primitive 112 temp 23 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 63 248 5 242 \
32 33 145 0 243 245] \
#( #> ) ) >
<primitive 112 temp 24 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 62 248 5 242 \
32 33 145 0 243 245] \
#( #< ) ) >
<primitive 112 temp 25 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 66 248 5 242 \
32 33 145 0 243 245] \
#( #= ) ) >
<primitive 98 #Float \
<primitive 97 #Float #Number #/u/smalltalk/prelude/float.st \
#( ) \
#( #truncated #sqrt #rounded #radix: #ln #integerPart #gamma #fractionPart #floor #exp #coerce: #ceiling #asString #asFloat #arcTan #arcSin #arcCos #^ #/ #* #- #+ #> #< #= ) \
temp 2 4 > >
SHAR_EOF
if test 2739 -ne "`wc -c < 'float.p'`"
then
echo shar: error transmitting "'float.p'" '(should have been 2739 characters)'
fi
fi # end of overwriting check
if test -f 'radian.p'
then
echo shar: will not over-write existing file "'radian.p'"
else
cat << \SHAR_EOF > 'radian.p'
temp <- <primitive 110 8 >
<primitive 112 temp 1 " printString " \
#( #[ 16 10 16 48 11 17 243 245] \
#( ' radians' ) ) >
<primitive 112 temp 2 " asFloat " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 3 " tan " \
#( #[ 16 250 1 81 16 250 1 82 190 243 245] \
#( ) ) >
<primitive 112 temp 4 " cos " \
#( #[ 16 250 1 82 243 245] \
#( ) ) >
<primitive 112 temp 5 " sin " \
#( #[ 16 250 1 81 243 245] \
#( ) ) >
<primitive 112 temp 6 " = " \
#( #[ 16 33 175 201 243 245] \
#( ) ) >
<primitive 112 temp 7 " < " \
#( #[ 16 33 175 199 243 245] \
#( ) ) >
<primitive 112 temp 8 " new: " \
#( #[ 33 175 250 1 80 96 245] \
#( ) ) >
<primitive 98 #Radian \
<primitive 97 #Radian #Magnitude #/u/smalltalk/prelude/radian.st \
#( #value ) \
#( #printString #asFloat #tan #cos #sin #= #< #new: ) \
temp 2 3 > >
SHAR_EOF
if test 848 -ne "`wc -c < 'radian.p'`"
then
echo shar: error transmitting "'radian.p'" '(should have been 848 characters)'
fi
fi # end of overwriting check
if test -f 'point.p'
then
echo shar: will not over-write existing file "'point.p'"
else
cat << \SHAR_EOF > 'point.p'
temp <- <primitive 110 21 >
<primitive 112 temp 1 " y: " \
#( #[ 33 97 245] \
#( ) ) >
<primitive 112 temp 2 " y " \
#( #[ 17 243 245] \
#( ) ) >
<primitive 112 temp 3 " x:y: " \
#( #[ 33 96 34 97 245] \
#( ) ) >
<primitive 112 temp 4 " x: " \
#( #[ 33 96 245] \
#( ) ) >
<primitive 112 temp 5 " x " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 6 " transpose " \
#( #[ 5 53 160 17 11 50 16 11 51 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 16 169 48 11 17 17 169 11 17 243 245] \
#( ' @ ' ) ) >
<primitive 112 temp 8 " min: " \
#( #[ 5 53 160 16 33 10 49 207 11 50 17 33 10 50 207 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 9 " max: " \
#( #[ 5 53 160 16 33 10 49 12 16 11 50 17 33 10 50 \
12 16 11 51 243 245] \
#( ) ) >
<primitive 112 temp 10 " dist: " \
#( #[ 16 33 10 49 193 10 44 17 33 10 50 193 10 44 192 \
10 43 243 245] \
#( ) ) >
<primitive 112 temp 11 " asString " \
#( #[ 16 10 16 48 11 17 17 10 16 11 17 243 245] \
#( ' @ ' ) ) >
<primitive 112 temp 12 " abs " \
#( #[ 5 53 160 16 173 11 50 17 173 11 51 243 245] \
#( ) ) >
<primitive 112 temp 13 " // " \
#( #[ 5 53 160 16 33 11 18 11 50 17 33 11 18 11 51 \
243 245] \
#( ) ) >
<primitive 112 temp 14 " / " \
#( #[ 5 53 160 16 33 190 11 50 17 33 190 11 51 243 245 \
] \
#( ) ) >
<primitive 112 temp 15 " - " \
#( #[ 5 53 160 16 33 10 49 193 11 50 17 33 10 50 193 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 16 " + " \
#( #[ 5 53 160 16 33 10 49 192 11 50 17 33 10 50 192 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 17 " * " \
#( #[ 5 53 160 16 33 194 11 50 17 33 194 11 51 243 245 \
] \
#( ) ) >
<primitive 112 temp 18 " = " \
#( #[ 16 33 10 49 201 252 5 17 33 10 50 201 243 245] \
#( ) ) >
<primitive 112 temp 19 " >= " \
#( #[ 16 33 10 49 203 252 5 17 33 10 50 203 243 245] \
#( ) ) >
<primitive 112 temp 20 " <= " \
#( #[ 16 33 10 49 200 252 5 17 33 10 50 199 243 245] \
#( ) ) >
<primitive 112 temp 21 " < " \
#( #[ 16 33 10 49 199 252 5 17 33 10 50 199 243 245] \
#( ) ) >
<primitive 98 #Point \
<primitive 97 #Point #Magnitude #/u/smalltalk/prelude/point.st \
#( #xvalue #yvalue ) \
#( #y: #y #x:y: #x: #x #transpose #printString #min: #max: #dist: #asString #abs #// #/ #- #+ #* #= #>= #<= #< ) \
temp 3 4 > >
SHAR_EOF
if test 2339 -ne "`wc -c < 'point.p'`"
then
echo shar: error transmitting "'point.p'" '(should have been 2339 characters)'
fi
fi # end of overwriting check
if test -f 'random.p'
then
echo shar: will not over-write existing file "'random.p'"
else
cat << \SHAR_EOF > 'random.p'
temp <- <primitive 110 7 >
<primitive 112 temp 1 " next: " \
#( #[ 5 30 33 176 114 81 33 178 225 3 6 34 35 32 167 \
208 243 179 242 34 243 245] \
#( ) ) >
<primitive 112 temp 2 " randInteger: " \
#( #[ 32 167 33 194 10 47 81 192 243 245] \
#( ) ) >
<primitive 112 temp 3 " between:and: " \
#( #[ 32 167 34 33 193 194 33 192 243 245] \
#( ) ) >
<primitive 112 temp 4 " next " \
#( #[ 16 250 1 35 241 96 250 1 32 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 16 250 1 35 241 96 250 1 32 243 245] \
#( ) ) >
<primitive 112 temp 6 " randomize " \
#( #[ 250 0 161 96 245] \
#( ) ) >
<primitive 112 temp 7 " new " \
#( #[ 81 96 245] \
#( ) ) >
<primitive 98 #Random \
<primitive 97 #Random #Object #/u/smalltalk/prelude/random.st \
#( #seed ) \
#( #next: #randInteger: #between:and: #next #first #randomize #new ) \
temp 4 6 > >
SHAR_EOF
if test 880 -ne "`wc -c < 'random.p'`"
then
echo shar: error transmitting "'random.p'" '(should have been 880 characters)'
fi
fi # end of overwriting check
if test -f 'collection.p'
then
echo shar: will not over-write existing file "'collection.p'"
else
cat << \SHAR_EOF > 'collection.p'
temp <- <primitive 110 23 >
<primitive 112 temp 1 " size " \
#( #[ 80 113 32 225 2 6 33 81 192 241 113 243 179 242 33 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " shallowCopy " \
#( #[ 5 48 160 113 32 225 2 5 33 34 11 22 243 179 242 \
32 33 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " select: " \
#( #[ 32 32 164 160 226 2 11 33 35 180 247 3 34 35 189 \
242 34 243 215 243 245] \
#( ) ) >
<primitive 112 temp 4 " remove:ifAbsent: " \
#( #[ 32 33 11 30 247 6 32 33 11 39 248 3 242 34 165 \
243 245] \
#( ) ) >
<primitive 112 temp 5 " remove: " \
#( #[ 32 33 224 4 32 48 188 244 216 242 33 243 245] \
#( 'attempt to remove object not found in collection' ) ) >
<primitive 112 temp 6 " reject: " \
#( #[ 32 225 2 5 33 34 180 172 243 11 44 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 32 32 164 169 48 11 17 226 1 9 33 49 11 17 34 \
169 11 17 243 215 50 11 17 243 245] \
#( ' (' ' ' ' )' ) ) >
<primitive 112 temp 8 " occurrencesOf: " \
#( #[ 32 80 226 2 13 35 33 201 247 5 34 81 192 248 2 \
242 34 243 215 243 245] \
#( ) ) >
<primitive 112 temp 9 " isEmpty " \
#( #[ 32 163 80 201 243 245] \
#( ) ) >
<primitive 112 temp 10 " inject:into: " \
#( #[ 33 115 32 225 4 7 34 35 36 211 241 115 243 179 242 \
35 243 245] \
#( ) ) >
<primitive 112 temp 11 " includes: " \
#( #[ 32 225 2 8 34 33 201 247 2 91 244 243 179 242 92 \
243 245] \
#( ) ) >
<primitive 112 temp 12 " first " \
#( #[ 32 48 188 243 245] \
#( 'subclass should implement first' ) ) >
<primitive 112 temp 13 " detect:ifAbsent: " \
#( #[ 32 225 3 8 33 35 180 247 2 35 244 243 179 242 34 \
165 243 245] \
#( ) ) >
<primitive 112 temp 14 " detect: " \
#( #[ 32 33 224 4 32 48 188 243 223 243 245] \
#( 'no object found matching detect' ) ) >
<primitive 112 temp 15 " deepCopy " \
#( #[ 5 48 160 113 32 225 2 7 33 34 10 20 11 22 243 \
179 242 32 33 191 243 245] \
#( ) ) >
<primitive 112 temp 16 " collect: " \
#( #[ 32 32 164 160 226 2 8 34 33 35 180 189 242 34 243 \
215 243 245] \
#( ) ) >
<primitive 112 temp 17 " coerce: " \
#( #[ 32 160 114 33 225 3 4 34 35 189 243 179 242 34 243 \
245] \
#( ) ) >
<primitive 112 temp 18 " asString " \
#( #[ 5 58 32 163 176 241 81 32 163 32 131 0 242 243 245 \
] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 19 " asList " \
#( #[ 5 48 160 32 11 20 243 245] \
#( ) ) >
<primitive 112 temp 20 " asSet " \
#( #[ 5 57 160 32 11 19 243 245] \
#( ) ) >
<primitive 112 temp 21 " asBag " \
#( #[ 5 32 160 32 11 19 243 245] \
#( ) ) >
<primitive 112 temp 22 " asArray " \
#( #[ 5 30 32 163 176 241 81 32 163 32 131 0 242 243 245 \
] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 23 " addAll: " \
#( #[ 33 225 2 4 32 34 189 243 179 242 245] \
#( ) ) >
<primitive 98 #Collection \
<primitive 97 #Collection #Object #/u/smalltalk/prelude/collection.st \
#( ) \
#( #size #shallowCopy #select: #remove:ifAbsent: #remove: #reject: #printString #occurrencesOf: #isEmpty #inject:into: #includes: #first #detect:ifAbsent: #detect: #deepCopy #collect: #coerce: #asString #asList #asSet #asBag #asArray #addAll: ) \
temp 5 7 > >
SHAR_EOF
if test 3180 -ne "`wc -c < 'collection.p'`"
then
echo shar: error transmitting "'collection.p'" '(should have been 3180 characters)'
fi
fi # end of overwriting check
if test -f 'bag.p'
then
echo shar: will not over-write existing file "'bag.p'"
else
cat << \SHAR_EOF > 'bag.p'
temp <- <primitive 110 8 >
<primitive 112 temp 1 " next " \
#( #[ 17 162 247 27 17 80 204 247 9 17 81 193 97 16 171 \
243 248 10 242 16 167 241 97 161 247 2 93 243 242 249 \
31 242 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " first " \
#( #[ 16 166 241 97 161 247 2 93 243 242 17 81 193 97 16 \
171 243 245] \
#( ) ) >
<primitive 112 temp 3 " occurrencesOf: " \
#( #[ 16 33 224 2 80 243 213 243 245] \
#( ) ) >
<primitive 112 temp 4 " size " \
#( #[ 16 80 226 1 4 33 34 192 243 215 243 245] \
#( ) ) >
<primitive 112 temp 5 " remove:ifAbsent: " \
#( #[ 16 33 224 3 34 165 244 213 115 81 35 201 247 6 16 \
33 11 40 248 7 242 16 33 35 81 193 208 242 245] \
#( ) ) >
<primitive 112 temp 6 " add:withOccurrences: " \
#( #[ 34 224 4 32 33 189 243 183 242 33 243 245] \
#( ) ) >
<primitive 112 temp 7 " add: " \
#( #[ 16 33 81 16 33 224 2 80 243 213 192 208 242 245] \
#( ) ) >
<primitive 112 temp 8 " new " \
#( #[ 5 40 160 96 245] \
#( ) ) >
<primitive 98 #Bag \
<primitive 97 #Bag #Collection #/u/smalltalk/prelude/bag.st \
#( #dict #count ) \
#( #next #first #occurrencesOf: #size #remove:ifAbsent: #add:withOccurrences: #add: #new ) \
temp 4 8 > >
SHAR_EOF
if test 1200 -ne "`wc -c < 'bag.p'`"
then
echo shar: error transmitting "'bag.p'" '(should have been 1200 characters)'
fi
fi # end of overwriting check
if test -f 'set.p'
then
echo shar: will not over-write existing file "'set.p'"
else
cat << \SHAR_EOF > 'set.p'
temp <- <primitive 110 7 >
<primitive 112 temp 1 " next " \
#( #[ 16 167 243 245] \
#( ) ) >
<primitive 112 temp 2 " first " \
#( #[ 16 166 243 245] \
#( ) ) >
<primitive 112 temp 3 " occurrencesOf: " \
#( #[ 16 33 11 30 247 3 81 248 2 242 80 243 245] \
#( ) ) >
<primitive 112 temp 4 " size " \
#( #[ 16 163 243 245] \
#( ) ) >
<primitive 112 temp 5 " remove:ifAbsent: " \
#( #[ 16 33 34 216 242 245] \
#( ) ) >
<primitive 112 temp 6 " add: " \
#( #[ 16 33 11 30 246 3 16 33 189 242 245] \
#( ) ) >
<primitive 112 temp 7 " new " \
#( #[ 5 48 160 96 245] \
#( ) ) >
<primitive 98 #Set \
<primitive 97 #Set #Collection #/u/smalltalk/prelude/set.st \
#( #list ) \
#( #next #first #occurrencesOf: #size #remove:ifAbsent: #add: #new ) \
temp 3 4 > >
SHAR_EOF
if test 788 -ne "`wc -c < 'set.p'`"
then
echo shar: error transmitting "'set.p'" '(should have been 788 characters)'
fi
fi # end of overwriting check
if test -f 'kcollection.p'
then
echo shar: will not over-write existing file "'kcollection.p'"
else
cat << \SHAR_EOF > 'kcollection.p'
temp <- <primitive 110 18 >
<primitive 112 temp 1 " values " \
#( #[ 5 32 160 113 32 225 2 4 33 34 189 243 179 242 33 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " select: " \
#( #[ 32 32 5 40 160 226 2 13 33 35 180 247 5 34 32 \
171 35 208 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " removeKey:ifAbsent: " \
#( #[ 32 48 188 243 245] \
#( 'subclass should implement RemoveKey:ifAbsent:' ) ) >
<primitive 112 temp 4 " removeKey: " \
#( #[ 32 33 224 6 32 48 188 242 33 244 217 243 245] \
#( 'no element associated with key' ) ) >
<primitive 112 temp 5 " remove: " \
#( #[ 32 48 188 243 245] \
#( 'object must be removed with explicit key' ) ) >
<primitive 112 temp 6 " keysSelect: " \
#( #[ 32 32 5 40 160 226 2 14 33 35 171 180 247 5 34 \
32 171 35 208 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 7 " keysDo: " \
#( #[ 32 225 2 5 33 32 171 180 243 179 243 245] \
#( ) ) >
<primitive 112 temp 8 " keys " \
#( #[ 5 57 160 113 32 225 2 4 33 34 189 243 11 32 242 \
33 243 245] \
#( ) ) >
<primitive 112 temp 9 " indexOf:ifAbsent: " \
#( #[ 32 225 3 9 35 33 201 247 3 32 171 244 243 179 242 \
34 165 243 245] \
#( ) ) >
<primitive 112 temp 10 " indexOf: " \
#( #[ 32 33 224 4 32 48 188 243 214 243 245] \
#( 'indexOf element not found' ) ) >
<primitive 112 temp 11 " includesKey: " \
#( #[ 32 33 224 2 92 244 213 242 91 243 245] \
#( ) ) >
<primitive 112 temp 12 " collect: " \
#( #[ 32 32 5 40 160 226 2 10 34 32 171 33 35 180 208 \
242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 13 " binaryDo: " \
#( #[ 32 225 3 6 33 32 171 35 211 243 179 242 93 243 245 \
] \
#( ) ) >
<primitive 112 temp 14 " atAll:put: " \
#( #[ 33 225 3 5 32 35 34 208 243 179 242 245] \
#( ) ) >
<primitive 112 temp 15 " at: " \
#( #[ 32 33 224 10 32 33 169 48 11 17 188 242 33 244 213 \
243 245] \
#( ': association not found' ) ) >
<primitive 112 temp 16 " asDictionary " \
#( #[ 5 40 160 113 32 226 2 5 33 34 35 208 243 11 23 \
242 33 243 245] \
#( ) ) >
<primitive 112 temp 17 " addAll: " \
#( #[ 33 226 2 5 32 34 35 208 243 11 23 242 33 243 245 \
] \
#( ) ) >
<primitive 112 temp 18 " add: " \
#( #[ 32 48 188 243 245] \
#( 'Must add with explicit key' ) ) >
<primitive 98 #KeyedCollection \
<primitive 97 #KeyedCollection #Collection #/u/smalltalk/prelude/kcollection.st \
#( ) \
#( #values #select: #removeKey:ifAbsent: #removeKey: #remove: #keysSelect: #keysDo: #keys #indexOf:ifAbsent: #indexOf: #includesKey: #collect: #binaryDo: #atAll:put: #at: #asDictionary #addAll: #add: ) \
temp 4 9 > >
SHAR_EOF
if test 2622 -ne "`wc -c < 'kcollection.p'`"
then
echo shar: error transmitting "'kcollection.p'" '(should have been 2622 characters)'
fi
fi # end of overwriting check
if test -f 'dictionary.p'
then
echo shar: will not over-write existing file "'dictionary.p'"
else
cat << \SHAR_EOF > 'dictionary.p'
temp <- <primitive 110 12 >
<primitive 112 temp 1 " checkBucket: " \
#( #[ 16 33 241 97 177 241 98 161 247 2 93 243 242 18 166 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " currentKey " \
#( #[ 18 162 247 11 18 10 21 113 33 162 247 3 33 10 49 \
243 245] \
#( ) ) >
<primitive 112 temp 3 " printString " \
#( #[ 32 32 164 169 48 11 17 226 1 17 33 32 171 169 11 \
17 49 11 17 34 169 11 17 50 11 17 243 215 51 11 \
17 243 245] \
#( ' ( ' ' @ ' ' ' ')' ) ) >
<primitive 112 temp 4 " next " \
#( #[ 18 167 241 113 162 247 4 33 10 50 243 242 17 5 17 \
199 247 20 17 81 192 97 32 17 11 24 241 113 162 247 \
4 33 10 50 243 242 249 26 242 93 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 81 5 17 178 225 2 14 32 34 11 24 241 113 162 247 \
4 33 10 50 244 243 179 242 93 243 245] \
#( ) ) >
<primitive 112 temp 6 " findAssociation:inList: " \
#( #[ 34 225 3 10 35 10 49 33 201 247 2 35 244 243 179 \
242 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " removeKey:ifAbsent: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \
165 243 242 35 36 224 3 34 165 244 216 10 50 243 245 \
] \
#( ) ) >
<primitive 112 temp 8 " at:ifAbsent: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \
165 243 242 36 10 50 243 245] \
#( ) ) >
<primitive 112 temp 9 " at:put: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 15 5 \
53 160 33 11 50 34 11 51 116 35 36 189 248 5 242 \
36 34 11 51 242 34 243 245] \
#( ) ) >
<primitive 112 temp 10 " getList: " \
#( #[ 32 33 11 29 115 16 35 177 114 34 161 247 8 5 48 \
160 114 16 35 34 208 242 34 243 245] \
#( ) ) >
<primitive 112 temp 11 " hashNumber: " \
#( #[ 33 250 1 5 16 163 195 81 192 243 245] \
#( ) ) >
<primitive 112 temp 12 " new " \
#( #[ 5 30 5 17 176 96 245] \
#( ) ) >
<primitive 98 #Dictionary \
<primitive 97 #Dictionary #KeyedCollection #/u/smalltalk/prelude/dictionary.st \
#( #hashTable #currentBucket #currentList ) \
#( #checkBucket: #currentKey #printString #next #first #findAssociation:inList: #removeKey:ifAbsent: #at:ifAbsent: #at:put: #getList: #hashNumber: #new ) \
temp 5 6 > >
SHAR_EOF
if test 2139 -ne "`wc -c < 'dictionary.p'`"
then
echo shar: error transmitting "'dictionary.p'" '(should have been 2139 characters)'
fi
fi # end of overwriting check
if test -f 'scollection.p'
then
echo shar: will not over-write existing file "'scollection.p'"
else
cat << \SHAR_EOF > 'scollection.p'
temp <- <primitive 110 21 >
<primitive 112 temp 1 " with:do: " \
#( #[ 32 166 115 33 166 116 35 162 247 15 34 35 36 211 242 \
32 167 115 33 167 241 116 242 249 19 242 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " sort: " \
#( #[ 32 174 116 82 36 163 178 225 5 51 37 81 193 114 34 \
81 203 252 11 33 36 34 177 36 34 81 192 177 211 172 \
247 28 36 34 177 115 36 34 36 34 81 192 177 208 242 \
36 34 81 192 35 208 242 34 81 193 241 114 242 249 46 \
243 179 242 32 36 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " sort " \
#( #[ 32 226 1 4 33 34 200 243 11 46 243 245] \
#( ) ) >
<primitive 112 temp 4 " select: " \
#( #[ 32 32 5 48 160 226 2 12 33 35 180 247 4 34 35 \
11 22 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 5 " reversed " \
#( #[ 5 30 32 163 241 114 176 113 32 225 3 11 33 34 35 \
208 242 34 81 193 241 114 243 179 242 32 33 191 243 245 \
] \
#( ) ) >
<primitive 112 temp 6 " reverseDo: " \
#( #[ 32 10 31 114 32 10 25 115 34 35 203 247 20 32 34 \
11 52 247 5 33 32 34 177 180 242 34 81 193 241 114 \
242 249 25 242 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " replaceFrom:to:with:startingAt: " \
#( #[ 80 117 33 37 192 34 200 247 19 32 33 37 192 35 37 \
36 192 177 208 242 37 81 192 241 117 242 249 26 242 245 \
] \
#( ) ) >
<primitive 112 temp 8 " replaceFrom:to:with: " \
#( #[ 35 33 226 4 9 32 36 37 208 242 36 81 192 243 215 \
242 245] \
#( ) ) >
<primitive 112 temp 9 " last " \
#( #[ 80 32 163 201 246 5 32 32 10 31 177 243 245] \
#( ) ) >
<primitive 112 temp 10 " indexOfSubCollection:startingAt: " \
#( #[ 32 33 34 224 6 32 48 188 242 93 243 131 1 243 245 \
] \
#( 'element not found' #indexOfSubCollection:startingAt:ifAbsent: ) ) >
<primitive 112 temp 11 " indexOfSubCollection:startingAt:ifAbsent: " \
#( #[ 34 116 32 163 33 163 193 117 36 37 200 247 17 33 32 \
36 221 247 2 36 243 242 36 81 192 241 116 242 249 22 \
242 35 165 243 245] \
#( ) ) >
<primitive 112 temp 12 " findLast:ifAbsent: " \
#( #[ 32 225 3 9 33 35 180 247 3 32 171 244 243 11 42 \
242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 13 " findLast: " \
#( #[ 32 33 224 4 32 48 188 243 220 242 245] \
#( 'last element not found' ) ) >
<primitive 112 temp 14 " findFirst:ifAbsent: " \
#( #[ 32 225 3 9 33 35 180 247 3 32 171 244 243 179 242 \
34 165 243 245] \
#( ) ) >
<primitive 112 temp 15 " findFirst: " \
#( #[ 32 33 224 4 32 48 188 243 219 243 245] \
#( 'first element not found' ) ) >
<primitive 112 temp 16 " equals:startingAt: " \
#( #[ 80 115 32 225 4 22 36 33 34 35 192 224 2 92 244 \
213 201 246 2 92 244 242 35 81 192 241 115 243 179 242 \
91 243 245] \
#( ) ) >
<primitive 112 temp 17 " copyWithout: " \
#( #[ 5 48 160 114 32 225 3 10 35 33 181 246 4 34 35 \
11 22 243 179 242 32 34 191 243 245] \
#( ) ) >
<primitive 112 temp 18 " copyWith: " \
#( #[ 32 5 48 160 241 32 11 20 242 241 33 11 22 242 191 \
243 245] \
#( ) ) >
<primitive 112 temp 19 " copyFrom:to: " \
#( #[ 5 48 160 115 33 34 178 225 4 7 35 32 36 177 11 \
22 243 179 242 32 35 191 243 245] \
#( ) ) >
<primitive 112 temp 20 " collect: " \
#( #[ 32 32 5 48 160 226 2 9 34 33 35 180 11 22 242 \
34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 21 " , " \
#( #[ 32 5 48 160 241 32 11 20 242 241 33 11 20 242 191 \
243 245] \
#( ) ) >
<primitive 98 #SequenceableCollection \
<primitive 97 #SequenceableCollection #KeyedCollection #/u/smalltalk/prelude/scollection.st \
#( ) \
#( #with:do: #sort: #sort #select: #reversed #reverseDo: #replaceFrom:to:with:startingAt: #replaceFrom:to:with: #last #indexOfSubCollection:startingAt: #indexOfSubCollection:startingAt:ifAbsent: #findLast:ifAbsent: #findLast: #findFirst:ifAbsent: #findFirst: #equals:startingAt: #copyWithout: #copyWith: #copyFrom:to: #collect: #, ) \
temp 6 9 > >
SHAR_EOF
if test 3846 -ne "`wc -c < 'scollection.p'`"
then
echo shar: error transmitting "'scollection.p'" '(should have been 3846 characters)'
fi
fi # end of overwriting check
if test -f 'interval.p'
then
echo shar: will not over-write existing file "'interval.p'"
else
cat << \SHAR_EOF > 'interval.p'
temp <- <primitive 110 13 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 16 17 18 212 243 245] \
#( ) ) >
<primitive 112 temp 2 " deepCopy " \
#( #[ 16 17 18 212 243 245] \
#( ) ) >
<primitive 112 temp 3 " removeKey:ifAbsent: " \
#( #[ 32 48 188 242 34 165 243 245] \
#( 'cannot remove from Interval' ) ) >
<primitive 112 temp 4 " add: " \
#( #[ 32 48 188 243 245] \
#( 'cannot store into Interval' ) ) >
<primitive 112 temp 5 " at:put: " \
#( #[ 32 48 188 243 245] \
#( 'cannot store into Interval' ) ) >
<primitive 112 temp 6 " coerce: " \
#( #[ 33 174 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 48 16 169 11 17 49 11 17 17 169 11 17 50 11 17 \
18 169 11 17 243 245] \
#( 'Interval ' ' to ' ' by ' ) ) >
<primitive 112 temp 8 " at:ifAbsent: " \
#( #[ 16 18 33 81 193 194 192 115 32 35 11 31 247 3 35 \
248 3 242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 9 " next " \
#( #[ 19 18 192 99 32 19 11 31 247 1 19 243 245] \
#( ) ) >
<primitive 112 temp 10 " first " \
#( #[ 16 99 32 19 11 31 247 1 19 243 245] \
#( ) ) >
<primitive 112 temp 11 " inRange: " \
#( #[ 18 170 247 10 33 16 203 252 3 33 17 200 248 9 242 \
33 17 203 252 3 33 16 200 243 245] \
#( ) ) >
<primitive 112 temp 12 " size " \
#( #[ 18 170 247 5 17 16 199 248 4 242 16 17 199 247 3 \
80 248 9 242 17 16 193 18 11 18 81 192 243 245] \
#( ) ) >
<primitive 112 temp 13 " from:to:by: " \
#( #[ 33 241 96 99 34 97 35 98 245] \
#( ) ) >
<primitive 98 #Interval \
<primitive 97 #Interval #SequenceableCollection #/u/smalltalk/prelude/interval.st \
#( #lower #upper #step #current ) \
#( #shallowCopy #deepCopy #removeKey:ifAbsent: #add: #at:put: #coerce: #printString #at:ifAbsent: #next #first #inRange: #size #from:to:by: ) \
temp 4 5 > >
SHAR_EOF
if test 1805 -ne "`wc -c < 'interval.p'`"
then
echo shar: error transmitting "'interval.p'" '(should have been 1805 characters)'
fi
fi # end of overwriting check
if test -f 'list.p'
then
echo shar: will not over-write existing file "'list.p'"
else
cat << \SHAR_EOF > 'list.p'
temp <- <primitive 110 17 >
<primitive 112 temp 1 " isEmpty " \
#( #[ 16 93 181 243 245] \
#( ) ) >
<primitive 112 temp 2 " last " \
#( #[ 16 161 247 2 93 243 242 32 10 24 10 49 243 245] \
#( ) ) >
<primitive 112 temp 3 " current " \
#( #[ 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 4 " next " \
#( #[ 17 10 50 241 97 162 247 3 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 16 241 97 162 247 3 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 6 " removeLast " \
#( #[ 16 161 247 4 32 10 37 243 242 32 32 10 30 224 4 \
32 10 37 243 216 243 245] \
#( ) ) >
<primitive 112 temp 7 " removeFirst " \
#( #[ 16 161 247 4 32 10 37 243 242 16 113 16 10 50 96 \
33 10 49 243 245] \
#( ) ) >
<primitive 112 temp 8 " removeError " \
#( #[ 32 48 188 243 245] \
#( 'cannot remove from an empty list' ) ) >
<primitive 112 temp 9 " remove:ifAbsent: " \
#( #[ 16 161 247 3 34 165 243 242 32 93 226 3 31 17 10 \
49 33 181 247 21 35 161 247 7 17 10 50 241 96 248 \
7 242 35 17 10 50 11 51 242 33 244 242 17 243 215 \
242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 10 " remove: " \
#( #[ 32 33 224 4 32 48 188 243 216 243 245] \
#( 'cant find item' ) ) >
<primitive 112 temp 11 " findLast " \
#( #[ 16 241 113 161 247 2 93 243 242 33 10 50 162 247 8 \
33 10 50 241 113 242 249 14 242 33 243 245] \
#( ) ) >
<primitive 112 temp 12 " coerce: " \
#( #[ 5 48 160 114 33 225 3 5 34 35 11 22 243 179 242 \
34 243 245] \
#( ) ) >
<primitive 112 temp 13 " addAllLast: " \
#( #[ 33 225 2 5 32 34 11 22 243 179 242 245] \
#( ) ) >
<primitive 112 temp 14 " addAllFirst: " \
#( #[ 33 225 2 5 32 34 11 21 243 179 242 245] \
#( ) ) >
<primitive 112 temp 15 " addLast: " \
#( #[ 16 161 247 5 32 33 11 21 243 242 32 10 24 5 53 \
160 33 11 50 93 11 51 11 51 242 33 243 245] \
#( ) ) >
<primitive 112 temp 16 " addFirst: " \
#( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \
#( ) ) >
<primitive 112 temp 17 " add: " \
#( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \
#( ) ) >
<primitive 98 #List \
<primitive 97 #List #SequenceableCollection #/u/smalltalk/prelude/list.st \
#( #first #current ) \
#( #isEmpty #last #current #next #first #removeLast #removeFirst #removeError #remove:ifAbsent: #remove: #findLast #coerce: #addAllLast: #addAllFirst: #addLast: #addFirst: #add: ) \
temp 5 8 > >
SHAR_EOF
if test 2388 -ne "`wc -c < 'list.p'`"
then
echo shar: error transmitting "'list.p'" '(should have been 2388 characters)'
fi
fi # end of overwriting check
if test -f 'acollection.p'
then
echo shar: will not over-write existing file "'acollection.p'"
else
cat << \SHAR_EOF > 'acollection.p'
temp <- <primitive 110 12 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 32 164 32 163 176 113 81 32 163 178 225 2 7 33 34 \
32 34 177 208 243 179 242 33 243 245] \
#( ) ) >
<primitive 112 temp 2 " next " \
#( #[ 16 81 192 96 16 32 163 200 247 3 32 16 177 243 245 \
] \
#( ) ) >
<primitive 112 temp 3 " lastKey " \
#( #[ 32 163 243 245] \
#( ) ) >
<primitive 112 temp 4 " firstKey " \
#( #[ 81 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 81 96 16 32 163 200 247 3 32 16 177 243 245] \
#( ) ) >
<primitive 112 temp 6 " do: " \
#( #[ 81 32 163 178 225 2 8 34 96 33 32 34 177 180 243 \
179 242 245] \
#( ) ) >
<primitive 112 temp 7 " deepCopy " \
#( #[ 32 164 32 163 176 113 81 32 163 178 225 2 9 33 34 \
32 34 177 10 20 208 243 179 242 33 243 245] \
#( ) ) >
<primitive 112 temp 8 " currentKey " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 9 " copyFrom:to: " \
#( #[ 34 33 193 81 192 115 32 164 35 176 116 36 81 35 32 \
33 132 0 242 36 243 245] \
#( #replaceFrom:to:with:startingAt: ) ) >
<primitive 112 temp 10 " coerce: " \
#( #[ 32 164 33 163 176 114 34 81 33 163 33 131 0 242 34 \
243 245] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 11 " at:ifAbsent: " \
#( #[ 33 80 200 251 4 33 32 163 204 247 3 34 165 243 242 \
32 33 177 243 245] \
#( ) ) >
<primitive 112 temp 12 " = " \
#( #[ 32 163 33 163 202 247 2 92 243 242 80 114 32 225 3 \
14 35 33 34 81 192 241 114 177 202 247 2 92 244 243 \
179 242 91 243 245] \
#( ) ) >
<primitive 98 #ArrayedCollection \
<primitive 97 #ArrayedCollection #SequenceableCollection #/u/smalltalk/prelude/acollection.st \
#( #current ) \
#( #shallowCopy #next #lastKey #firstKey #first #do: #deepCopy #currentKey #copyFrom:to: #coerce: #at:ifAbsent: #= ) \
temp 5 7 > >
SHAR_EOF
if test 1809 -ne "`wc -c < 'acollection.p'`"
then
echo shar: error transmitting "'acollection.p'" '(should have been 1809 characters)'
fi
fi # end of overwriting check
if test -f 'file.p'
then
echo shar: will not over-write existing file "'file.p'"
else
cat << \SHAR_EOF > 'file.p'
temp <- <primitive 110 13 >
<primitive 112 temp 1 " write: " \
#( #[ 32 33 250 2 132 243 245] \
#( ) ) >
<primitive 112 temp 2 " size " \
#( #[ 32 250 1 134 243 245] \
#( ) ) >
<primitive 112 temp 3 " read " \
#( #[ 32 250 1 131 243 245] \
#( ) ) >
<primitive 112 temp 4 " open:for: " \
#( #[ 32 33 34 250 3 130 242 245] \
#( ) ) >
<primitive 112 temp 5 " open: " \
#( #[ 32 33 48 250 3 130 242 245] \
#( 'r' ) ) >
<primitive 112 temp 6 " next " \
#( #[ 32 10 36 243 245] \
#( ) ) >
<primitive 112 temp 7 " first " \
#( #[ 32 80 177 243 245] \
#( ) ) >
<primitive 112 temp 8 " currentKey " \
#( #[ 32 250 1 136 243 245] \
#( ) ) >
<primitive 112 temp 9 " at:put: " \
#( #[ 32 33 250 2 135 242 32 34 11 49 243 245] \
#( ) ) >
<primitive 112 temp 10 " at: " \
#( #[ 32 33 250 2 135 242 32 10 36 243 245] \
#( ) ) >
<primitive 112 temp 11 " modeString " \
#( #[ 32 81 250 2 133 242 245] \
#( ) ) >
<primitive 112 temp 12 " modeInteger " \
#( #[ 32 82 250 2 133 242 245] \
#( ) ) >
<primitive 112 temp 13 " modeCharacter " \
#( #[ 32 80 250 2 133 242 245] \
#( ) ) >
<primitive 98 #File \
<primitive 97 #File #SequenceableCollection #/u/smalltalk/prelude/file.st \
#( ) \
#( #write: #size #read #open:for: #open: #next #first #currentKey #at:put: #at: #modeString #modeInteger #modeCharacter ) \
temp 3 4 > >
SHAR_EOF
if test 1377 -ne "`wc -c < 'file.p'`"
then
echo shar: error transmitting "'file.p'" '(should have been 1377 characters)'
fi
fi # end of overwriting check
if test -f 'bytearray.p'
then
echo shar: will not over-write existing file "'bytearray.p'"
else
cat << \SHAR_EOF > 'bytearray.p'
temp <- <primitive 110 5 >
<primitive 112 temp 1 " size " \
#( #[ 32 250 1 117 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 48 113 81 32 163 178 225 2 13 33 32 34 177 169 11 \
17 49 11 17 241 113 243 179 242 33 50 11 17 243 245 \
] \
#( '#[ ' ' ' ']' ) ) >
<primitive 112 temp 3 " at:put: " \
#( #[ 32 33 34 250 3 119 242 245] \
#( ) ) >
<primitive 112 temp 4 " at: " \
#( #[ 32 33 250 2 118 243 245] \
#( ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 116 243 245] \
#( ) ) >
<primitive 98 #ByteArray \
<primitive 97 #ByteArray #ArrayedCollection #/u/smalltalk/prelude/bytearray.st \
#( ) \
#( #size #printString #at:put: #at: #new: ) \
temp 3 6 > >
SHAR_EOF
if test 712 -ne "`wc -c < 'bytearray.p'`"
then
echo shar: error transmitting "'bytearray.p'" '(should have been 712 characters)'
fi
fi # end of overwriting check
if test -f 'semaphore.p'
then
echo shar: will not over-write existing file "'semaphore.p'"
else
cat << \SHAR_EOF > 'semaphore.p'
temp <- <primitive 110 4 >
<primitive 112 temp 1 " wait " \
#( #[ 250 0 148 242 16 80 201 247 10 32 95 11 22 242 95 \
10 18 248 6 242 16 81 193 241 96 242 250 0 149 242 \
245] \
#( ) ) >
<primitive 112 temp 2 " signal " \
#( #[ 250 0 148 242 32 10 27 247 7 16 81 192 241 96 248 \
6 242 32 10 38 10 48 242 250 0 149 242 245] \
#( ) ) >
<primitive 112 temp 3 " new: " \
#( #[ 33 96 245] \
#( ) ) >
<primitive 112 temp 4 " new " \
#( #[ 80 96 245] \
#( ) ) >
<primitive 98 #Semaphore \
<primitive 97 #Semaphore #List #/u/smalltalk/prelude/semaphore.st \
#( #excessSignals ) \
#( #wait #signal #new: #new ) \
temp 2 4 > >
SHAR_EOF
if test 648 -ne "`wc -c < 'semaphore.p'`"
then
echo shar: error transmitting "'semaphore.p'" '(should have been 648 characters)'
fi
fi # end of overwriting check
if test -f 'process.p'
then
echo shar: will not over-write existing file "'process.p'"
else
cat << \SHAR_EOF > 'process.p'
temp <- <primitive 110 8 >
<primitive 112 temp 1 " yield " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " unblock " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 83 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'unblock' ) ) >
<primitive 112 temp 3 " termErr: " \
#( #[ 48 33 11 17 49 11 17 168 242 245] \
#( 'Cannot ' ' a terminated process.' ) ) >
<primitive 112 temp 4 " terminate " \
#( #[ 32 250 1 142 242 32 10 45 243 245] \
#( ) ) >
<primitive 112 temp 5 " state " \
#( #[ 32 250 1 146 113 33 80 201 247 4 48 113 33 243 242 \
33 81 201 247 4 49 113 33 243 242 33 82 201 247 4 \
50 113 33 243 242 33 83 201 247 4 50 113 33 243 242 \
33 84 203 247 4 51 113 33 243 242 245] \
#( #READY #SUSPENDED #BLOCKED #TERMINATED ) ) >
<primitive 112 temp 6 " suspend " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 81 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'suspend' ) ) >
<primitive 112 temp 7 " resume " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 80 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'resume' ) ) >
<primitive 112 temp 8 " block " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 82 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'block' ) ) >
<primitive 98 #Process \
<primitive 97 #Process #Object #/u/smalltalk/prelude/process.st \
#( ) \
#( #yield #unblock #termErr: #terminate #state #suspend #resume #block ) \
temp 2 4 > >
SHAR_EOF
if test 1481 -ne "`wc -c < 'process.p'`"
then
echo shar: error transmitting "'process.p'" '(should have been 1481 characters)'
fi
fi # end of overwriting check
if test -f 'smalltalk.p'
then
echo shar: will not over-write existing file "'smalltalk.p'"
else
cat << \SHAR_EOF > 'smalltalk.p'
temp <- <primitive 110 9 >
<primitive 112 temp 1 " time: " \
#( #[ 250 0 161 114 33 165 242 250 0 161 34 193 243 245] \
#( ) ) >
<primitive 112 temp 2 " sh: " \
#( #[ 33 250 1 125 243 245] \
#( ) ) >
<primitive 112 temp 3 " perform:withArguments: " \
#( #[ 34 33 250 2 143 243 245] \
#( ) ) >
<primitive 112 temp 4 " noDisplay " \
#( #[ 81 80 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 5 " doPrimitive:withArguments: " \
#( #[ 33 34 250 2 30 243 245] \
#( ) ) >
<primitive 112 temp 6 " displayAssign " \
#( #[ 81 82 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 7 " display " \
#( #[ 81 81 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 8 " debug: " \
#( #[ 82 33 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 9 " date " \
#( #[ 250 0 160 243 245] \
#( ) ) >
<primitive 98 #Smalltalk \
<primitive 97 #Smalltalk #Dictionary #/u/smalltalk/prelude/smalltalk.st \
#( ) \
#( #time: #sh: #perform:withArguments: #noDisplay #doPrimitive:withArguments: #displayAssign #display #debug: #date ) \
temp 3 3 > >
SHAR_EOF
if test 1062 -ne "`wc -c < 'smalltalk.p'`"
then
echo shar: error transmitting "'smalltalk.p'" '(should have been 1062 characters)'
fi
fi # end of overwriting check
if test -f 'standard'
then
echo shar: will not over-write existing file "'standard'"
else
cat << \SHAR_EOF > 'standard'
temp <- <primitive 110 10 >
<primitive 112 temp 1 " view " \
#( #[ 32 250 1 156 242 245] \
#( ) ) >
<primitive 112 temp 2 " variables " \
#( #[ 32 250 1 158 243 245] \
#( ) ) >
<primitive 112 temp 3 " superClass " \
#( #[ 32 250 1 151 243 245] \
#( ) ) >
<primitive 112 temp 4 " respondsTo: " \
#( #[ 32 114 34 162 247 18 34 33 250 2 155 247 2 91 243 \
242 34 10 46 241 114 242 249 22 242 92 243 245] \
#( ) ) >
<primitive 112 temp 5 " respondsTo " \
#( #[ 32 250 1 154 242 245] \
#( ) ) >
<primitive 112 temp 6 " printString " \
#( #[ 32 250 1 152 243 245] \
#( ) ) >
<primitive 112 temp 7 " new: " \
#( #[ 32 250 1 151 114 34 250 1 3 247 4 34 160 241 115 \
242 32 35 250 2 153 115 32 48 250 2 155 247 5 35 \
33 176 241 115 242 35 243 245] \
#( #new: ) ) >
<primitive 112 temp 8 " new " \
#( #[ 32 250 1 151 113 33 250 1 3 247 4 33 160 241 114 \
242 32 34 250 2 153 114 32 48 250 2 155 247 4 34 \
160 241 114 242 34 243 245] \
#( #new ) ) >
<primitive 112 temp 9 " list " \
#( #[ 32 250 1 157 242 245] \
#( ) ) >
<primitive 112 temp 10 " edit " \
#( #[ 32 250 1 150 242 245] \
#( ) ) >
<primitive 98 #Class \
<primitive 97 #Class #Object #/u/smalltalk/prelude/class.st \
#( ) \
#( #view #variables #superClass #respondsTo: #respondsTo #printString #new: #new #list #edit ) \
temp 4 4 > >
temp <- <primitive 110 21 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 32 250 1 4 113 33 80 199 247 4 32 243 248 26 242 \
32 164 160 114 81 33 178 225 3 11 34 35 32 35 250 \
2 111 250 3 112 243 179 242 34 243 242 245] \
#( ) ) >
<primitive 112 temp 2 " respondsTo: " \
#( #[ 32 164 33 11 41 243 245] \
#( ) ) >
<primitive 112 temp 3 " printString " \
#( #[ 32 10 16 243 245] \
#( ) ) >
<primitive 112 temp 4 " print " \
#( #[ 32 169 250 1 121 242 245] \
#( ) ) >
<primitive 112 temp 5 " notNil " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 112 temp 6 " next " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " isNil " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 8 " isMemberOf: " \
#( #[ 33 32 164 181 243 245] \
#( ) ) >
<primitive 112 temp 9 " isKindOf: " \
#( #[ 32 164 114 34 162 247 16 34 33 181 247 2 91 243 242 \
34 10 46 241 114 242 249 20 242 92 243 245] \
#( ) ) >
<primitive 112 temp 10 " first " \
#( #[ 32 243 245] \
#( ) ) >
<primitive 112 temp 11 " error: " \
#( #[ 33 32 250 2 122 242 245] \
#( ) ) >
<primitive 112 temp 12 " do: " \
#( #[ 32 166 114 34 162 247 11 33 34 180 242 32 167 241 114 \
242 249 15 243 245] \
#( ) ) >
<primitive 112 temp 13 " deepCopy " \
#( #[ 32 250 1 4 113 33 80 199 247 4 32 243 248 28 242 \
32 164 160 114 81 33 178 225 3 13 34 35 32 35 250 \
2 111 10 20 250 3 112 243 179 242 34 243 242 245] \
#( ) ) >
<primitive 112 temp 14 " copy " \
#( #[ 32 10 42 243 245] \
#( ) ) >
<primitive 112 temp 15 " class " \
#( #[ 32 250 1 1 243 245] \
#( ) ) >
<primitive 112 temp 16 " asSymbol " \
#( #[ 32 10 16 10 17 243 245] \
#( ) ) >
<primitive 112 temp 17 " asString " \
#( #[ 32 164 169 243 245] \
#( ) ) >
<primitive 112 temp 18 " ~= " \
#( #[ 32 33 201 172 243 245] \
#( ) ) >
<primitive 112 temp 19 " = " \
#( #[ 32 33 181 243 245] \
#( ) ) >
<primitive 112 temp 20 " ~~ " \
#( #[ 32 33 181 172 243 245] \
#( ) ) >
<primitive 112 temp 21 " == " \
#( #[ 32 33 250 2 7 243 245] \
#( ) ) >
<primitive 98 #Object \
<primitive 97 #Object #Object #/u/smalltalk/prelude/object.st \
#( ) \
#( #shallowCopy #respondsTo: #printString #print #notNil #next #isNil #isMemberOf: #isKindOf: #first #error: #do: #deepCopy #copy #class #asSymbol #asString #~= #= #~~ #== ) \
temp 4 7 > >
temp <- <primitive 110 18 >
<primitive 112 temp 1 " sameAs: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 102 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 2 " size " \
#( #[ 32 250 1 100 243 245] \
#( ) ) >
<primitive 112 temp 3 " print " \
#( #[ 32 250 1 121 242 245] \
#( ) ) >
<primitive 112 temp 4 " printString " \
#( #[ 32 250 1 109 243 245] \
#( ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 115 243 245] \
#( ) ) >
<primitive 112 temp 6 " deepCopy " \
#( #[ 32 250 1 107 243 245] \
#( ) ) >
<primitive 112 temp 7 " copyFrom:length: " \
#( #[ 32 33 34 250 3 106 243 245] \
#( ) ) >
<primitive 112 temp 8 " copyFrom:to: " \
#( #[ 32 33 34 33 193 81 192 250 3 106 243 245] \
#( ) ) >
<primitive 112 temp 9 " compareError " \
#( #[ 32 48 188 243 245] \
#( 'strings can only be compared to strings' ) ) >
<primitive 112 temp 10 " at:put: " \
#( #[ 32 33 34 250 3 105 242 245] \
#( ) ) >
<primitive 112 temp 11 " at: " \
#( #[ 32 33 250 2 104 243 245] \
#( ) ) >
<primitive 112 temp 12 " asSymbol " \
#( #[ 32 250 1 108 243 245] \
#( ) ) >
<primitive 112 temp 13 " > " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 204 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 14 " >= " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 203 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 15 " <= " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 200 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 16 " < " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 199 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 17 " = " \
#( #[ 32 33 250 2 6 247 9 32 33 250 2 101 80 201 248 \
4 242 32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 18 " , " \
#( #[ 32 33 250 2 103 243 245] \
#( ) ) >
<primitive 98 #String \
<primitive 97 #String #ArrayedCollection #/u/smalltalk/prelude/string.st \
#( ) \
#( #sameAs: #size #print #printString #new: #deepCopy #copyFrom:length: #copyFrom:to: #compareError #at:put: #at: #asSymbol #> #>= #<= #< #= #, ) \
temp 3 5 > >
temp <- <primitive 110 1 >
<primitive 112 temp 1 " nothing " \
#( #[ 81 242 245] \
#( ) ) >
<primitive 98 #ArrayedCollection \
<primitive 97 #ArrayedCollection #Object #/u/smalltalk/prelude/larray.st \
#( ) \
#( #nothing ) \
temp 1 2 > >
temp <- <primitive 110 3 >
<primitive 112 temp 1 " printString " \
#( #[ 48 243 245] \
#( 'nil' ) ) >
<primitive 112 temp 2 " notNil " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 3 " isNil " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 98 #UndefinedObject \
<primitive 97 #UndefinedObject #Object #/u/smalltalk/prelude/nil.st \
#( ) \
#( #printString #notNil #isNil ) \
temp 1 2 > >
temp <- <primitive 110 5 >
<primitive 112 temp 1 " size " \
#( #[ 32 250 1 4 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 48 113 32 250 1 4 114 34 80 204 247 21 32 34 250 \
2 111 169 49 11 17 33 11 17 113 34 81 193 241 114 \
242 249 26 242 50 33 11 17 243 245] \
#( ')' ' ' '#( ' ) ) >
<primitive 112 temp 3 " at:put: " \
#( #[ 33 81 199 251 6 33 32 250 1 4 204 247 6 32 48 \
188 242 93 243 242 32 33 34 250 3 112 242 34 243 245 \
] \
#( 'index error' ) ) >
<primitive 112 temp 4 " at: " \
#( #[ 33 81 199 251 6 33 32 250 1 4 204 247 6 32 48 \
188 242 93 243 242 32 33 250 2 111 243 245] \
#( 'index error' ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 114 243 245] \
#( ) ) >
<primitive 98 #Array \
<primitive 97 #Array #ArrayedCollection #/u/smalltalk/prelude/array.st \
#( ) \
#( #size #printString #at:put: #at: #new: ) \
temp 3 4 > >
temp <- <primitive 110 6 >
<primitive 112 temp 1 " xor: " \
#( #[ 32 33 182 243 245] \
#( ) ) >
<primitive 112 temp 2 " eqv: " \
#( #[ 32 33 181 243 245] \
#( ) ) >
<primitive 112 temp 3 " or: " \
#( #[ 32 251 2 33 165 243 245] \
#( ) ) >
<primitive 112 temp 4 " and: " \
#( #[ 32 252 2 33 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " | " \
#( #[ 32 251 1 33 243 245] \
#( ) ) >
<primitive 112 temp 6 " & " \
#( #[ 32 252 1 33 243 245] \
#( ) ) >
<primitive 98 #Boolean \
<primitive 97 #Boolean #Object #/u/smalltalk/prelude/boolean.st \
#( ) \
#( #xor: #eqv: #or: #and: #| #& ) \
temp 2 3 > >
temp <- <primitive 110 5 >
<primitive 112 temp 1 " not " \
#( #[ 92 243 245] \
#( ) ) >
<primitive 112 temp 2 " ifFalse: " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 3 " ifTrue: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 4 " ifFalse:ifTrue: " \
#( #[ 34 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " ifTrue:ifFalse: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 98 #True \
<primitive 97 #True #Boolean #/u/smalltalk/prelude/true.st \
#( ) \
#( #not #ifFalse: #ifTrue: #ifFalse:ifTrue: #ifTrue:ifFalse: ) \
temp 3 2 > >
temp <- <primitive 110 5 >
<primitive 112 temp 1 " not " \
#( #[ 91 243 245] \
#( ) ) >
<primitive 112 temp 2 " ifFalse: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 3 " ifTrue: " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 4 " ifFalse:ifTrue: " \
#( #[ 33 165 243 245] \
#( ) ) >
<primitive 112 temp 5 " ifTrue:ifFalse: " \
#( #[ 34 165 243 245] \
#( ) ) >
<primitive 98 #False \
<primitive 97 #False #Boolean #/u/smalltalk/prelude/false.st \
#( ) \
#( #not #ifFalse: #ifTrue: #ifFalse:ifTrue: #ifTrue:ifFalse: ) \
temp 3 2 > >
temp <- <primitive 110 14 >
<primitive 112 temp 1 " value:value:value:value:value: " \
#( #[ 85 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 2 " value:value:value:value: " \
#( #[ 84 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 3 " value:value:value: " \
#( #[ 83 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 4 " value:value: " \
#( #[ 82 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 5 " value: " \
#( #[ 81 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 6 " value " \
#( #[ 80 250 1 140 242 245] \
#( ) ) >
<primitive 112 temp 7 " whileFalse: " \
#( #[ 32 165 246 5 33 165 242 249 9 243 245] \
#( ) ) >
<primitive 112 temp 8 " whileFalse " \
#( #[ 32 165 246 4 93 242 249 8 243 245] \
#( ) ) >
<primitive 112 temp 9 " whileTrue: " \
#( #[ 32 165 247 5 33 165 242 249 9 243 245] \
#( ) ) >
<primitive 112 temp 10 " whileTrue " \
#( #[ 32 165 247 4 93 242 249 8 243 245] \
#( ) ) >
<primitive 112 temp 11 " forkWith: " \
#( #[ 32 33 11 35 10 40 242 93 243 245] \
#( ) ) >
<primitive 112 temp 12 " fork " \
#( #[ 32 10 33 10 40 242 93 243 245] \
#( ) ) >
<primitive 112 temp 13 " newProcessWith: " \
#( #[ 32 33 250 2 141 243 245] \
#( ) ) >
<primitive 112 temp 14 " newProcess " \
#( #[ 32 250 1 141 243 245] \
#( ) ) >
<primitive 98 #Block \
<primitive 97 #Block #Object #/u/smalltalk/prelude/block.st \
#( ) \
#( #value:value:value:value:value: #value:value:value:value: #value:value:value: #value:value: #value: #value #whileFalse: #whileFalse #whileTrue: #whileTrue #forkWith: #fork #newProcessWith: #newProcess ) \
temp 6 3 > >
temp <- <primitive 110 3 >
<primitive 112 temp 1 " asString " \
#( #[ 32 250 1 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 32 250 1 92 243 245] \
#( ) ) >
<primitive 112 temp 3 " == " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 91 248 2 242 \
92 243 245] \
#( ) ) >
<primitive 98 #Symbol \
<primitive 97 #Symbol #Object #/u/smalltalk/prelude/symbol.st \
#( ) \
#( #asString #printString #== ) \
temp 2 4 > >
temp <- <primitive 110 9 >
<primitive 112 temp 1 " max: " \
#( #[ 32 33 204 247 3 32 248 2 242 33 243 245] \
#( ) ) >
<primitive 112 temp 2 " min: " \
#( #[ 32 33 199 247 3 32 248 2 242 33 243 245] \
#( ) ) >
<primitive 112 temp 3 " between:and: " \
#( #[ 32 33 203 252 3 32 34 200 243 245] \
#( ) ) >
<primitive 112 temp 4 " > " \
#( #[ 33 32 199 243 245] \
#( ) ) >
<primitive 112 temp 5 " >= " \
#( #[ 32 33 204 251 3 32 33 201 243 245] \
#( ) ) >
<primitive 112 temp 6 " ~= " \
#( #[ 32 33 201 172 243 245] \
#( ) ) >
<primitive 112 temp 7 " = " \
#( #[ 32 33 204 251 3 32 33 199 172 243 245] \
#( ) ) >
<primitive 112 temp 8 " < " \
#( #[ 33 32 204 243 245] \
#( ) ) >
<primitive 112 temp 9 " <= " \
#( #[ 32 33 199 251 3 32 33 201 243 245] \
#( ) ) >
<primitive 98 #Magnitude \
<primitive 97 #Magnitude #Object #/u/smalltalk/prelude/magnitude.st \
#( ) \
#( #max: #min: #between:and: #> #>= #~= #= #< #<= ) \
temp 3 4 > >
temp <- <primitive 110 30 >
<primitive 112 temp 1 " truncateTo: " \
#( #[ 32 33 190 10 47 33 194 243 245] \
#( ) ) >
<primitive 112 temp 2 " to:by: " \
#( #[ 5 46 160 241 32 33 34 131 0 242 243 245] \
#( #from:to:by: ) ) >
<primitive 112 temp 3 " to: " \
#( #[ 5 46 160 241 32 33 81 131 0 242 243 245] \
#( #from:to:by: ) ) >
<primitive 112 temp 4 " strictlyPositive " \
#( #[ 32 80 204 243 245] \
#( ) ) >
<primitive 112 temp 5 " squared " \
#( #[ 32 32 194 243 245] \
#( ) ) >
<primitive 112 temp 6 " sqrt " \
#( #[ 32 175 10 43 243 245] \
#( ) ) >
<primitive 112 temp 7 " sign " \
#( #[ 32 80 199 247 3 90 248 11 242 32 80 204 247 3 81 \
248 2 242 80 243 245] \
#( ) ) >
<primitive 112 temp 8 " roundTo: " \
#( #[ 32 33 190 10 41 33 194 243 245] \
#( ) ) >
<primitive 112 temp 9 " reciprocal " \
#( #[ 48 32 190 243 245] \
#( 1.00 ) ) >
<primitive 112 temp 10 " raisedTo: " \
#( #[ 32 175 33 175 11 16 243 245] \
#( ) ) >
<primitive 112 temp 11 " radians " \
#( #[ 5 54 32 175 176 243 245] \
#( ) ) >
<primitive 112 temp 12 " positive " \
#( #[ 32 80 203 243 245] \
#( ) ) >
<primitive 112 temp 13 " pi " \
#( #[ 32 48 194 243 245] \
#( 3.1415926 ) ) >
<primitive 112 temp 14 " negative " \
#( #[ 32 80 199 243 245] \
#( ) ) >
<primitive 112 temp 15 " negated " \
#( #[ 80 32 193 243 245] \
#( ) ) >
<primitive 112 temp 16 " log: " \
#( #[ 32 10 32 33 10 32 190 243 245] \
#( ) ) >
<primitive 112 temp 17 " ln " \
#( #[ 32 175 10 32 243 245] \
#( ) ) >
<primitive 112 temp 18 " gamma " \
#( #[ 32 175 10 26 243 245] \
#( ) ) >
<primitive 112 temp 19 " exp " \
#( #[ 32 175 10 23 243 245] \
#( ) ) >
<primitive 112 temp 20 " abs " \
#( #[ 32 80 199 247 5 80 32 193 248 2 242 32 243 245] \
#( ) ) >
<primitive 112 temp 21 " @ " \
#( #[ 5 53 160 32 11 50 33 11 51 243 245] \
#( ) ) >
<primitive 112 temp 22 " ^ " \
#( #[ 32 175 33 175 11 16 243 245] \
#( ) ) >
<primitive 112 temp 23 " / " \
#( #[ 32 33 11 34 33 32 11 34 190 243 245] \
#( ) ) >
<primitive 112 temp 24 " * " \
#( #[ 32 33 11 34 33 32 11 34 194 243 245] \
#( ) ) >
<primitive 112 temp 25 " - " \
#( #[ 32 33 11 34 33 32 11 34 193 243 245] \
#( ) ) >
<primitive 112 temp 26 " + " \
#( #[ 32 33 11 34 33 32 11 34 192 243 245] \
#( ) ) >
<primitive 112 temp 27 " > " \
#( #[ 32 33 11 34 33 32 11 34 204 243 245] \
#( ) ) >
<primitive 112 temp 28 " < " \
#( #[ 32 33 11 34 33 32 11 34 199 243 245] \
#( ) ) >
<primitive 112 temp 29 " = " \
#( #[ 32 33 11 34 33 32 11 34 201 243 245] \
#( ) ) >
<primitive 112 temp 30 " maxtype: " \
#( #[ 32 33 250 2 9 247 3 32 248 4 242 33 32 191 243 \
245] \
#( ) ) >
<primitive 98 #Number \
<primitive 97 #Number #Magnitude #/u/smalltalk/prelude/number.st \
#( ) \
#( #truncateTo: #to:by: #to: #strictlyPositive #squared #sqrt #sign #roundTo: #reciprocal #raisedTo: #radians #positive #pi #negative #negated #log: #ln #gamma #exp #abs #@ #^ #/ #* #- #+ #> #< #= #maxtype: ) \
temp 3 6 > >
temp <- <primitive 110 31 >
<primitive 112 temp 1 " timesRepeat: " \
#( #[ 80 114 34 32 199 247 11 33 165 242 34 81 192 241 114 \
242 249 16 242 245] \
#( ) ) >
<primitive 112 temp 2 " rem: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 29 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 3 " radix: " \
#( #[ 32 33 250 2 26 243 245] \
#( ) ) >
<primitive 112 temp 4 " quo: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 28 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 5 " odd " \
#( #[ 32 82 205 80 202 243 245] \
#( ) ) >
<primitive 112 temp 6 " noMask: " \
#( #[ 80 32 33 197 201 243 245] \
#( ) ) >
<primitive 112 temp 7 " lcm: " \
#( #[ 32 33 250 2 6 247 10 32 33 194 32 33 11 27 206 \
248 4 242 32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 8 " highBit " \
#( #[ 32 250 1 34 243 245] \
#( ) ) >
<primitive 112 temp 9 " gcd: " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 20 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 10 " factorial " \
#( #[ 32 250 1 38 243 245] \
#( ) ) >
<primitive 112 temp 11 " even " \
#( #[ 32 82 205 80 201 243 245] \
#( ) ) >
<primitive 112 temp 12 " bitXor: " \
#( #[ 32 33 250 2 24 243 245] \
#( ) ) >
<primitive 112 temp 13 " bitShift: " \
#( #[ 32 33 250 2 25 243 245] \
#( ) ) >
<primitive 112 temp 14 " bitOr: " \
#( #[ 32 33 250 2 22 243 245] \
#( ) ) >
<primitive 112 temp 15 " bitInvert " \
#( #[ 32 250 1 33 243 245] \
#( ) ) >
<primitive 112 temp 16 " bitAt: " \
#( #[ 32 33 250 2 21 243 245] \
#( ) ) >
<primitive 112 temp 17 " bitAnd: " \
#( #[ 32 33 250 2 23 243 245] \
#( ) ) >
<primitive 112 temp 18 " asString " \
#( #[ 32 250 1 37 243 245] \
#( ) ) >
<primitive 112 temp 19 " asFloat " \
#( #[ 32 250 1 39 243 245] \
#( ) ) >
<primitive 112 temp 20 " asCharacter " \
#( #[ 32 250 1 36 243 245] \
#( ) ) >
<primitive 112 temp 21 " anyMask: " \
#( #[ 80 32 33 250 2 23 202 243 245] \
#( ) ) >
<primitive 112 temp 22 " allMask: " \
#( #[ 33 32 33 250 2 23 201 243 245] \
#( ) ) >
<primitive 112 temp 23 " \\ " \
#( #[ 32 33 250 2 6 247 18 32 32 80 199 247 3 90 248 \
2 242 81 194 114 34 33 205 248 4 242 32 10 35 243 \
245] \
#( ) ) >
<primitive 112 temp 24 " // " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 19 248 4 242 \
32 10 35 243 245] \
#( ) ) >
<primitive 112 temp 25 " / " \
#( #[ 32 175 33 190 243 245] \
#( ) ) >
<primitive 112 temp 26 " * " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 18 248 5 242 \
32 33 145 0 243 245] \
#( #* ) ) >
<primitive 112 temp 27 " - " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 11 248 5 242 \
32 33 145 0 243 245] \
#( #- ) ) >
<primitive 112 temp 28 " + " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 10 248 5 242 \
32 33 145 0 243 245] \
#( #+ ) ) >
<primitive 112 temp 29 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 12 248 5 242 \
32 33 145 0 243 245] \
#( #< ) ) >
<primitive 112 temp 30 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 13 248 5 242 \
32 33 145 0 243 245] \
#( #> ) ) >
<primitive 112 temp 31 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 16 248 5 242 \
32 33 145 0 243 245] \
#( #= ) ) >
<primitive 98 #Integer \
<primitive 97 #Integer #Number #/u/smalltalk/prelude/integer.st \
#( ) \
#( #timesRepeat: #rem: #radix: #quo: #odd #noMask: #lcm: #highBit #gcd: #factorial #even #bitXor: #bitShift: #bitOr: #bitInvert #bitAt: #bitAnd: #asString #asFloat #asCharacter #anyMask: #allMask: #\\ #// #/ #* #- #+ #< #> #= ) \
temp 3 5 > >
temp <- <primitive 110 18 >
<primitive 112 temp 1 " printString " \
#( #[ 48 32 250 1 58 11 17 243 245] \
#( '$' ) ) >
<primitive 112 temp 2 " isVowel " \
#( #[ 32 250 1 51 243 245] \
#( ) ) >
<primitive 112 temp 3 " isUppercase " \
#( #[ 32 48 49 218 243 245] \
#( $A $Z ) ) >
<primitive 112 temp 4 " isSeparator " \
#( #[ 32 250 1 55 243 245] \
#( ) ) >
<primitive 112 temp 5 " isLowercase " \
#( #[ 32 48 49 218 243 245] \
#( $a $z ) ) >
<primitive 112 temp 6 " isLetter " \
#( #[ 32 10 28 251 3 32 10 29 243 245] \
#( ) ) >
<primitive 112 temp 7 " isDigit " \
#( #[ 32 48 49 218 243 245] \
#( $0 $9 ) ) >
<primitive 112 temp 8 " isAlphaNumeric " \
#( #[ 32 250 1 56 243 245] \
#( ) ) >
<primitive 112 temp 9 " digitValue " \
#( #[ 32 250 1 50 241 113 161 247 3 32 48 188 242 33 243 \
245] \
#( 'digitValue on nondigit char' ) ) >
<primitive 112 temp 10 " compareError " \
#( #[ 32 48 188 243 245] \
#( 'char cannot be compared to non char' ) ) >
<primitive 112 temp 11 " asString " \
#( #[ 32 250 1 58 243 245] \
#( ) ) >
<primitive 112 temp 12 " asUppercase " \
#( #[ 32 250 1 53 247 6 32 250 1 57 248 2 242 32 243 \
245] \
#( ) ) >
<primitive 112 temp 13 " asLowercase " \
#( #[ 32 250 1 54 247 6 32 250 1 57 248 2 242 32 243 \
245] \
#( ) ) >
<primitive 112 temp 14 " asciiValue " \
#( #[ 32 250 1 59 243 245] \
#( ) ) >
<primitive 112 temp 15 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 43 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 16 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 17 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 42 248 4 242 \
32 10 19 243 245] \
#( ) ) >
<primitive 112 temp 18 " == " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 46 248 2 242 \
92 243 245] \
#( ) ) >
<primitive 98 #Char \
<primitive 97 #Char #Magnitude #/u/smalltalk/prelude/char.st \
#( ) \
#( #printString #isVowel #isUppercase #isSeparator #isLowercase #isLetter #isDigit #isAlphaNumeric #digitValue #compareError #asString #asUppercase #asLowercase #asciiValue #> #= #< #== ) \
temp 2 4 > >
temp <- <primitive 110 25 >
<primitive 112 temp 1 " truncated " \
#( #[ 32 48 199 247 6 32 250 1 73 248 5 242 32 250 1 \
72 243 245] \
#( 0.0 ) ) >
<primitive 112 temp 2 " sqrt " \
#( #[ 32 250 1 71 243 245] \
#( ) ) >
<primitive 112 temp 3 " rounded " \
#( #[ 32 48 192 250 1 72 243 245] \
#( 0.5 ) ) >
<primitive 112 temp 4 " radix: " \
#( #[ 32 33 250 2 89 243 245] \
#( ) ) >
<primitive 112 temp 5 " ln " \
#( #[ 32 250 1 70 243 245] \
#( ) ) >
<primitive 112 temp 6 " integerPart " \
#( #[ 32 250 1 75 243 245] \
#( ) ) >
<primitive 112 temp 7 " gamma " \
#( #[ 32 250 1 77 243 245] \
#( ) ) >
<primitive 112 temp 8 " fractionPart " \
#( #[ 32 250 1 76 243 245] \
#( ) ) >
<primitive 112 temp 9 " floor " \
#( #[ 32 250 1 72 243 245] \
#( ) ) >
<primitive 112 temp 10 " exp " \
#( #[ 32 250 1 79 243 245] \
#( ) ) >
<primitive 112 temp 11 " coerce: " \
#( #[ 33 175 243 245] \
#( ) ) >
<primitive 112 temp 12 " ceiling " \
#( #[ 32 250 1 73 243 245] \
#( ) ) >
<primitive 112 temp 13 " asString " \
#( #[ 32 250 1 78 243 245] \
#( ) ) >
<primitive 112 temp 14 " asFloat " \
#( #[ 32 243 245] \
#( ) ) >
<primitive 112 temp 15 " arcTan " \
#( #[ 5 54 32 250 1 86 176 243 245] \
#( ) ) >
<primitive 112 temp 16 " arcSin " \
#( #[ 5 54 32 250 1 84 176 243 245] \
#( ) ) >
<primitive 112 temp 17 " arcCos " \
#( #[ 5 54 32 250 1 85 176 243 245] \
#( ) ) >
<primitive 112 temp 18 " ^ " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 88 248 5 242 \
32 33 145 0 243 245] \
#( #raisedTo: ) ) >
<primitive 112 temp 19 " / " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 69 248 5 242 \
32 33 145 0 243 245] \
#( #/ ) ) >
<primitive 112 temp 20 " * " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 68 248 5 242 \
32 33 145 0 243 245] \
#( #* ) ) >
<primitive 112 temp 21 " - " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 61 248 5 242 \
32 33 145 0 243 245] \
#( #- ) ) >
<primitive 112 temp 22 " + " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 60 248 5 242 \
32 33 145 0 243 245] \
#( #+ ) ) >
<primitive 112 temp 23 " > " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 63 248 5 242 \
32 33 145 0 243 245] \
#( #> ) ) >
<primitive 112 temp 24 " < " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 62 248 5 242 \
32 33 145 0 243 245] \
#( #< ) ) >
<primitive 112 temp 25 " = " \
#( #[ 32 33 250 2 6 247 7 32 33 250 2 66 248 5 242 \
32 33 145 0 243 245] \
#( #= ) ) >
<primitive 98 #Float \
<primitive 97 #Float #Number #/u/smalltalk/prelude/float.st \
#( ) \
#( #truncated #sqrt #rounded #radix: #ln #integerPart #gamma #fractionPart #floor #exp #coerce: #ceiling #asString #asFloat #arcTan #arcSin #arcCos #^ #/ #* #- #+ #> #< #= ) \
temp 2 4 > >
temp <- <primitive 110 8 >
<primitive 112 temp 1 " printString " \
#( #[ 16 10 16 48 11 17 243 245] \
#( ' radians' ) ) >
<primitive 112 temp 2 " asFloat " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 3 " tan " \
#( #[ 16 250 1 81 16 250 1 82 190 243 245] \
#( ) ) >
<primitive 112 temp 4 " cos " \
#( #[ 16 250 1 82 243 245] \
#( ) ) >
<primitive 112 temp 5 " sin " \
#( #[ 16 250 1 81 243 245] \
#( ) ) >
<primitive 112 temp 6 " = " \
#( #[ 16 33 175 201 243 245] \
#( ) ) >
<primitive 112 temp 7 " < " \
#( #[ 16 33 175 199 243 245] \
#( ) ) >
<primitive 112 temp 8 " new: " \
#( #[ 33 175 250 1 80 96 245] \
#( ) ) >
<primitive 98 #Radian \
<primitive 97 #Radian #Magnitude #/u/smalltalk/prelude/radian.st \
#( #value ) \
#( #printString #asFloat #tan #cos #sin #= #< #new: ) \
temp 2 3 > >
temp <- <primitive 110 21 >
<primitive 112 temp 1 " y: " \
#( #[ 33 97 245] \
#( ) ) >
<primitive 112 temp 2 " y " \
#( #[ 17 243 245] \
#( ) ) >
<primitive 112 temp 3 " x:y: " \
#( #[ 33 96 34 97 245] \
#( ) ) >
<primitive 112 temp 4 " x: " \
#( #[ 33 96 245] \
#( ) ) >
<primitive 112 temp 5 " x " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 6 " transpose " \
#( #[ 5 53 160 17 11 50 16 11 51 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 16 169 48 11 17 17 169 11 17 243 245] \
#( ' @ ' ) ) >
<primitive 112 temp 8 " min: " \
#( #[ 5 53 160 16 33 10 49 207 11 50 17 33 10 50 207 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 9 " max: " \
#( #[ 5 53 160 16 33 10 49 12 16 11 50 17 33 10 50 \
12 16 11 51 243 245] \
#( ) ) >
<primitive 112 temp 10 " dist: " \
#( #[ 16 33 10 49 193 10 44 17 33 10 50 193 10 44 192 \
10 43 243 245] \
#( ) ) >
<primitive 112 temp 11 " asString " \
#( #[ 16 10 16 48 11 17 17 10 16 11 17 243 245] \
#( ' @ ' ) ) >
<primitive 112 temp 12 " abs " \
#( #[ 5 53 160 16 173 11 50 17 173 11 51 243 245] \
#( ) ) >
<primitive 112 temp 13 " // " \
#( #[ 5 53 160 16 33 11 18 11 50 17 33 11 18 11 51 \
243 245] \
#( ) ) >
<primitive 112 temp 14 " / " \
#( #[ 5 53 160 16 33 190 11 50 17 33 190 11 51 243 245 \
] \
#( ) ) >
<primitive 112 temp 15 " - " \
#( #[ 5 53 160 16 33 10 49 193 11 50 17 33 10 50 193 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 16 " + " \
#( #[ 5 53 160 16 33 10 49 192 11 50 17 33 10 50 192 \
11 51 243 245] \
#( ) ) >
<primitive 112 temp 17 " * " \
#( #[ 5 53 160 16 33 194 11 50 17 33 194 11 51 243 245 \
] \
#( ) ) >
<primitive 112 temp 18 " = " \
#( #[ 16 33 10 49 201 252 5 17 33 10 50 201 243 245] \
#( ) ) >
<primitive 112 temp 19 " >= " \
#( #[ 16 33 10 49 203 252 5 17 33 10 50 203 243 245] \
#( ) ) >
<primitive 112 temp 20 " <= " \
#( #[ 16 33 10 49 200 252 5 17 33 10 50 199 243 245] \
#( ) ) >
<primitive 112 temp 21 " < " \
#( #[ 16 33 10 49 199 252 5 17 33 10 50 199 243 245] \
#( ) ) >
<primitive 98 #Point \
<primitive 97 #Point #Magnitude #/u/smalltalk/prelude/point.st \
#( #xvalue #yvalue ) \
#( #y: #y #x:y: #x: #x #transpose #printString #min: #max: #dist: #asString #abs #// #/ #- #+ #* #= #>= #<= #< ) \
temp 3 4 > >
temp <- <primitive 110 7 >
<primitive 112 temp 1 " next: " \
#( #[ 5 30 33 176 114 81 33 178 225 3 6 34 35 32 167 \
208 243 179 242 34 243 245] \
#( ) ) >
<primitive 112 temp 2 " randInteger: " \
#( #[ 32 167 33 194 10 47 81 192 243 245] \
#( ) ) >
<primitive 112 temp 3 " between:and: " \
#( #[ 32 167 34 33 193 194 33 192 243 245] \
#( ) ) >
<primitive 112 temp 4 " next " \
#( #[ 16 250 1 35 241 96 250 1 32 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 16 250 1 35 241 96 250 1 32 243 245] \
#( ) ) >
<primitive 112 temp 6 " randomize " \
#( #[ 250 0 161 96 245] \
#( ) ) >
<primitive 112 temp 7 " new " \
#( #[ 81 96 245] \
#( ) ) >
<primitive 98 #Random \
<primitive 97 #Random #Object #/u/smalltalk/prelude/random.st \
#( #seed ) \
#( #next: #randInteger: #between:and: #next #first #randomize #new ) \
temp 4 6 > >
temp <- <primitive 110 23 >
<primitive 112 temp 1 " size " \
#( #[ 80 113 32 225 2 6 33 81 192 241 113 243 179 242 33 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " shallowCopy " \
#( #[ 5 48 160 113 32 225 2 5 33 34 11 22 243 179 242 \
32 33 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " select: " \
#( #[ 32 32 164 160 226 2 11 33 35 180 247 3 34 35 189 \
242 34 243 215 243 245] \
#( ) ) >
<primitive 112 temp 4 " remove:ifAbsent: " \
#( #[ 32 33 11 30 247 6 32 33 11 39 248 3 242 34 165 \
243 245] \
#( ) ) >
<primitive 112 temp 5 " remove: " \
#( #[ 32 33 224 4 32 48 188 244 216 242 33 243 245] \
#( 'attempt to remove object not found in collection' ) ) >
<primitive 112 temp 6 " reject: " \
#( #[ 32 225 2 5 33 34 180 172 243 11 44 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 32 32 164 169 48 11 17 226 1 9 33 49 11 17 34 \
169 11 17 243 215 50 11 17 243 245] \
#( ' (' ' ' ' )' ) ) >
<primitive 112 temp 8 " occurrencesOf: " \
#( #[ 32 80 226 2 13 35 33 201 247 5 34 81 192 248 2 \
242 34 243 215 243 245] \
#( ) ) >
<primitive 112 temp 9 " isEmpty " \
#( #[ 32 163 80 201 243 245] \
#( ) ) >
<primitive 112 temp 10 " inject:into: " \
#( #[ 33 115 32 225 4 7 34 35 36 211 241 115 243 179 242 \
35 243 245] \
#( ) ) >
<primitive 112 temp 11 " includes: " \
#( #[ 32 225 2 8 34 33 201 247 2 91 244 243 179 242 92 \
243 245] \
#( ) ) >
<primitive 112 temp 12 " first " \
#( #[ 32 48 188 243 245] \
#( 'subclass should implement first' ) ) >
<primitive 112 temp 13 " detect:ifAbsent: " \
#( #[ 32 225 3 8 33 35 180 247 2 35 244 243 179 242 34 \
165 243 245] \
#( ) ) >
<primitive 112 temp 14 " detect: " \
#( #[ 32 33 224 4 32 48 188 243 223 243 245] \
#( 'no object found matching detect' ) ) >
<primitive 112 temp 15 " deepCopy " \
#( #[ 5 48 160 113 32 225 2 7 33 34 10 20 11 22 243 \
179 242 32 33 191 243 245] \
#( ) ) >
<primitive 112 temp 16 " collect: " \
#( #[ 32 32 164 160 226 2 8 34 33 35 180 189 242 34 243 \
215 243 245] \
#( ) ) >
<primitive 112 temp 17 " coerce: " \
#( #[ 32 160 114 33 225 3 4 34 35 189 243 179 242 34 243 \
245] \
#( ) ) >
<primitive 112 temp 18 " asString " \
#( #[ 5 58 32 163 176 241 81 32 163 32 131 0 242 243 245 \
] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 19 " asList " \
#( #[ 5 48 160 32 11 20 243 245] \
#( ) ) >
<primitive 112 temp 20 " asSet " \
#( #[ 5 57 160 32 11 19 243 245] \
#( ) ) >
<primitive 112 temp 21 " asBag " \
#( #[ 5 32 160 32 11 19 243 245] \
#( ) ) >
<primitive 112 temp 22 " asArray " \
#( #[ 5 30 32 163 176 241 81 32 163 32 131 0 242 243 245 \
] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 23 " addAll: " \
#( #[ 33 225 2 4 32 34 189 243 179 242 245] \
#( ) ) >
<primitive 98 #Collection \
<primitive 97 #Collection #Object #/u/smalltalk/prelude/collection.st \
#( ) \
#( #size #shallowCopy #select: #remove:ifAbsent: #remove: #reject: #printString #occurrencesOf: #isEmpty #inject:into: #includes: #first #detect:ifAbsent: #detect: #deepCopy #collect: #coerce: #asString #asList #asSet #asBag #asArray #addAll: ) \
temp 5 7 > >
temp <- <primitive 110 8 >
<primitive 112 temp 1 " next " \
#( #[ 17 162 247 27 17 80 204 247 9 17 81 193 97 16 171 \
243 248 10 242 16 167 241 97 161 247 2 93 243 242 249 \
31 242 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " first " \
#( #[ 16 166 241 97 161 247 2 93 243 242 17 81 193 97 16 \
171 243 245] \
#( ) ) >
<primitive 112 temp 3 " occurrencesOf: " \
#( #[ 16 33 224 2 80 243 213 243 245] \
#( ) ) >
<primitive 112 temp 4 " size " \
#( #[ 16 80 226 1 4 33 34 192 243 215 243 245] \
#( ) ) >
<primitive 112 temp 5 " remove:ifAbsent: " \
#( #[ 16 33 224 3 34 165 244 213 115 81 35 201 247 6 16 \
33 11 40 248 7 242 16 33 35 81 193 208 242 245] \
#( ) ) >
<primitive 112 temp 6 " add:withOccurrences: " \
#( #[ 34 224 4 32 33 189 243 183 242 33 243 245] \
#( ) ) >
<primitive 112 temp 7 " add: " \
#( #[ 16 33 81 16 33 224 2 80 243 213 192 208 242 245] \
#( ) ) >
<primitive 112 temp 8 " new " \
#( #[ 5 40 160 96 245] \
#( ) ) >
<primitive 98 #Bag \
<primitive 97 #Bag #Collection #/u/smalltalk/prelude/bag.st \
#( #dict #count ) \
#( #next #first #occurrencesOf: #size #remove:ifAbsent: #add:withOccurrences: #add: #new ) \
temp 4 8 > >
temp <- <primitive 110 7 >
<primitive 112 temp 1 " next " \
#( #[ 16 167 243 245] \
#( ) ) >
<primitive 112 temp 2 " first " \
#( #[ 16 166 243 245] \
#( ) ) >
<primitive 112 temp 3 " occurrencesOf: " \
#( #[ 16 33 11 30 247 3 81 248 2 242 80 243 245] \
#( ) ) >
<primitive 112 temp 4 " size " \
#( #[ 16 163 243 245] \
#( ) ) >
<primitive 112 temp 5 " remove:ifAbsent: " \
#( #[ 16 33 34 216 242 245] \
#( ) ) >
<primitive 112 temp 6 " add: " \
#( #[ 16 33 11 30 246 3 16 33 189 242 245] \
#( ) ) >
<primitive 112 temp 7 " new " \
#( #[ 5 48 160 96 245] \
#( ) ) >
<primitive 98 #Set \
<primitive 97 #Set #Collection #/u/smalltalk/prelude/set.st \
#( #list ) \
#( #next #first #occurrencesOf: #size #remove:ifAbsent: #add: #new ) \
temp 3 4 > >
temp <- <primitive 110 18 >
<primitive 112 temp 1 " values " \
#( #[ 5 32 160 113 32 225 2 4 33 34 189 243 179 242 33 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " select: " \
#( #[ 32 32 5 40 160 226 2 13 33 35 180 247 5 34 32 \
171 35 208 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " removeKey:ifAbsent: " \
#( #[ 32 48 188 243 245] \
#( 'subclass should implement RemoveKey:ifAbsent:' ) ) >
<primitive 112 temp 4 " removeKey: " \
#( #[ 32 33 224 6 32 48 188 242 33 244 217 243 245] \
#( 'no element associated with key' ) ) >
<primitive 112 temp 5 " remove: " \
#( #[ 32 48 188 243 245] \
#( 'object must be removed with explicit key' ) ) >
<primitive 112 temp 6 " keysSelect: " \
#( #[ 32 32 5 40 160 226 2 14 33 35 171 180 247 5 34 \
32 171 35 208 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 7 " keysDo: " \
#( #[ 32 225 2 5 33 32 171 180 243 179 243 245] \
#( ) ) >
<primitive 112 temp 8 " keys " \
#( #[ 5 57 160 113 32 225 2 4 33 34 189 243 11 32 242 \
33 243 245] \
#( ) ) >
<primitive 112 temp 9 " indexOf:ifAbsent: " \
#( #[ 32 225 3 9 35 33 201 247 3 32 171 244 243 179 242 \
34 165 243 245] \
#( ) ) >
<primitive 112 temp 10 " indexOf: " \
#( #[ 32 33 224 4 32 48 188 243 214 243 245] \
#( 'indexOf element not found' ) ) >
<primitive 112 temp 11 " includesKey: " \
#( #[ 32 33 224 2 92 244 213 242 91 243 245] \
#( ) ) >
<primitive 112 temp 12 " collect: " \
#( #[ 32 32 5 40 160 226 2 10 34 32 171 33 35 180 208 \
242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 13 " binaryDo: " \
#( #[ 32 225 3 6 33 32 171 35 211 243 179 242 93 243 245 \
] \
#( ) ) >
<primitive 112 temp 14 " atAll:put: " \
#( #[ 33 225 3 5 32 35 34 208 243 179 242 245] \
#( ) ) >
<primitive 112 temp 15 " at: " \
#( #[ 32 33 224 10 32 33 169 48 11 17 188 242 33 244 213 \
243 245] \
#( ': association not found' ) ) >
<primitive 112 temp 16 " asDictionary " \
#( #[ 5 40 160 113 32 226 2 5 33 34 35 208 243 11 23 \
242 33 243 245] \
#( ) ) >
<primitive 112 temp 17 " addAll: " \
#( #[ 33 226 2 5 32 34 35 208 243 11 23 242 33 243 245 \
] \
#( ) ) >
<primitive 112 temp 18 " add: " \
#( #[ 32 48 188 243 245] \
#( 'Must add with explicit key' ) ) >
<primitive 98 #KeyedCollection \
<primitive 97 #KeyedCollection #Collection #/u/smalltalk/prelude/kcollection.st \
#( ) \
#( #values #select: #removeKey:ifAbsent: #removeKey: #remove: #keysSelect: #keysDo: #keys #indexOf:ifAbsent: #indexOf: #includesKey: #collect: #binaryDo: #atAll:put: #at: #asDictionary #addAll: #add: ) \
temp 4 9 > >
temp <- <primitive 110 12 >
<primitive 112 temp 1 " checkBucket: " \
#( #[ 16 33 241 97 177 241 98 161 247 2 93 243 242 18 166 \
243 245] \
#( ) ) >
<primitive 112 temp 2 " currentKey " \
#( #[ 18 162 247 11 18 10 21 113 33 162 247 3 33 10 49 \
243 245] \
#( ) ) >
<primitive 112 temp 3 " printString " \
#( #[ 32 32 164 169 48 11 17 226 1 17 33 32 171 169 11 \
17 49 11 17 34 169 11 17 50 11 17 243 215 51 11 \
17 243 245] \
#( ' ( ' ' @ ' ' ' ')' ) ) >
<primitive 112 temp 4 " next " \
#( #[ 18 167 241 113 162 247 4 33 10 50 243 242 17 5 17 \
199 247 20 17 81 192 97 32 17 11 24 241 113 162 247 \
4 33 10 50 243 242 249 26 242 93 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 81 5 17 178 225 2 14 32 34 11 24 241 113 162 247 \
4 33 10 50 244 243 179 242 93 243 245] \
#( ) ) >
<primitive 112 temp 6 " findAssociation:inList: " \
#( #[ 34 225 3 10 35 10 49 33 201 247 2 35 244 243 179 \
242 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " removeKey:ifAbsent: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \
165 243 242 35 36 224 3 34 165 244 216 10 50 243 245 \
] \
#( ) ) >
<primitive 112 temp 8 " at:ifAbsent: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 3 34 \
165 243 242 36 10 50 243 245] \
#( ) ) >
<primitive 112 temp 9 " at:put: " \
#( #[ 32 33 11 28 115 32 33 35 222 116 36 161 247 15 5 \
53 160 33 11 50 34 11 51 116 35 36 189 248 5 242 \
36 34 11 51 242 34 243 245] \
#( ) ) >
<primitive 112 temp 10 " getList: " \
#( #[ 32 33 11 29 115 16 35 177 114 34 161 247 8 5 48 \
160 114 16 35 34 208 242 34 243 245] \
#( ) ) >
<primitive 112 temp 11 " hashNumber: " \
#( #[ 33 250 1 5 16 163 195 81 192 243 245] \
#( ) ) >
<primitive 112 temp 12 " new " \
#( #[ 5 30 5 17 176 96 245] \
#( ) ) >
<primitive 98 #Dictionary \
<primitive 97 #Dictionary #KeyedCollection #/u/smalltalk/prelude/dictionary.st \
#( #hashTable #currentBucket #currentList ) \
#( #checkBucket: #currentKey #printString #next #first #findAssociation:inList: #removeKey:ifAbsent: #at:ifAbsent: #at:put: #getList: #hashNumber: #new ) \
temp 5 6 > >
temp <- <primitive 110 21 >
<primitive 112 temp 1 " with:do: " \
#( #[ 32 166 115 33 166 116 35 162 247 15 34 35 36 211 242 \
32 167 115 33 167 241 116 242 249 19 242 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " sort: " \
#( #[ 32 174 116 82 36 163 178 225 5 51 37 81 193 114 34 \
81 203 252 11 33 36 34 177 36 34 81 192 177 211 172 \
247 28 36 34 177 115 36 34 36 34 81 192 177 208 242 \
36 34 81 192 35 208 242 34 81 193 241 114 242 249 46 \
243 179 242 32 36 191 243 245] \
#( ) ) >
<primitive 112 temp 3 " sort " \
#( #[ 32 226 1 4 33 34 200 243 11 46 243 245] \
#( ) ) >
<primitive 112 temp 4 " select: " \
#( #[ 32 32 5 48 160 226 2 12 33 35 180 247 4 34 35 \
11 22 242 34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 5 " reversed " \
#( #[ 5 30 32 163 241 114 176 113 32 225 3 11 33 34 35 \
208 242 34 81 193 241 114 243 179 242 32 33 191 243 245 \
] \
#( ) ) >
<primitive 112 temp 6 " reverseDo: " \
#( #[ 32 10 31 114 32 10 25 115 34 35 203 247 20 32 34 \
11 52 247 5 33 32 34 177 180 242 34 81 193 241 114 \
242 249 25 242 93 243 245] \
#( ) ) >
<primitive 112 temp 7 " replaceFrom:to:with:startingAt: " \
#( #[ 80 117 33 37 192 34 200 247 19 32 33 37 192 35 37 \
36 192 177 208 242 37 81 192 241 117 242 249 26 242 245 \
] \
#( ) ) >
<primitive 112 temp 8 " replaceFrom:to:with: " \
#( #[ 35 33 226 4 9 32 36 37 208 242 36 81 192 243 215 \
242 245] \
#( ) ) >
<primitive 112 temp 9 " last " \
#( #[ 80 32 163 201 246 5 32 32 10 31 177 243 245] \
#( ) ) >
<primitive 112 temp 10 " indexOfSubCollection:startingAt: " \
#( #[ 32 33 34 224 6 32 48 188 242 93 243 131 1 243 245 \
] \
#( 'element not found' #indexOfSubCollection:startingAt:ifAbsent: ) ) >
<primitive 112 temp 11 " indexOfSubCollection:startingAt:ifAbsent: " \
#( #[ 34 116 32 163 33 163 193 117 36 37 200 247 17 33 32 \
36 221 247 2 36 243 242 36 81 192 241 116 242 249 22 \
242 35 165 243 245] \
#( ) ) >
<primitive 112 temp 12 " findLast:ifAbsent: " \
#( #[ 32 225 3 9 33 35 180 247 3 32 171 244 243 11 42 \
242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 13 " findLast: " \
#( #[ 32 33 224 4 32 48 188 243 220 242 245] \
#( 'last element not found' ) ) >
<primitive 112 temp 14 " findFirst:ifAbsent: " \
#( #[ 32 225 3 9 33 35 180 247 3 32 171 244 243 179 242 \
34 165 243 245] \
#( ) ) >
<primitive 112 temp 15 " findFirst: " \
#( #[ 32 33 224 4 32 48 188 243 219 243 245] \
#( 'first element not found' ) ) >
<primitive 112 temp 16 " equals:startingAt: " \
#( #[ 80 115 32 225 4 22 36 33 34 35 192 224 2 92 244 \
213 201 246 2 92 244 242 35 81 192 241 115 243 179 242 \
91 243 245] \
#( ) ) >
<primitive 112 temp 17 " copyWithout: " \
#( #[ 5 48 160 114 32 225 3 10 35 33 181 246 4 34 35 \
11 22 243 179 242 32 34 191 243 245] \
#( ) ) >
<primitive 112 temp 18 " copyWith: " \
#( #[ 32 5 48 160 241 32 11 20 242 241 33 11 22 242 191 \
243 245] \
#( ) ) >
<primitive 112 temp 19 " copyFrom:to: " \
#( #[ 5 48 160 115 33 34 178 225 4 7 35 32 36 177 11 \
22 243 179 242 32 35 191 243 245] \
#( ) ) >
<primitive 112 temp 20 " collect: " \
#( #[ 32 32 5 48 160 226 2 9 34 33 35 180 11 22 242 \
34 243 215 191 243 245] \
#( ) ) >
<primitive 112 temp 21 " , " \
#( #[ 32 5 48 160 241 32 11 20 242 241 33 11 20 242 191 \
243 245] \
#( ) ) >
<primitive 98 #SequenceableCollection \
<primitive 97 #SequenceableCollection #KeyedCollection #/u/smalltalk/prelude/scollection.st \
#( ) \
#( #with:do: #sort: #sort #select: #reversed #reverseDo: #replaceFrom:to:with:startingAt: #replaceFrom:to:with: #last #indexOfSubCollection:startingAt: #indexOfSubCollection:startingAt:ifAbsent: #findLast:ifAbsent: #findLast: #findFirst:ifAbsent: #findFirst: #equals:startingAt: #copyWithout: #copyWith: #copyFrom:to: #collect: #, ) \
temp 6 9 > >
temp <- <primitive 110 13 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 16 17 18 212 243 245] \
#( ) ) >
<primitive 112 temp 2 " deepCopy " \
#( #[ 16 17 18 212 243 245] \
#( ) ) >
<primitive 112 temp 3 " removeKey:ifAbsent: " \
#( #[ 32 48 188 242 34 165 243 245] \
#( 'cannot remove from Interval' ) ) >
<primitive 112 temp 4 " add: " \
#( #[ 32 48 188 243 245] \
#( 'cannot store into Interval' ) ) >
<primitive 112 temp 5 " at:put: " \
#( #[ 32 48 188 243 245] \
#( 'cannot store into Interval' ) ) >
<primitive 112 temp 6 " coerce: " \
#( #[ 33 174 243 245] \
#( ) ) >
<primitive 112 temp 7 " printString " \
#( #[ 48 16 169 11 17 49 11 17 17 169 11 17 50 11 17 \
18 169 11 17 243 245] \
#( 'Interval ' ' to ' ' by ' ) ) >
<primitive 112 temp 8 " at:ifAbsent: " \
#( #[ 16 18 33 81 193 194 192 115 32 35 11 31 247 3 35 \
248 3 242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 9 " next " \
#( #[ 19 18 192 99 32 19 11 31 247 1 19 243 245] \
#( ) ) >
<primitive 112 temp 10 " first " \
#( #[ 16 99 32 19 11 31 247 1 19 243 245] \
#( ) ) >
<primitive 112 temp 11 " inRange: " \
#( #[ 18 170 247 10 33 16 203 252 3 33 17 200 248 9 242 \
33 17 203 252 3 33 16 200 243 245] \
#( ) ) >
<primitive 112 temp 12 " size " \
#( #[ 18 170 247 5 17 16 199 248 4 242 16 17 199 247 3 \
80 248 9 242 17 16 193 18 11 18 81 192 243 245] \
#( ) ) >
<primitive 112 temp 13 " from:to:by: " \
#( #[ 33 241 96 99 34 97 35 98 245] \
#( ) ) >
<primitive 98 #Interval \
<primitive 97 #Interval #SequenceableCollection #/u/smalltalk/prelude/interval.st \
#( #lower #upper #step #current ) \
#( #shallowCopy #deepCopy #removeKey:ifAbsent: #add: #at:put: #coerce: #printString #at:ifAbsent: #next #first #inRange: #size #from:to:by: ) \
temp 4 5 > >
temp <- <primitive 110 17 >
<primitive 112 temp 1 " isEmpty " \
#( #[ 16 93 181 243 245] \
#( ) ) >
<primitive 112 temp 2 " last " \
#( #[ 16 161 247 2 93 243 242 32 10 24 10 49 243 245] \
#( ) ) >
<primitive 112 temp 3 " current " \
#( #[ 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 4 " next " \
#( #[ 17 10 50 241 97 162 247 3 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 16 241 97 162 247 3 17 10 49 243 245] \
#( ) ) >
<primitive 112 temp 6 " removeLast " \
#( #[ 16 161 247 4 32 10 37 243 242 32 32 10 30 224 4 \
32 10 37 243 216 243 245] \
#( ) ) >
<primitive 112 temp 7 " removeFirst " \
#( #[ 16 161 247 4 32 10 37 243 242 16 113 16 10 50 96 \
33 10 49 243 245] \
#( ) ) >
<primitive 112 temp 8 " removeError " \
#( #[ 32 48 188 243 245] \
#( 'cannot remove from an empty list' ) ) >
<primitive 112 temp 9 " remove:ifAbsent: " \
#( #[ 16 161 247 3 34 165 243 242 32 93 226 3 31 17 10 \
49 33 181 247 21 35 161 247 7 17 10 50 241 96 248 \
7 242 35 17 10 50 11 51 242 33 244 242 17 243 215 \
242 34 165 243 245] \
#( ) ) >
<primitive 112 temp 10 " remove: " \
#( #[ 32 33 224 4 32 48 188 243 216 243 245] \
#( 'cant find item' ) ) >
<primitive 112 temp 11 " findLast " \
#( #[ 16 241 113 161 247 2 93 243 242 33 10 50 162 247 8 \
33 10 50 241 113 242 249 14 242 33 243 245] \
#( ) ) >
<primitive 112 temp 12 " coerce: " \
#( #[ 5 48 160 114 33 225 3 5 34 35 11 22 243 179 242 \
34 243 245] \
#( ) ) >
<primitive 112 temp 13 " addAllLast: " \
#( #[ 33 225 2 5 32 34 11 22 243 179 242 245] \
#( ) ) >
<primitive 112 temp 14 " addAllFirst: " \
#( #[ 33 225 2 5 32 34 11 21 243 179 242 245] \
#( ) ) >
<primitive 112 temp 15 " addLast: " \
#( #[ 16 161 247 5 32 33 11 21 243 242 32 10 24 5 53 \
160 33 11 50 93 11 51 11 51 242 33 243 245] \
#( ) ) >
<primitive 112 temp 16 " addFirst: " \
#( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \
#( ) ) >
<primitive 112 temp 17 " add: " \
#( #[ 5 53 160 33 11 50 16 11 51 96 33 243 245] \
#( ) ) >
<primitive 98 #List \
<primitive 97 #List #SequenceableCollection #/u/smalltalk/prelude/list.st \
#( #first #current ) \
#( #isEmpty #last #current #next #first #removeLast #removeFirst #removeError #remove:ifAbsent: #remove: #findLast #coerce: #addAllLast: #addAllFirst: #addLast: #addFirst: #add: ) \
temp 5 8 > >
temp <- <primitive 110 12 >
<primitive 112 temp 1 " shallowCopy " \
#( #[ 32 164 32 163 176 113 81 32 163 178 225 2 7 33 34 \
32 34 177 208 243 179 242 33 243 245] \
#( ) ) >
<primitive 112 temp 2 " next " \
#( #[ 16 81 192 96 16 32 163 200 247 3 32 16 177 243 245 \
] \
#( ) ) >
<primitive 112 temp 3 " lastKey " \
#( #[ 32 163 243 245] \
#( ) ) >
<primitive 112 temp 4 " firstKey " \
#( #[ 81 243 245] \
#( ) ) >
<primitive 112 temp 5 " first " \
#( #[ 81 96 16 32 163 200 247 3 32 16 177 243 245] \
#( ) ) >
<primitive 112 temp 6 " do: " \
#( #[ 81 32 163 178 225 2 8 34 96 33 32 34 177 180 243 \
179 242 245] \
#( ) ) >
<primitive 112 temp 7 " deepCopy " \
#( #[ 32 164 32 163 176 113 81 32 163 178 225 2 9 33 34 \
32 34 177 10 20 208 243 179 242 33 243 245] \
#( ) ) >
<primitive 112 temp 8 " currentKey " \
#( #[ 16 243 245] \
#( ) ) >
<primitive 112 temp 9 " copyFrom:to: " \
#( #[ 34 33 193 81 192 115 32 164 35 176 116 36 81 35 32 \
33 132 0 242 36 243 245] \
#( #replaceFrom:to:with:startingAt: ) ) >
<primitive 112 temp 10 " coerce: " \
#( #[ 32 164 33 163 176 114 34 81 33 163 33 131 0 242 34 \
243 245] \
#( #replaceFrom:to:with: ) ) >
<primitive 112 temp 11 " at:ifAbsent: " \
#( #[ 33 80 200 251 4 33 32 163 204 247 3 34 165 243 242 \
32 33 177 243 245] \
#( ) ) >
<primitive 112 temp 12 " = " \
#( #[ 32 163 33 163 202 247 2 92 243 242 80 114 32 225 3 \
14 35 33 34 81 192 241 114 177 202 247 2 92 244 243 \
179 242 91 243 245] \
#( ) ) >
<primitive 98 #ArrayedCollection \
<primitive 97 #ArrayedCollection #SequenceableCollection #/u/smalltalk/prelude/acollection.st \
#( #current ) \
#( #shallowCopy #next #lastKey #firstKey #first #do: #deepCopy #currentKey #copyFrom:to: #coerce: #at:ifAbsent: #= ) \
temp 5 7 > >
temp <- <primitive 110 13 >
<primitive 112 temp 1 " write: " \
#( #[ 32 33 250 2 132 243 245] \
#( ) ) >
<primitive 112 temp 2 " size " \
#( #[ 32 250 1 134 243 245] \
#( ) ) >
<primitive 112 temp 3 " read " \
#( #[ 32 250 1 131 243 245] \
#( ) ) >
<primitive 112 temp 4 " open:for: " \
#( #[ 32 33 34 250 3 130 242 245] \
#( ) ) >
<primitive 112 temp 5 " open: " \
#( #[ 32 33 48 250 3 130 242 245] \
#( 'r' ) ) >
<primitive 112 temp 6 " next " \
#( #[ 32 10 36 243 245] \
#( ) ) >
<primitive 112 temp 7 " first " \
#( #[ 32 80 177 243 245] \
#( ) ) >
<primitive 112 temp 8 " currentKey " \
#( #[ 32 250 1 136 243 245] \
#( ) ) >
<primitive 112 temp 9 " at:put: " \
#( #[ 32 33 250 2 135 242 32 34 11 49 243 245] \
#( ) ) >
<primitive 112 temp 10 " at: " \
#( #[ 32 33 250 2 135 242 32 10 36 243 245] \
#( ) ) >
<primitive 112 temp 11 " modeString " \
#( #[ 32 81 250 2 133 242 245] \
#( ) ) >
<primitive 112 temp 12 " modeInteger " \
#( #[ 32 82 250 2 133 242 245] \
#( ) ) >
<primitive 112 temp 13 " modeCharacter " \
#( #[ 32 80 250 2 133 242 245] \
#( ) ) >
<primitive 98 #File \
<primitive 97 #File #SequenceableCollection #/u/smalltalk/prelude/file.st \
#( ) \
#( #write: #size #read #open:for: #open: #next #first #currentKey #at:put: #at: #modeString #modeInteger #modeCharacter ) \
temp 3 4 > >
temp <- <primitive 110 5 >
<primitive 112 temp 1 " size " \
#( #[ 32 250 1 117 243 245] \
#( ) ) >
<primitive 112 temp 2 " printString " \
#( #[ 48 113 81 32 163 178 225 2 13 33 32 34 177 169 11 \
17 49 11 17 241 113 243 179 242 33 50 11 17 243 245 \
] \
#( '#[ ' ' ' ']' ) ) >
<primitive 112 temp 3 " at:put: " \
#( #[ 32 33 34 250 3 119 242 245] \
#( ) ) >
<primitive 112 temp 4 " at: " \
#( #[ 32 33 250 2 118 243 245] \
#( ) ) >
<primitive 112 temp 5 " new: " \
#( #[ 33 250 1 116 243 245] \
#( ) ) >
<primitive 98 #ByteArray \
<primitive 97 #ByteArray #ArrayedCollection #/u/smalltalk/prelude/bytearray.st \
#( ) \
#( #size #printString #at:put: #at: #new: ) \
temp 3 6 > >
temp <- <primitive 110 4 >
<primitive 112 temp 1 " wait " \
#( #[ 250 0 148 242 16 80 201 247 10 32 95 11 22 242 95 \
10 18 248 6 242 16 81 193 241 96 242 250 0 149 242 \
245] \
#( ) ) >
<primitive 112 temp 2 " signal " \
#( #[ 250 0 148 242 32 10 27 247 7 16 81 192 241 96 248 \
6 242 32 10 38 10 48 242 250 0 149 242 245] \
#( ) ) >
<primitive 112 temp 3 " new: " \
#( #[ 33 96 245] \
#( ) ) >
<primitive 112 temp 4 " new " \
#( #[ 80 96 245] \
#( ) ) >
<primitive 98 #Semaphore \
<primitive 97 #Semaphore #List #/u/smalltalk/prelude/semaphore.st \
#( #excessSignals ) \
#( #wait #signal #new: #new ) \
temp 2 4 > >
temp <- <primitive 110 8 >
<primitive 112 temp 1 " yield " \
#( #[ 93 243 245] \
#( ) ) >
<primitive 112 temp 2 " unblock " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 83 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'unblock' ) ) >
<primitive 112 temp 3 " termErr: " \
#( #[ 48 33 11 17 49 11 17 168 242 245] \
#( 'Cannot ' ' a terminated process.' ) ) >
<primitive 112 temp 4 " terminate " \
#( #[ 32 250 1 142 242 32 10 45 243 245] \
#( ) ) >
<primitive 112 temp 5 " state " \
#( #[ 32 250 1 146 113 33 80 201 247 4 48 113 33 243 242 \
33 81 201 247 4 49 113 33 243 242 33 82 201 247 4 \
50 113 33 243 242 33 83 201 247 4 50 113 33 243 242 \
33 84 203 247 4 51 113 33 243 242 245] \
#( #READY #SUSPENDED #BLOCKED #TERMINATED ) ) >
<primitive 112 temp 6 " suspend " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 81 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'suspend' ) ) >
<primitive 112 temp 7 " resume " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 80 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'resume' ) ) >
<primitive 112 temp 8 " block " \
#( #[ 32 10 45 48 181 247 7 32 49 11 47 242 93 243 242 \
32 82 250 2 145 242 32 10 45 243 245] \
#( #TERMINATED 'block' ) ) >
<primitive 98 #Process \
<primitive 97 #Process #Object #/u/smalltalk/prelude/process.st \
#( ) \
#( #yield #unblock #termErr: #terminate #state #suspend #resume #block ) \
temp 2 4 > >
temp <- <primitive 110 9 >
<primitive 112 temp 1 " time: " \
#( #[ 250 0 161 114 33 165 242 250 0 161 34 193 243 245] \
#( ) ) >
<primitive 112 temp 2 " sh: " \
#( #[ 33 250 1 125 243 245] \
#( ) ) >
<primitive 112 temp 3 " perform:withArguments: " \
#( #[ 34 33 250 2 143 243 245] \
#( ) ) >
<primitive 112 temp 4 " noDisplay " \
#( #[ 81 80 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 5 " doPrimitive:withArguments: " \
#( #[ 33 34 250 2 30 243 245] \
#( ) ) >
<primitive 112 temp 6 " displayAssign " \
#( #[ 81 82 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 7 " display " \
#( #[ 81 81 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 8 " debug: " \
#( #[ 82 33 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 9 " date " \
#( #[ 250 0 160 243 245] \
#( ) ) >
<primitive 98 #Smalltalk \
<primitive 97 #Smalltalk #Dictionary #/u/smalltalk/prelude/smalltalk.st \
#( ) \
#( #time: #sh: #perform:withArguments: #noDisplay #doPrimitive:withArguments: #displayAssign #display #debug: #date ) \
temp 3 3 > >
smalltalk new
SHAR_EOF
if test 52853 -ne "`wc -c < 'standard'`"
then
echo shar: error transmitting "'standard'" '(should have been 52853 characters)'
fi
fi # end of overwriting check
if test -f 'stdsave'
then
echo shar: will not over-write existing file "'stdsave'"
else
cat << \SHAR_EOF > 'stdsave'
ol spacellLast:From:reysSelect:emoveKey:alue:h
l!l'l-()[]!|.;>enhighlow error: %dbA2.10000000D'y.s 85/03/06Lt char!
(] r""!["
.r\ r""s #s 0#!s# q!!r "r 0"r" ! ![\ q!P rQ!"# #op" !)
y[]\! r""!["
.r\ ! z r"!" r q!P rQ!
"# #o
p"
*
! ! ! ! ! !f
d y m!s k !"j !"!Qj 0 !"i !h l ! !eP
! !eP
! !eP
! !eP
! !eP
!gQ0\[ 0q r"P "o1!q"Qr2!!Q! 0] !"p"!Q! 0] !o!r ! ! ! ! ! !\]!"![!]!"UTSRQP ! ] ! ] !#
(] !
/! ! ] \ ! !.\ ! ! ! ! ! "! ! ! ! ! !! ! ! !
)!. !"+ PZ PQP
!
0 !6 P 0 PP P !
PP 5 2!3 ! !"! " !"! " !"! " !"! " !"! " !"! " !"! " ! ! Pr" !"Qr ! !
# ! ! !
# RPP ! !
! !
# " ! !
# & RP ! ! ! ! ! ! % ' $! !0 : ! PZQr"!
# ! !
# ! ! ! ! !
01 8 2q 0! 0 : 5 9 6 9 ; ! !+
! !.
! !*
0 I H G 0H !Y F K M L H O! I N 6 T6 U!P ! !X !0QRRQ!!!P`!a!`"a!`52305!
12!
235!
12!
23!
1
,!
2
,
+
0
5235!2!35!2!35!
12!
235!
12!
235!2!3!
1!
2!
1!
2!
1!
2!
1!
2!rQ!"# " !
/Q "!!#` #` ! "!#" r!"#": Q a]]!`c"a#bP!"!"sQ#!(!#Q" !!!Q!P(`9q !" !!QP!"!!0` q !"! (
!#" #" 0 ! 0! 0 (!#" #" ! #! " ! 0 !\[ (
" !#" ! #]! #" !
!0!(q !"#!! "#! 00r!"#"!ab]
q!!
1 0! 1"23q!
2Qa q!
2]Q "q!
2]"
#
1!#] !s !#t$"#$"
2 !s !#t$"$
2 !s !#t$5!2"3t#$$"3" !s#r"0r#""!Q` s!t#"#$ s!t] tR$3%Qr"Q!$"$"Q$"s$"$"Q$"Q#"Qr. $ !". 0!#"#" rq !"#"Qr !
r
s"# "4! ""Qr]Pu!%" !%#%$%Qu#! $%$QP
!" 0]"t !u$%! $$$Qt# !# *" ! 0 !# " ! 0Ps $!"#\\#Qs[0r
#!"# " 0 !0s!"# $ # 0 "!#" 0 ! 0" 0 0!012!Qs ##"c c
!! !!P QY0p`
1
1
2a
1a
1
%
%
%q
2`!
1 0" ]
1!#
2`#
23!" ! 0q]!
2!
2q!! "! " !
5!2]33!5!23`!5!23`!Q "`! " qQ !" "!Q` QQ` qQ !" "
!"!Qs #t$Q# !$ P ! "1 !
$ Q R P u0qQ
! "1q!2 !"w !v!t __
Q`Q`
&
0-0 1/] S
-0!1
- q!P0q!!Q1q!!R2q!!S2q!!T3q!
-0 1/] Q
-
-0 1/] P
-
-0 1/] R
-
ittle Smalltalk
`pp`pa` #( ) ) >
<primitive 112 temp 6 " displayAssign " \
#( #[ 81 82 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 7 " display " \
#( #[ 81 81 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 8 " debug: " \
#( #[ 82 33 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 9 " date " \
#( #[ 250 0 160 243 245] \
#( ) ) >
<primitive 98 #Smalltalk \
<primitive 97 #Smalltalk #Dictionary #/u/smalltalk/prelude/smalltalk.st \
#( ) \
#( #time: #sh: #perform:withArguments: #noDisplay #doPrimitive:withArguments: #displayAssign #display #debug: #date ) \
temp 3 3 > >
smalltalk new
time: " \
#( #[ 250 0 161 114 33 165 242 250 0 161 34 193 243 245] \
#( ) ) >
<primitive 112 temp 2 " sh: " \
#( #[ 33 250 1 125 243 245] \
#( ) ) >
<primitive 112 temp 3 " perform:withArguments: " \
#( #[ 34 33 250 2 143 243 245] \
#( ) ) >
<primitive 112 temp 4 " noDisplay " \
#( #[ 81 80 250 2 8 243 245] \
#( ) ) >
<primitive 112 temp 5 " doPrimitive:withArguments: " \
(ollectioney element not found`pSHAR_EOF
echo shar: a missing newline was added to "'stdsave'"
echo shar: 34164 control characters may be missing from "'stdsave'"
if test 65608 -ne "`wc -c < 'stdsave'`"
then
echo shar: error transmitting "'stdsave'" '(should have been 65608 characters)'
fi
fi # end of overwriting check
cd ..
# End of shell archive
exit 0
Technical Details
Message-ID:
<2760@pesnta.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!lsuc!per!pesnta!earlwShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2(pesnta/xelos-%I%) 9/18/84; site pesnta.UUCP Path: arc1-ca.pugleaf.net!utzoo!lsuc!per!pesnta!earlw From: earlw@pesnta.UUCP (Earl Wallace) Newsgroups: pe.cust.sources Subject: Small Littletalk - Part 3 of 5 Message-ID: <2760@pesnta.UUCP> Date: Wed, 12-Jun-85 00:34:15 EDT Article-I.D.: pesnta.2760 Posted: Wed Jun 12 00:34:15 1985 Date-Received: Sun, 16-Jun-85 23:05:25 EDT Organization: Perkin-Elmer Data Systems Group / Customer Service Lines: 6883