Number parsing with checks

Liste des GroupesRevenir à cl forth 
Sujet : Number parsing with checks
De : dxforth (at) *nospam* gmail.com (dxf)
Groupes : comp.lang.forth
Date : 12. Oct 2024, 02:45:10
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <636c943eae41d9a5832ce5a94414cb81be04a44f@i2pn2.org>
User-Agent : Mozilla Thunderbird
The basics:

: .BAD ( -- )  cr ." Invalid item"  .abort ;

: ZE? ( x -- )  if .bad then ;     \ abort if non-zero
: NZ? ( x -- )  0= ze? ;           \ abort if zero
: ?ZE ( x -- x )  dup ze? ;        \ check x is zero
: ?NZ ( x -- x )  dup nz? ;        \ check x is non-zero

Examples:

: ?D>S ( d|ud -- n|u )  -1 0 between nz? ;
: ?RNG ( n|u lo hi -- n|u )  rot dup 2swap between nz? ;

\ Single number parsers with checking
: /DNUM ( a u -- a' 0 d|ud )
  /sign >r  ?nz  (number)  ?ze 2swap  r> if dnegate then ;
: /NUM ( a u -- a' 0 n|u )  /dnum ?d>s ;
: /HEX ( a u -- a' 0 n|u )  base @ >r  hex /num  r> base ! ;

\ String to unsigned int with checking
: >INT ( a u -- u2 )  ?nz  (number)  ?ze 2drop  ze? ;

where

: (NUMBER) ( a u -- ud a' u' )  0 0 2swap >number ;

: /SIGN ( a u -- a' u' f )
  dup if  over c@  dup [char] + =  swap [char] - =
  dup >r  or  negate /string  r>  exit  then  0 ;


Date Sujet#  Auteur
12 Oct 24 * Number parsing with checks17dxf
12 Oct 24 `* Re: Number parsing with checks16Ruvim
12 Oct 24  +* Re: Number parsing with checks4Ruvim
12 Oct 24  i`* Re: Number parsing with checks3mhx
12 Oct 24  i +- Re: Number parsing with checks1Ruvim
14 Oct 24  i `- Re: Number parsing with checks1Stephen Pelc
13 Oct 24  `* Re: Number parsing with checks11dxf
13 Oct 24   `* Re: Number parsing with checks10Ruvim
13 Oct 24    +* Re: Number parsing with checks8dxf
13 Oct 24    i`* Naming conventions (was: Number parsing with checks)7Ruvim
13 Oct 24    i `* Re: Naming conventions6dxf
13 Oct 24    i  +* Re: Naming conventions3Ruvim
13 Oct 24    i  i+- Re: Naming conventions1mhx
14 Oct 24    i  i`- Re: Naming conventions1dxf
14 Oct 24    i  `* Re: Naming conventions2Ruvim
14 Oct 24    i   `- Re: Naming conventions1dxf
14 Oct 24    `- Re: Number parsing with checks1dxf

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal