[gforth] / gforth / kernel / errore.fs  

gforth: gforth/kernel/errore.fs


1 : anton 1.1 \ ERRORE.FS English error strings 9may93jaw
2 :    
3 :     \ Copyright (C) 1995 Free Software Foundation, Inc.
4 :    
5 :     \ This file is part of Gforth.
6 :    
7 :     \ Gforth is free software; you can redistribute it and/or
8 :     \ modify it under the terms of the GNU General Public License
9 :     \ as published by the Free Software Foundation; either version 2
10 :     \ of the License, or (at your option) any later version.
11 :    
12 :     \ This program is distributed in the hope that it will be useful,
13 :     \ but WITHOUT ANY WARRANTY; without even the implied warranty of
14 :     \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 :     \ GNU General Public License for more details.
16 :    
17 :     \ You should have received a copy of the GNU General Public License
18 :     \ along with this program; if not, write to the Free Software
19 :     \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 :    
21 :    
22 :     \ The errors are defined by a linked list, for easy adding
23 :     \ and deleting. Speed is not neccassary at this point.
24 :    
25 :     AVARIABLE ErrLink \ Linked list entry point
26 :     NIL ErrLink !
27 :    
28 :     decimal
29 :    
30 :     \ error numbers between -256 and -511 represent signals
31 :     \ signals are handled with strsignal
32 :     \ but some signals produce throw-codes > -256, e.g., -28
33 :    
34 :     \ error numbers between -512 and -2047 are for OS errors and are
35 :     \ handled with strerror
36 :    
37 :     : .error ( n -- )
38 :     cr ." Error: "
39 :     ErrLink
40 :     BEGIN @ dup
41 :     WHILE
42 :     2dup cell+ @ =
43 :     IF 2 cells + count type drop exit THEN
44 :     REPEAT
45 :     drop
46 : jwilke 1.2 [ has? os [IF] ]
47 : anton 1.1 dup -511 -255 within
48 :     IF
49 :     256 + negate strsignal type exit
50 :     THEN
51 :     dup -2047 -511 within
52 :     IF
53 :     512 + negate strerror type exit
54 :     THEN
55 :     [ [THEN] ]
56 :     . ;
57 :    

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help