Number>>readFrom: again [was: KernelTests-dc.56.mcz]

Klaus D. Witzel klaus.witzel at cobss.com
Tue Apr 3 21:30:23 UTC 2007


Hi Damien,

I knew there was something strange sometime with number parsing: do you  
remember the thread "[BUG] nil ~= 1and: [1 isNil] is parsed+compiled  
without complaint".

That time it was decided, IIRC, that '1and' parses '1' then 'and'  
correctly.

So what can a sender of #readFrom: do

- a) decide that it will indeed send #readFrom: and
- b) decide what to do if no digit is before the first nonDigit, nonMinus  
character.

One solution would be that (Number>>readFrom: 'and') returned nil, just to  
make it different from (Number>>readFrom: '0and').

OTOH the Scanner handles the case when Number>>readFrom: signals an error,  
why doesn't everybode else do so ;-)

/Klaus

On Wed, 21 Mar 2007 15:06:04 +0100, Damien Cassou wrote:

> Nicolas told me that this bugs follows the bug:
> http://bugs.impara.de/squeak/view.php?id=3512
>
>
> The aim of the test is to verify that an error is thrown instead of 0
> which is a number and should not indicate an error. The only place
> where we will get an error is if the stream starts by $r which is
> stupid.
>
> Number readFrom: 'a'       => 0
> Number readFrom: 'r'       => ERROR
>
> Nicolas proposes to replace Number>>readFrom: to use his parser (which
> is already in the image but not used by default: SqNumberParser). The
> only problem with its parser is the non backward compatible behavior
> on that problem.
>
> So, what do we do?
>





More information about the Squeak-dev mailing list