class: Number
added: #readSmalltalkSyntaxFrom:onError:
changed: #readSmalltalkSyntaxFrom:
--- a/Number.st Mon Sep 30 12:44:21 2013 +0200
+++ b/Number.st Tue Oct 08 15:29:00 2013 +0200
@@ -380,18 +380,15 @@
(character-) aStream.
Returns nil if aStream contains no valid number."
- ^ [
- Scanner scanNumberFrom:aStream.
- ] on:Error do:[:ex|
- nil
- ].
+ ^ self readSmalltalkSyntaxFrom:aStream onError:nil.
"
Number readSmalltalkSyntaxFrom:'99d'
Number readSmalltalkSyntaxFrom:'99.00d'
Number readSmalltalkSyntaxFrom:'54.32e-01'
Number readSmalltalkSyntaxFrom:'12345678901234567890'
- Number readSmalltalkSyntaxFrom:'16rAAAAFFFFAAAAFFFF'
+ Number readSmalltalkSyntaxFrom:'16rAAAAFFFFAAAAFFFF'
+ Number readSmalltalkSyntaxFrom:'foobar'
Number readSmalltalkSyntaxFrom:'(1/10)'
Number readSmalltalkSyntaxFrom:'(1/0)'
@@ -417,9 +414,29 @@
"
"Modified: / 19.11.1999 / 18:26:47 / cg"
+!
+
+readSmalltalkSyntaxFrom:aStream onError:errorValue
+ "ST-80 compatibility (thanks to a note from alpha testers)
+ read and return the next Number in smalltalk syntax from the
+ (character-) aStream.
+ Returns nil if aStream contains no valid number."
+
+ |n|
+
+ [
+ n := Scanner scanNumberFrom:aStream.
+ ] on:Error do:[:ex|
+ n := nil
+ ].
+ n isNil ifTrue:[^ errorValue value].
+ ^ n
+
+ "
+ Number readSmalltalkSyntaxFrom:'foo' onError:123
+ "
! !
-
!Number class methodsFor:'constants'!
decimalPointCharacter
@@ -651,7 +668,6 @@
"Modified: / 16.11.2001 / 14:13:16 / cg"
! !
-
!Number class methodsFor:'private'!
readMantissaAndScaleFrom:aStream radix:radix
@@ -726,7 +742,6 @@
^ self == Number
! !
-
!Number methodsFor:'*StateSpecs-Specs'!
isEqual: aNumber within: accuracy
@@ -889,7 +904,6 @@
^ self rounded printString
! !
-
!Number methodsFor:'coercing & converting'!
i
@@ -2352,14 +2366,13 @@
"Modified: / 5.11.2001 / 17:54:22 / cg"
! !
-
!Number class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.143 2013-08-01 12:44:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.144 2013-10-08 13:29:00 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.143 2013-08-01 12:44:55 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Number.st,v 1.144 2013-10-08 13:29:00 cg Exp $'
! !