Mantis - Squeak
Viewing Issue Advanced Details
7755 Compiler minor always 03-14-13 10:45 05-12-14 22:15
FrankShearar  
nicolas cellier  
normal  
resolved trunk  
fixed  
none    
none trunk  
0007755: "1.0s" does not parse
David Gorisek <david.gorisek@e-racuni.com> sent this to the Pharo list:

Hello all,

I am testing Pharo and I have noticed that the Pharo compiler does not treat ScaledDecimals the same way they are treated in other Smalltalk dialects (e.g. VW, VAST, Dolphin, STX, etc.).

For example the following is a valid code representing an instance of ScaledDecimal/FixedPoint in all other dialect.

1.0s + 2.0s

In Phare the code above wont compile, it has to be written as:

1.0s1 + 2.0s1

So I have made the following quick change to make Pharo compatible with other Smalltalk dialects. Maybe this change could be included in the next version of Pharo?

SqNumberParser>>#readScale
    "read the scale if any (stored in instVar).
    Answer true if found, answer false if none.
    If scale letter is not followed by a digit, this is not considered as an error.
    Scales are always read in base 10, though i do not see why..."

    scale := 0.
    sourceStream atEnd
        ifTrue: [ ^ false ].
    (sourceStream peekFor: $s)
        ifFalse: [ ^ false ].
    scale := self nextUnsignedIntegerOrNilBase: 10.
    scale
        ifNil: [
            scale := 0.
            (sourceStream peek ifNil: [false] ifNotNil: [ :nextChar | nextChar isLetter])
                ifTrue: [
                    sourceStream skip: -1. "ungobble the s"
                    ^ false ]
                ifFalse: [ ^ true ] ].
    ^ true

Notes
(0014498)
nicolas cellier   
05-12-14 22:15   
Fixed in trunk (4.6)
See http://source.squeak.org/trunk/Kernel-nice.849.mcz [^]