Diff for /gforth/Attic/errore.fs between versions 1.3 and 1.12

version 1.3, 1995/02/06 18:14:32 version 1.12, 1997/02/08 22:58:09
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 -- )  
        ErrLink linked  
        ,  
        [char] " word count  
        string, align ;  
   
 decimal  decimal
   
 -1 ERR" Aborted"  \ error numbers between -256 and -511 represent signals
 ErrLink @ unlock reloff lock \ make sure that the terminating 0 is not relocated  \ signals are handled with strsignal
 -3 ERR" Stack overflow"                 -4 ERR" Stack underflow"  \ but some signals produce throw-codes > -256, e.g., -28
 -5 ERR" Return stack overflow"          -6 ERR" Return stack undeflow"  
 -7 ERR" Do-loops nested too deeply"     -8 ERR" Dictionary overflow"  \ error numbers between -512 and -2047 are for OS errors and are
 -9 ERR" Invalid memory address"         -10 ERR" Division by zero"  \ handled with strerror
 -11 ERR" Result out of range"           -12 ERR" Argument type mismatch"  
 -13 ERR" Undefined word"                -14 ERR" Interpreting a compile-only word"  
 -15 ERR" Invalid FORGET"                -16 ERR" Attempt to use zero-length string as a name"  
 -17 ERR" Pictured numeric ouput string overflow"  
 -18 ERR" Parsed string overflow"        -19 ERR" Word name too long"  
 -20 ERR" Write to a read-only location" -21 ERR" Unsupported operation"  
 -22 ERR" Control structure mismatch"    -23 ERR" Address alignment exception"  
 -24 ERR" Invalid numeric argument"      -25 ERR" Return stack imbalance"  
 -26 ERR" Loop parameters unavailable"   -27 ERR" Invalid recursion"  
 -28 ERR" User interupt"                 -29 ERR" Compiler nesting"  
 -30 ERR" Obsolescent feature"           -31 ERR" >BODY used on non-CREATEd definition"  
 -32 ERR" Invalid name argument"         -33 ERR" Block read exception"  
 -34 ERR" Block write exception"         -35 ERR" Invalid block number"  
 -36 ERR" Invalid file position"         -37 ERR" File I/O exception"  
 -38 ERR" Non-existent file"             -39 ERR" Unexpected end of file"  
 -40 ERR" Invalid BASE for floating point conversion"  
 -41 ERR" Loss of precision"             -42 ERR" Floating-point divide by zero"  
 -43 ERR" Floating-point result out of range"  
 -44 ERR" Floating-point stack overflow" -45 ERR" Floating-point stack underflow"  
 -46 ERR" Floating-point invalid argument"  
 -47 ERR" Compilation word list deleted" -48 ERR" invalid POSTPONE"  
 -49 ERR" Search-order overflow"         -50 ERR" Search-order underflow"  
 -51 ERR" Compilation word list changed" -52 ERR" Control-flow stack overflow"  
 -53 ERR" Exception stack overflow"      -54 ERR" Floating-point underflow"  
 -55 ERR" Floating-point unidentified fault"  
 -56 ERR" QUIT"                          -57 ERR" Error in sending or receiving a character"  
 -58 ERR" [IF], [ELSE], [THEN] error"  
 \ signals: ( We list them all, execpt 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 ( 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
   [ has-os [IF] ]
       dup -511 -255 within
       IF
           256 + negate strsignal type exit
       THEN
       dup -2047 -511 within
       IF
           512 + negate strerror type exit
       THEN
   [ [THEN] ]
       . ;
   

Removed from v.1.3  
changed lines
  Added in v.1.12


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>