Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4867 | leency | 1 | ( Обработка ошибок. |
2 | Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
||
3 | Ревизия: Cентябрь 1999 |
||
4 | ) |
||
5 | |||
6 | VECT ERROR \ обработчик ошибок (ABORT) |
||
7 | VECT (ABORT") |
||
8 | |||
9 | : (ABORT1") ( flag c-addr -- ) |
||
10 | SWAP IF COUNT ER-U ! ER-A ! -2 THROW ELSE DROP THEN |
||
11 | ; |
||
12 | |||
13 | CREATE ERRTIB C/L 1+ ALLOT |
||
14 | CREATE ERRFILE C/L 1+ ALLOT |
||
15 | VARIABLE ER>IN |
||
16 | VARIABLE SAVEERR? |
||
17 | VARIABLE >IN_WORD |
||
18 | |||
19 | : SAVEERR |
||
20 | DUP SAVEERR? @ AND |
||
21 | IF SOURCE ERRTIB $! >IN_WORD @ ER>IN ! SAVEERR? OFF |
||
22 | SOURCE-ID 999 HERE WITHIN |
||
23 | IF SOURCE-ID .NAME ZCOUNT C/L UMIN ERRFILE $! |
||
24 | THEN |
||
25 | THEN ; |
||
26 | |||
27 | : ERROR_DO |
||
28 | SAVEERR |
||
29 | CR ERRFILE COUNT TYPE |
||
30 | CR ERRTIB COUNT TYPE |
||
31 | CR ER>IN @ BEGIN SPACE 1- DUP 0 MAX 0= UNTIL ." ^" DROP |
||
32 | CR ." ERR=" . |
||
33 | CR S0 @ SP! STATE 0! |
||
34 | ; |