🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pe.cust.sources
1 messages
1 total messages Started by Earl Wallace Thu, 13 Jun 1985 19:19
Little Smalltalk Source, *New* Part 7 of 20
#32
Author: Earl Wallace
Date: Thu, 13 Jun 1985 19:19
2511 lines
65399 bytes
#! /bin/sh 
#
# This is an another posting of the Little Smalltalk source, the last posting
# of this source went out in 5 parts and they were too big (>200k) for most
# sites so I redid the whole mess to keep the files around the 50k range.
#
# The complete set is now 20 parts.
#
# P.S. - If you don't receive all 20 parts within 5 days, drop me a line.
#	 Also, I have the Rand sources of May 1984, if someone has a more
#	 updated copy, I'll be happy to post them (or YOU can post them :-))
# 
# -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/boolean.p
#	prelude/boolean.st
#	prelude/bytearray.p
#	prelude/bytearray.st
#	prelude/char.p
#	prelude/char.st
#	prelude/class.p
#	prelude/class.st
#	prelude/collection.p
#	prelude/collection.st
#	prelude/dictionary.p
#	prelude/dictionary.st
#	prelude/false.p
#	prelude/false.st
#	prelude/file.p
#	prelude/file.st
#	prelude/float.p
#	prelude/float.st
#	prelude/init
#	prelude/integer.p
#	prelude/integer.st
#	prelude/interval.p
#	prelude/interval.st
#	prelude/kcollection.p
#	prelude/kcollection.st
#	prelude/larray.p
#	prelude/larray.st
#	prelude/list.p
#	prelude/list.st
#	prelude/magnitude.p
#	prelude/magnitude.st
#	prelude/nil.p
#	prelude/nil.st
#	prelude/number.p
# This archive created: Thu Jun 13 11:32:04 1985
# By:	Earl Wallace (Perkin-Elmer Data Systems Group / Customer Service)
export PATH; PATH=/bin:$PATH
if test -f 'prelude/boolean.p'
then
	echo shar: will not over-write existing file "'prelude/boolean.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/boolean.p'`"
then
	echo shar: error transmitting "'prelude/boolean.p'" '(should have been 634 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/boolean.st'
then
	echo shar: will not over-write existing file "'prelude/boolean.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/boolean.st'`"
then
	echo shar: error transmitting "'prelude/boolean.st'" '(should have been 297 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/bytearray.p'
then
	echo shar: will not over-write existing file "'prelude/bytearray.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/bytearray.p'`"
then
	echo shar: error transmitting "'prelude/bytearray.p'" '(should have been 712 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/bytearray.st'
then
	echo shar: will not over-write existing file "'prelude/bytearray.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/bytearray.st'`"
then
	echo shar: error transmitting "'prelude/bytearray.st'" '(should have been 344 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/char.p'
then
	echo shar: will not over-write existing file "'prelude/char.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/char.p'`"
then
	echo shar: error transmitting "'prelude/char.p'" '(should have been 2174 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/char.st'
then
	echo shar: will not over-write existing file "'prelude/char.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/char.st'`"
then
	echo shar: error transmitting "'prelude/char.st'" '(should have been 1255 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/class.p'
then
	echo shar: will not over-write existing file "'prelude/class.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/class.p'`"
then
	echo shar: error transmitting "'prelude/class.p'" '(should have been 1351 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/class.st'
then
	echo shar: will not over-write existing file "'prelude/class.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/class.st'`"
then
	echo shar: error transmitting "'prelude/class.st'" '(should have been 1048 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/collection.p'
then
	echo shar: will not over-write existing file "'prelude/collection.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/collection.p'`"
then
	echo shar: error transmitting "'prelude/collection.p'" '(should have been 3180 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/collection.st'
then
	echo shar: will not over-write existing file "'prelude/collection.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/collection.st'`"
then
	echo shar: error transmitting "'prelude/collection.st'" '(should have been 2501 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/dictionary.p'
then
	echo shar: will not over-write existing file "'prelude/dictionary.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/dictionary.p'`"
then
	echo shar: error transmitting "'prelude/dictionary.p'" '(should have been 2139 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/dictionary.st'
then
	echo shar: will not over-write existing file "'prelude/dictionary.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/dictionary.st'`"
then
	echo shar: error transmitting "'prelude/dictionary.st'" '(should have been 2333 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/false.p'
then
	echo shar: will not over-write existing file "'prelude/false.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/false.p'`"
then
	echo shar: error transmitting "'prelude/false.p'" '(should have been 580 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/false.st'
then
	echo shar: will not over-write existing file "'prelude/false.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/false.st'`"
then
	echo shar: error transmitting "'prelude/false.st'" '(should have been 436 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/file.p'
then
	echo shar: will not over-write existing file "'prelude/file.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/file.p'`"
then
	echo shar: error transmitting "'prelude/file.p'" '(should have been 1377 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/file.st'
then
	echo shar: will not over-write existing file "'prelude/file.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/file.st'`"
then
	echo shar: error transmitting "'prelude/file.st'" '(should have been 630 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/float.p'
then
	echo shar: will not over-write existing file "'prelude/float.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/float.p'`"
then
	echo shar: error transmitting "'prelude/float.p'" '(should have been 2739 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/float.st'
then
	echo shar: will not over-write existing file "'prelude/float.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/float.st'`"
then
	echo shar: error transmitting "'prelude/float.st'" '(should have been 1655 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/init'
then
	echo shar: will not over-write existing file "'prelude/init'"
else
cat << \SHAR_EOF > 'prelude/init'
smalltalk new
SHAR_EOF
if test 14 -ne "`wc -c < 'prelude/init'`"
then
	echo shar: error transmitting "'prelude/init'" '(should have been 14 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/integer.p'
then
	echo shar: will not over-write existing file "'prelude/integer.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/integer.p'`"
then
	echo shar: error transmitting "'prelude/integer.p'" '(should have been 3531 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/integer.st'
then
	echo shar: will not over-write existing file "'prelude/integer.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/integer.st'`"
then
	echo shar: error transmitting "'prelude/integer.st'" '(should have been 2472 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/interval.p'
then
	echo shar: will not over-write existing file "'prelude/interval.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/interval.p'`"
then
	echo shar: error transmitting "'prelude/interval.p'" '(should have been 1805 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/interval.st'
then
	echo shar: will not over-write existing file "'prelude/interval.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/interval.st'`"
then
	echo shar: error transmitting "'prelude/interval.st'" '(should have been 1369 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/kcollection.p'
then
	echo shar: will not over-write existing file "'prelude/kcollection.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/kcollection.p'`"
then
	echo shar: error transmitting "'prelude/kcollection.p'" '(should have been 2622 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/kcollection.st'
then
	echo shar: will not over-write existing file "'prelude/kcollection.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/kcollection.st'`"
then
	echo shar: error transmitting "'prelude/kcollection.st'" '(should have been 2628 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/larray.p'
then
	echo shar: will not over-write existing file "'prelude/larray.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/larray.p'`"
then
	echo shar: error transmitting "'prelude/larray.p'" '(should have been 250 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/larray.st'
then
	echo shar: will not over-write existing file "'prelude/larray.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/larray.st'`"
then
	echo shar: error transmitting "'prelude/larray.st'" '(should have been 175 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/list.p'
then
	echo shar: will not over-write existing file "'prelude/list.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/list.p'`"
then
	echo shar: error transmitting "'prelude/list.p'" '(should have been 2388 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/list.st'
then
	echo shar: will not over-write existing file "'prelude/list.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/list.st'`"
then
	echo shar: error transmitting "'prelude/list.st'" '(should have been 1802 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/magnitude.p'
then
	echo shar: will not over-write existing file "'prelude/magnitude.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/magnitude.p'`"
then
	echo shar: error transmitting "'prelude/magnitude.p'" '(should have been 980 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/magnitude.st'
then
	echo shar: will not over-write existing file "'prelude/magnitude.st'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/magnitude.st'`"
then
	echo shar: error transmitting "'prelude/magnitude.st'" '(should have been 416 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/nil.p'
then
	echo shar: will not over-write existing file "'prelude/nil.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/nil.p'`"
then
	echo shar: error transmitting "'prelude/nil.p'" '(should have been 409 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/nil.st'
then
	echo shar: will not over-write existing file "'prelude/nil.st'"
else
cat << \SHAR_EOF > 'prelude/nil.st'
Class UndefinedObject
[
        isNil
                ^ true
|
        notNil
                ^ false
|
        printString
                ^ 'nil'
]
SHAR_EOF
if test 150 -ne "`wc -c < 'prelude/nil.st'`"
then
	echo shar: error transmitting "'prelude/nil.st'" '(should have been 150 characters)'
fi
fi # end of overwriting check
if test -f 'prelude/number.p'
then
	echo shar: will not over-write existing file "'prelude/number.p'"
else
cat << \SHAR_EOF > 'prelude/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 < 'prelude/number.p'`"
then
	echo shar: error transmitting "'prelude/number.p'" '(should have been 3046 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads