Class new title: String subclassof: Array fields: '' declare: 'StringBlter '; bytesize: false - t1 | t2 t3 t4 [t4 _ self length - t1 length. for t2 to: [t4 < 0  [self length] t1 length] do [t3 _ UpperCase  (self  t2 + 1) - (UpperCase  (t1  t2 + 1)). t3  0  [t3]]. t4] < t1 [(self compare: t1) = 1] > t1 [(self compare: t1) = 3] alignForDisplay [] primitive: 51 all_ t1 [self fill: 1 to: self length with: t1] asBytes | t1 t2 [t1 _ Stream default. for t2 from: self do [t1 append: t2 base8. t1 space]. t1 contents] asDecimalDigits | t1 t2 t3 t4 [t1 _ Stream new of: self. t2 _ t1  21. t4 _ [self length > 4  [0.0] 0]. for t3 from: t1 do [t3 < 48 or: t3 > 57  [user notify: self + ' isn''t a valid integer'] t4 _ t4 * 10 + (t3 - 48)]. t2  [t4 * 1] t4] asFileName [dp0 checkName: self fixing: true] asFloat | t1 t2 t3 t4 [t1 _ Stream new of: self. t2 _ t1 upto: 46. t3 _ t1 upto: 101. t4 _ t1 rest asInteger - t3 length. t2 _ (t2 concat: t3) asDecimalDigits asFloat. t4 = 0  [t2] t4 > 0  [t2 * (10.0 ipow: t4)] t2 / (10.0 ipow: 0 - t4)] asInteger | t1 t2 t3 t4 t5 t6 t7 t8 [self length = 0  [0] t7 _ 1. t8 _ self length. t1 _ [self  1 = 21  [t7 _ 2. 1] 1]. t2 _ [self  self length = 72  [t8 _ t8 - 1. 16] self  t7 = 48  [8] 10]. t3 _ [t2 = 16  [70] 47 + t2]. t5 _ [self length > 4  [0.0] 0]. for t6 from: t7 to: t8 do [t4 _ self  t6. t4 < 48 or: t4 > t3  [user notify: self + ' isn''t a valid Integer'] t5 _ t5 * t2 + [t4  57  [t4 - 48] t4 - 55]]. [t5 > 32767  [t2 = 8 or t2 = 16  [t1 = 1  [t5 < 65536  [(t5 - 65536) asInteger] user notify: 'Warning: Octal or Hex number exceeds 16 bits']]]]. (t5 * t1) asInteger] asLarge | t1 t2 t3 t4 [[self  1 = 21  [t1 _ true] t1 _ false]. t3 _ 0 asLarge. t4 _ 10 asLarge. for t2 from: [t1  [2] 1] to: self length do [t3 _ t3 * t4 + (self  t2 - 48)]. t1  [t3 negated] t3] asParagraph [Paragraph new text: self alignment: 0] asUppercase | t1 t2 [t1 _ Stream default. for t2 from: self do [t1 next_ UpperCase  (t2 + 1)]. t1 contents] asVector [self asStream asVector] base8: t1 [(self word: t1) base8] compare: t1 | t2 t3 t4 t5 t6 t7 [t3 _ t1 length. t7 _ self length. t4 _ [t7 < t3  [t3 _ self length. 1] t7 = t3  [2] 3]. for t2 to: t3 do [t6 _ UpperCase  (t1  t2 + 1). t5 _ UpperCase  (self  t2 + 1). t5 = t6  [] t5 < t6  [1] 3]. t4] copy: t1 to: t2 [(self species new: 1 + t2 - t1) copy: 1 to: 1 + t2 - t1 with: self from: t1 to: t2] copy: t1 to: t2 with: t3 from: t4 to: t5 | t6 [self  t3 and (t4 < t1 and t5  t1)  [for t6 from: t2 - t1 to: 0 by: 1 do [self  t1 + t6 _ self  (t4 + t6)]] t3 copy: t4 to: t5 to: (Stream new of: self from: t1 to: t2)] fill: t1 to: t2 with: t3 | t4 [for t4 from: t1 to: t2 do [self  t4 _ t3]] findString: t1 startingAt: t2 | t3 t4 [t1 length = 0  [0] t4 _ t1  1. for t3 from: t2 to: self length - t1 length + 1 do [self  t3 = t4  [self  (t3 to: t3 + t1 length - 1) = t1  [t3]]]. 0] growto: t1 | t2 [t2 _ self length. [t2  t1  [] t2 _ t1]. (self species new: t1) copy: 1 to: t2 with: self from: 1 to: t2] hasBeenUniqued [a hasInterned: self] hash | t1 t2 [t2 _ self length. t1 _ t2. [t1  2  [t1 = 2  [t2 _ 3] t1 = 1  [(self  1 land: 127) * 106] 21845]]. self  1 * 48 + (self  (t2 - 1) + t1)] inBase: t1 | t2 t3 t4 t5 t6 [[self  1 = 21  [t2 _ true] t2 _ false]. t5 _ 0 asLarge. t6 _ t1 asLarge. for t3 from: [t2  [2] 1] to: self length do [t4 _ self  t3. t5 _ t5 * t6 + [t4  65  [t4 - 65 + 10] t4 - 48]]. t2  [t5 negated] t5] length [self length] lock [] primitive: 53 match: t1 | t2 t3 t4 t5 t6 t7 t8 [t2 _ 42. t3 _ 35. t4 _ self asStream. t1 _ t1 asStream. t5 _ false. while true do [t6 _ t4 next. [t6 = t2  [t4 end  [true] t5 _ t4 position]]. t7 _ t1 next. t7  false  [t7  t6] t6  false  [t5  [t8 _ t5 - t4 position. t4 skip: t8. t1 skip: t8] false] UpperCase  (t7 + 1) = (UpperCase  (t6 + 1)) or t6 = t3  [] t5  [t8 _ t5 - t4 position. t4 skip: t8. t1 skip: t8 + 1] false]] printon: t1 | t2 [t1 next_ 39. for t2 from: self do [t1 next_ t2. t2 = 39  [t1 next_ t2]]. t1 next_ 39] recopy [self copy] replace: t1 to: t2 by: t3 [t3 Is: String  [self replace: t1 to: t2 by: t3 from: 1 to: t3 length] self replace: t1 to: t2 by: t3 asArray from: 1 to: t3 position] replace: t1 to: t2 by: t3 from: t4 to: t5 | t6 t7 [t6 _ self species new: self length + (t5 - t4) - (t2 - t1). t7 _ Stream new of: t6. self copy: 1 to: t1 - 1 to: t7. t3 copy: t4 to: t5 to: t7. self copy: t2 + 1 to: self length to: t7. t6] run: t1 in: t2 [user croak] primitive: 55 species [String] stringhash [self hash] subst: t1 for: t2 | t3 t4 t5 t6 [t5 _ 0. t3 _ t2  1. t6 _ Stream default. for t4 to: self length do [t5 > 0  [t5 _ t5 - 1] self  t4 = t3  [self  (t4 to: (self length min: t4 + t2 length - 1)) = t2  [t6 append: t1. t5 _ t2 length - 1] t6 next_ self  t4] t6 next_ self  t4]. t6 contents] systemRehash | t1 t2 t3 t4 [String understands: 'hash | l m [[(l_ m_ self length)2 [l=2_3]; =1[((self1) land: 0177)*0152] 052525]]. (self1)*060+(self(m-1)+l)]'. a rehash. t1 _ HashSet allInstances + Dictionary allInstances + SymbolTable allInstances. for t2 from: t1 do [t3 _ t2 objects asStream. t4 _ t3 next. while t4 do [t4 is: String  [t2 rehash. t4 _ false] t4 _ t3 next]]] unique | t1 [a intern: self] unlock [] primitive: 53 word: t1 [self  (t1 + t1) + (self  (t1 + t1 - 1) lshift: 8)] word: t1 _ t2 [self  t1 + t1 - 1 _ t2 lshift: 8. self  t1 + t1 _ t2 land: 255. t2]