math.parser: fix ``"-.5" dec>``.
parent
866b40271d
commit
94bb834eae
|
@ -361,5 +361,9 @@ unit-test
|
||||||
{ f } [ "0o0" bin> ] unit-test
|
{ f } [ "0o0" bin> ] unit-test
|
||||||
{ f } [ "0x0" bin> ] unit-test
|
{ f } [ "0x0" bin> ] unit-test
|
||||||
|
|
||||||
|
! #1229, float parsing bug
|
||||||
|
{ -0.5 } [ "-.5" dec> ] unit-test
|
||||||
|
|
||||||
{ t } [ most-positive-fixnum number>string string>number fixnum? ] unit-test
|
{ t } [ most-positive-fixnum number>string string>number fixnum? ] unit-test
|
||||||
{ t } [ most-negative-fixnum number>string string>number fixnum? ] unit-test
|
{ t } [ most-negative-fixnum number>string string>number fixnum? ] unit-test
|
||||||
|
|
||||||
|
|
|
@ -279,11 +279,35 @@ DEFER: @neg-digit
|
||||||
[ @pos-first-digit ]
|
[ @pos-first-digit ]
|
||||||
} case ; inline
|
} case ; inline
|
||||||
|
|
||||||
|
: with-no-radix ( i number-parse n quot -- n/f )
|
||||||
|
[
|
||||||
|
swap {
|
||||||
|
{ CHAR: b [ pick radix>> 16 = [ CHAR: b swap call ] [ @abort ] if ] }
|
||||||
|
{ CHAR: o [ @abort ] }
|
||||||
|
{ CHAR: x [ @abort ] }
|
||||||
|
[ swap call ]
|
||||||
|
} case
|
||||||
|
] curry require-next-digit ; inline
|
||||||
|
|
||||||
|
: @neg-first-digit-no-radix ( i number-parse n char -- n/f )
|
||||||
|
{
|
||||||
|
{ CHAR: . [ ->required-mantissa ] }
|
||||||
|
{ CHAR: 0 [ [ @neg-digit ] with-no-radix ] }
|
||||||
|
[ @neg-digit ]
|
||||||
|
} case ; inline
|
||||||
|
|
||||||
|
: @pos-first-digit-no-radix ( i number-parse n char -- n/f )
|
||||||
|
{
|
||||||
|
{ CHAR: . [ ->required-mantissa ] }
|
||||||
|
{ CHAR: 0 [ [ @pos-digit ] with-no-radix ] }
|
||||||
|
[ @pos-digit ]
|
||||||
|
} case ; inline
|
||||||
|
|
||||||
: @first-char-no-radix ( i number-parse n char -- n/f )
|
: @first-char-no-radix ( i number-parse n char -- n/f )
|
||||||
{
|
{
|
||||||
{ CHAR: - [ [ @neg-digit ] require-next-digit ?neg ] }
|
{ CHAR: - [ [ @neg-first-digit-no-radix ] require-next-digit ?neg ] }
|
||||||
{ CHAR: + [ [ @pos-digit ] require-next-digit ] }
|
{ CHAR: + [ [ @pos-first-digit-no-radix ] require-next-digit ] }
|
||||||
[ @pos-digit ]
|
[ @pos-first-digit-no-radix ]
|
||||||
} case ; inline
|
} case ; inline
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
Loading…
Reference in New Issue