version 1.4, 1995/04/06 16:56:10
|
version 1.8, 1996/07/16 20:57:07
|
Line 1
|
Line 1
|
\ ERRORE.FS English error strings 9may93jaw |
\ ERRORE.FS English error strings 9may93jaw |
|
|
|
\ Copyright (C) 1995 Free Software Foundation, Inc. |
|
|
|
\ This file is part of Gforth. |
|
|
|
\ Gforth is free software; you can redistribute it and/or |
|
\ modify it under the terms of the GNU General Public License |
|
\ as published by the Free Software Foundation; either version 2 |
|
\ of the License, or (at your option) any later version. |
|
|
|
\ This program is distributed in the hope that it will be useful, |
|
\ but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
\ GNU General Public License for more details. |
|
|
|
\ You should have received a copy of the GNU General Public License |
|
\ along with this program; if not, write to the Free Software |
|
\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
|
|
|
\ The errors are defined by a linked list, for easy adding |
\ The errors are defined by a linked list, for easy adding |
\ and deleting. Speed is not neccassary at this point. |
\ and deleting. Speed is not neccassary at this point. |
|
|
AVARIABLE ErrLink \ Linked list entry point |
AVARIABLE ErrLink \ Linked list entry point |
0 ErrLink ! |
NIL ErrLink ! |
|
|
: ERR" ( n -- ) |
: ERR" ( n -- ) |
ErrLink linked |
ErrLink linked |
, |
, |
[char] " word count |
[char] " parse |
string, align ; |
string, align ; |
|
|
decimal |
decimal |
|
|
-1 ERR" Aborted" |
-1 ERR" Aborted" |
ErrLink @ unlock reloff lock \ make sure that the terminating 0 is not relocated |
|
-3 ERR" Stack overflow" -4 ERR" Stack underflow" |
-3 ERR" Stack overflow" -4 ERR" Stack underflow" |
-5 ERR" Return stack overflow" -6 ERR" Return stack undeflow" |
-5 ERR" Return stack overflow" -6 ERR" Return stack undeflow" |
-7 ERR" Do-loops nested too deeply" -8 ERR" Dictionary overflow" |
-7 ERR" Do-loops nested too deeply" -8 ERR" Dictionary overflow" |
Line 47 ErrLink @ unlock reloff lock \ make sure
|
Line 65 ErrLink @ unlock reloff lock \ make sure
|
-55 ERR" Floating-point unidentified fault" |
-55 ERR" Floating-point unidentified fault" |
-56 ERR" QUIT" -57 ERR" Error in sending or receiving a character" |
-56 ERR" QUIT" -57 ERR" Error in sending or receiving a character" |
-58 ERR" [IF], [ELSE], [THEN] error" |
-58 ERR" [IF], [ELSE], [THEN] error" |
\ signals: ( We list them all, execpt those already present, just in case ) |
|
-256 ERR" Hangup signal" |
\ signals are handled with strsignal |
-257 ERR" Quit signal" |
\ but some signals produce throw-codes > -256, e.g., -28 |
-258 ERR" Illegal Instruction" |
\ signals: ( We list them all, except those already present, just in case ) |
-259 ERR" Trace Trap" |
\ -256 ERR" Hangup signal" |
-260 ERR" IOT instruction" |
\ -257 ERR" Quit signal" |
-261 ERR" EMT instruction" \ abort() call? |
\ -258 ERR" Illegal Instruction" |
-262 ERR" Kill signal" \ cannot be caught but so what |
\ -259 ERR" Trace Trap" |
-263 ERR" Bad arg to system call" |
\ -260 ERR" IOT instruction" |
-264 ERR" Broken pipe" |
\ -261 ERR" EMT instruction" \ abort() call? |
-265 ERR" Alarm signal" |
\ -262 ERR" Kill signal" \ cannot be caught but so what |
-266 ERR" Terminate signal" |
\ -263 ERR" Bad arg to system call" |
-267 ERR" User signal 1" |
\ -264 ERR" Broken pipe" |
-268 ERR" User signal 2" |
\ -265 ERR" Alarm signal" |
|
\ -266 ERR" Terminate signal" |
|
\ -267 ERR" User signal 1" |
|
\ -268 ERR" User signal 2" |
\ error numbers between -512 and -2047 are for OS errors and are |
\ error numbers between -512 and -2047 are for OS errors and are |
\ handled with strerror |
\ handled with strerror |
|
|
|
|
: .error ( n -- ) |
: .error ( n -- ) |
cr ." Error: " |
cr ." Error: " |
ErrLink |
ErrLink |
Line 74 ErrLink @ unlock reloff lock \ make sure
|
Line 94 ErrLink @ unlock reloff lock \ make sure
|
IF 2 cells + count type drop exit THEN |
IF 2 cells + count type drop exit THEN |
REPEAT |
REPEAT |
drop |
drop |
dup -512 <= over -2048 > and |
dup -511 -255 within |
|
IF |
|
256 + negate strsignal type exit |
|
THEN |
|
dup -2047 -511 within |
IF |
IF |
512 + negate strerror type exit |
512 + negate strerror type exit |
THEN |
THEN |