version 1.22, 2010/08/31 20:10:59
|
version 1.25, 2010/12/31 18:09:02
|
Line 1
|
Line 1
|
\ catch, throw, etc. |
\ catch, throw, etc. |
|
|
\ Copyright (C) 1999,2000,2003,2006,2007 Free Software Foundation, Inc. |
\ Copyright (C) 1999,2000,2003,2006,2007,2010 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 168 Variable first-throw
|
Line 168 Variable first-throw
|
then endtry ; |
then endtry ; |
is catch |
is catch |
|
|
|
[undefined] (throw1) [if] |
|
: (throw1) ( ... ball frame -- ... ball ) |
|
dup rp! ( ... ball frame ) |
|
cell+ dup @ lp! |
|
cell+ dup @ fp! |
|
cell+ dup @ ( ... ball addr sp ) -rot 2>r sp! drop 2r> |
|
cell+ @ perform ; |
|
[endif] |
|
|
:noname ( y1 .. ym error/0 -- y1 .. ym / z1 .. zn error ) \ exception |
:noname ( y1 .. ym error/0 -- y1 .. ym / z1 .. zn error ) \ exception |
?DUP IF |
?DUP IF |
[ here forthstart 9 cells + ! ] |
[ here forthstart 9 cells + ! ] |
Line 180 is catch
|
Line 189 is catch
|
2 (bye) |
2 (bye) |
\ quit |
\ quit |
THEN |
THEN |
dup rp! ( ... ball frame ) |
\ cr .s dup 64 dump |
cell+ dup @ lp! |
(throw1) |
cell+ dup @ fp! |
|
cell+ dup @ ( ... ball addr sp ) -rot 2>r sp! drop 2r> |
|
cell+ @ perform |
|
THEN ; |
THEN ; |
is throw |
is throw |