Marcel Taeumel uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-mt.1239.mcz
==================== Summary ====================
Name: Kernel-mt.1239 Author: mt Time: 31 May 2019, 11:49:05.536936 am UUID: c1b1ed0f-6055-e543-a389-510fea993ddb Ancestors: Kernel-cmm.1238, Kernel-cmfcmf.1216
Merge cmfcmf.1216
=============== Diff against Kernel-cmm.1238 ===============
Item was changed: ----- Method: Random>>diceToken: (in category 'die rolling') ----- diceToken: stream "Private. Mini scanner, see #roll:"
stream atEnd ifTrue: [^ nil]. + stream peek isDigit ifTrue: [^ Integer readFrom: stream]. - stream peek isDigit ifTrue: [^ Number readFrom: stream]. ^ stream next asLowercase!
Item was changed: ----- Method: Random>>roll: (in category 'die rolling') ----- roll: diceString "Roll some dice, DnD-style, according to this mini-grammar: + dice := epxr {pm dice} - dice := epxr {pm expr} pm := '+' | '-' expr := num | num dD | dD numP | num dD numP dD := 'd' | 'D' num := digit+ numP := num | '%'"
| stream op result | stream := diceString readStream. result := 0. op := #+. [ | res range dice token | token := self diceToken: stream. token isNumber ifTrue: [dice := token. + res := token. token := self diceToken: stream] ifFalse: [token == $d ifTrue: [dice := 1] + ifFalse: [self error: 'unknown token' , token]]. - ifFalse: [res := 0]]. token == $d ifTrue: [token := self diceToken: stream. token isNumber ifTrue: [range := token. token := self diceToken: stream] ifFalse: [token == $% ifTrue: [range := 100. token := self diceToken: stream] ifFalse: [range := 6]]. res := 0. dice timesRepeat: [res := res + (self nextInt: range)]]. result := result perform: op with: res. token ifNil: [^ result]. (token == $+ or: [token == $-]) ifFalse: [self error: 'unknown token ' , token]. op := token asSymbol] repeat!
squeak-dev@lists.squeakfoundation.org