math.parser: support leading + on significand and exponent so string>number can be a proper superset of C strto* functions
parent
ce1ff01851
commit
0f651c8506
|
@ -25,8 +25,20 @@ unit-test
|
|||
[ "12345abcdef" string>number ]
|
||||
unit-test
|
||||
|
||||
[ t ]
|
||||
[ "-12" string>number 0 < ]
|
||||
[ 12 ]
|
||||
[ "+12" string>number ]
|
||||
unit-test
|
||||
|
||||
[ -12 ]
|
||||
[ "-12" string>number ]
|
||||
unit-test
|
||||
|
||||
[ f ]
|
||||
[ "-+12" string>number ]
|
||||
unit-test
|
||||
|
||||
[ f ]
|
||||
[ "+-12" string>number ]
|
||||
unit-test
|
||||
|
||||
[ f ]
|
||||
|
@ -47,13 +59,13 @@ unit-test
|
|||
[ f ] [ "1/-2" string>number ] unit-test
|
||||
[ f ] [ "1/2/3" string>number ] unit-test
|
||||
[ 1+1/2 ] [ "1+1/2" string>number ] unit-test
|
||||
[ 1+1/2 ] [ "+1+1/2" string>number ] unit-test
|
||||
[ f ] [ "1-1/2" string>number ] unit-test
|
||||
[ -1-1/2 ] [ "-1-1/2" string>number ] unit-test
|
||||
[ f ] [ "-1+1/2" string>number ] unit-test
|
||||
[ f ] [ "1+2" string>number ] unit-test
|
||||
[ f ] [ "1+" string>number ] unit-test
|
||||
[ f ] [ "1-" string>number ] unit-test
|
||||
[ f ] [ "+1" string>number ] unit-test
|
||||
[ f ] [ "1+1/2+2" string>number ] unit-test
|
||||
|
||||
[ 100000 ] [ "100,000" string>number ] unit-test
|
||||
|
@ -68,6 +80,7 @@ unit-test
|
|||
[ f ] [ "-,2" string>number ] unit-test
|
||||
|
||||
[ 2.0 ] [ "2." string>number ] unit-test
|
||||
[ 2.0 ] [ "+2." string>number ] unit-test
|
||||
[ 0.25 ] [ ".25" string>number ] unit-test
|
||||
[ -2.0 ] [ "-2." string>number ] unit-test
|
||||
[ -0.25 ] [ "-.25" string>number ] unit-test
|
||||
|
@ -80,6 +93,7 @@ unit-test
|
|||
[ 100.0 ] [ "100." string>number ] unit-test
|
||||
|
||||
[ 100.0 ] [ "1e2" string>number ] unit-test
|
||||
[ 100.0 ] [ "1e+2" string>number ] unit-test
|
||||
[ HEX: 1e2 ] [ "1e2" hex> ] unit-test
|
||||
|
||||
[ HEX: 1.999999999999ap-3 ] [ "0.2" string>number ] unit-test
|
||||
|
|
|
@ -118,6 +118,7 @@ DEFER: @neg-digit
|
|||
: @exponent-first-char ( float-parse i number-parse n char -- float-parse n/f )
|
||||
{
|
||||
{ CHAR: - [ [ @exponent-digit ] require-next-digit ?neg ] }
|
||||
{ CHAR: + [ [ @exponent-digit ] require-next-digit ] }
|
||||
[ @exponent-digit ]
|
||||
} case ; inline
|
||||
|
||||
|
@ -231,6 +232,7 @@ DEFER: @neg-digit
|
|||
: @first-char ( i number-parse n char -- n/f )
|
||||
{
|
||||
{ CHAR: - [ [ @neg-first-digit ] require-next-digit ?neg ] }
|
||||
{ CHAR: + [ [ @pos-first-digit ] require-next-digit ] }
|
||||
[ @pos-first-digit ]
|
||||
} case ; inline
|
||||
|
||||
|
|
Loading…
Reference in New Issue