@@ -115,75 +115,75 @@ ExtendedNumberParser >> nextNumber [
115115ExtendedNumberParser >> readFractionPartNumberOfTrailingZeroInIntegerPart: numberOfTrailingZeroInIntegerPart [
116116 " at this stage, sign integerPart and a fraction point have been read.
117117 try and form a number with a fractionPart"
118-
118+
119119 | numberOfNonZeroFractionDigits numberOfTrailingZeroInFractionPart mantissa value |
120120 fractionPart := self nextUnsignedIntegerOrNilBase: base.
121- fractionPart
122- ifNil: [
123- " No fractionPart found, but can be an extended 1.e2 syntax"
124- integerPart ifNil: [" No integerPart, nor fractionPart found, ungobble the fraction point and raise an error"
125- sourceStream skip: - 1 .
126- ^ self expected: ' a digit' ].
127- fractionPart := 0 .
128- numberOfNonZeroFractionDigits := 0 .
129- numberOfTrailingZeroInFractionPart := 0 ]
130- ifNotNil: [.
131- numberOfNonZeroFractionDigits := lastNonZero.
132- numberOfTrailingZeroInFractionPart := nDigits - lastNonZero].
121+ numberOfTrailingZeroInFractionPart := fractionPart
122+ ifNil: [ " No fractionPart found, but can be an extended 1.e2 syntax"
123+ integerPart ifNil: [ " No integerPart, nor fractionPart found, ungobble the fraction point and raise an error"
124+ sourceStream skip: - 1 .
125+ ^ self expected: ' a digit' ].
126+ fractionPart := 0 .
127+ numberOfNonZeroFractionDigits := 0 .
128+ 0 ]
129+ ifNotNil: [
130+ numberOfNonZeroFractionDigits := lastNonZero.
131+ nDigits - lastNonZero ].
133132 self readExponent.
134- integerPart ifNil: [integerPart := 0 ].
135-
136- fractionPart isZero
137- ifTrue: [ mantissa := integerPart
138- // (base raisedToInteger: numberOfTrailingZeroInIntegerPart).
139- exponent := exponent + numberOfTrailingZeroInIntegerPart]
140- ifFalse: [ mantissa := integerPart
141- * (base raisedToInteger: numberOfNonZeroFractionDigits) + (fractionPart // (base raisedToInteger: numberOfTrailingZeroInFractionPart)).
142- exponent := exponent - numberOfNonZeroFractionDigits].
133+ integerPart ifNil: [ integerPart := 0 ].
134+ exponent := fractionPart isZero
135+ ifTrue: [
136+ mantissa := integerPart // (base raisedToInteger: numberOfTrailingZeroInIntegerPart).
137+ exponent + numberOfTrailingZeroInIntegerPart ]
138+ ifFalse: [
139+ mantissa := integerPart * (base raisedToInteger: numberOfNonZeroFractionDigits)
140+ + (fractionPart // (base raisedToInteger: numberOfTrailingZeroInFractionPart)).
141+ exponent - numberOfNonZeroFractionDigits ].
143142
144143 value := exponent positive
145- ifTrue: [mantissa * (base raisedToInteger: exponent)]
146- ifFalse: [mantissa / (base raisedToInteger: exponent negated)].
144+ ifTrue: [ mantissa * (base raisedToInteger: exponent) ]
145+ ifFalse: [ mantissa / (base raisedToInteger: exponent negated) ].
147146 ^ neg
148- ifTrue: [value negated]
149- ifFalse: [value]
147+ ifTrue: [ value negated ]
148+ ifFalse: [ value ]
150149]
151150
152151{ #category : #' parsing-private' }
153152ExtendedNumberParser >> readNumberWithFractionPartNumberOfTrailingZeroInIntegerPart: numberOfTrailingZeroInIntegerPart [
154153 " at this stage, sign integerPart and a decimal point have been read.
155154 try and form a number with a fractionPart"
156-
155+
157156 | numberOfNonZeroFractionDigits numberOfTrailingZeroInFractionPart mantissa value |
158157 fractionPart := self nextUnsignedIntegerOrNilBase: base.
159- fractionPart
160- ifNil: [
161- " No fractionPart found, but can be a 1.e2 syntax "
162- fractionPart := 0 .
163- numberOfNonZeroFractionDigits := 0 .
164- numberOfTrailingZeroInFractionPart := 0 ]
165- ifNotNil: [
166- numberOfNonZeroFractionDigits := lastNonZero.
167- numberOfTrailingZeroInFractionPart := nDigits - lastNonZero].
168- self readExponent
169- ifFalse: [ self readScale
170- ifTrue: [ ^ self makeScaledDecimalWithNumberOfNonZeroFractionDigits: numberOfNonZeroFractionDigits
171- andNumberOfTrailingZeroInFractionPart: numberOfTrailingZeroInFractionPart] ].
172-
173- fractionPart isZero
174- ifTrue: [ mantissa := integerPart
175- // (base raisedToInteger: numberOfTrailingZeroInIntegerPart).
176- exponent := exponent + numberOfTrailingZeroInIntegerPart]
177- ifFalse: [ mantissa := integerPart
178- * (base raisedToInteger: numberOfNonZeroFractionDigits) + (fractionPart // (base raisedToInteger: numberOfTrailingZeroInFractionPart)).
179- exponent := exponent - numberOfNonZeroFractionDigits].
158+ numberOfTrailingZeroInFractionPart := fractionPart
159+ ifNil: [ " No fractionPart found, but can be a 1.e2 syntax "
160+ fractionPart := 0 .
161+ numberOfNonZeroFractionDigits := 0 .
162+ 0 ]
163+ ifNotNil: [
164+ numberOfNonZeroFractionDigits := lastNonZero.
165+ nDigits - lastNonZero ] .
166+ self readExponent ifFalse: [
167+ self readScale ifTrue: [
168+ ^ self
169+ makeScaledDecimalWithNumberOfNonZeroFractionDigits: numberOfNonZeroFractionDigits
170+ andNumberOfTrailingZeroInFractionPart: numberOfTrailingZeroInFractionPart ] ].
171+ exponent := fractionPart isZero
172+ ifTrue: [
173+ mantissa := integerPart // (base raisedToInteger: numberOfTrailingZeroInIntegerPart).
174+ exponent + numberOfTrailingZeroInIntegerPart ]
175+ ifFalse: [
176+ mantissa := integerPart * (base raisedToInteger: numberOfNonZeroFractionDigits)
177+ + (fractionPart // (base raisedToInteger: numberOfTrailingZeroInFractionPart)).
178+ exponent - numberOfNonZeroFractionDigits ].
180179
181180 value := self makeFloatFromMantissa: mantissa exponent: exponent base: base.
182181 ^ neg
183- ifTrue: [value isZero
184- ifTrue: [Float negativeZero]
185- ifFalse: [value negated]]
186- ifFalse: [value]
182+ ifTrue: [
183+ value isZero
184+ ifTrue: [ Float negativeZero ]
185+ ifFalse: [ value negated ] ]
186+ ifFalse: [ value ]
187187]
188188
189189{ #category : #' parsing-private' }
0 commit comments