\ -*- mode: forth -*-
\ $Id: except.bigforth,v 1.1 2001/06/20 19:04:07 doug Exp $
\ http://www.bagley.org/~doug/shootout/
\ from Anton Ertl
\ read NUM from last command line argument
0. argc @ 1- arg >number 2drop drop constant NUM
1 constant *hi*
2 constant *lo*
variable lo
variable hi
: blowup
1 and if
*lo* throw
else
*hi* throw
then ;
: lo-function
['] blowup catch
dup *lo* <> tuck and throw
1+ lo +! ;
: hi-function
['] lo-function catch
dup *hi* <> tuck and throw
1+ hi +! ;
: some-function
['] hi-function catch abort" We shouldn't get here" ;
: main
NUM 0 ?do
i some-function drop
loop
." Exceptions: HI=" hi ? ." / LO=" lo @ 1 u.r cr ;
main bye