version 1.1, 1994/02/11 16:30:46
|
version 1.7, 1995/11/07 18:06:38
|
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. |
|
|
Line 10 AVARIABLE ErrLink \ Linked
|
Line 29 AVARIABLE ErrLink \ Linked
|
ErrLink linked |
ErrLink linked |
, |
, |
[char] " word count |
[char] " word count |
dup c, here over chars allot swap move 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 decimal
|
Line 67 decimal
|
-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 are handled with strsignal |
|
\ but some signals produce throw-codes > -256, e.g., -28 |
|
\ signals: ( We list them all, except those already present, just in case ) |
|
\ -256 ERR" Hangup signal" |
|
\ -257 ERR" Quit signal" |
|
\ -258 ERR" Illegal Instruction" |
|
\ -259 ERR" Trace Trap" |
|
\ -260 ERR" IOT instruction" |
|
\ -261 ERR" EMT instruction" \ abort() call? |
|
\ -262 ERR" Kill signal" \ cannot be caught but so what |
|
\ -263 ERR" Bad arg to system call" |
|
\ -264 ERR" Broken pipe" |
|
\ -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 |
|
\ handled with strerror |
|
|
: .error ( n -- ) |
: .error ( n -- ) |
cr ." Error: " |
cr ." Error: " |
ErrLink |
ErrLink |
BEGIN @ dup |
BEGIN @ dup |
WHILE |
WHILE |
2dup cell+ @ = |
2dup cell+ @ = |
IF 2 cells + count type drop exit THEN |
IF 2 cells + count type drop exit THEN |
REPEAT |
REPEAT |
drop . ; |
drop |
|
dup -511 -255 within |
|
IF |
|
256 + negate strsignal type exit |
|
THEN |
|
dup -2047 -511 within |
|
IF |
|
512 + negate strerror type exit |
|
THEN |
|
. ; |
|
|