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

version 1.3, 1995/02/06 18:14:32 version 1.10, 1997/02/01 14:59:29
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"
 -3 ERR" Stack overflow"                 -4 ERR" Stack underflow"  -4 ERR" Stack underflow"
 -5 ERR" Return stack overflow"          -6 ERR" Return stack undeflow"  -5 ERR" Return stack overflow"
 -7 ERR" Do-loops nested too deeply"     -8 ERR" Dictionary overflow"  -6 ERR" Return stack undeflow"
 -9 ERR" Invalid memory address"         -10 ERR" Division by zero"  -7 ERR" Do-loops nested too deeply"
 -11 ERR" Result out of range"           -12 ERR" Argument type mismatch"  -8 ERR" Dictionary overflow"
 -13 ERR" Undefined word"                -14 ERR" Interpreting a compile-only word"  -9 ERR" Invalid memory address"
 -15 ERR" Invalid FORGET"                -16 ERR" Attempt to use zero-length string as a name"  -10 ERR" Division by zero"
   -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"  -17 ERR" Pictured numeric ouput string overflow"
 -18 ERR" Parsed string overflow"        -19 ERR" Word name too long"  -18 ERR" Parsed string overflow"
 -20 ERR" Write to a read-only location" -21 ERR" Unsupported operation"  -19 ERR" Word name too long"
 -22 ERR" Control structure mismatch"    -23 ERR" Address alignment exception"  -20 ERR" Write to a read-only location"
 -24 ERR" Invalid numeric argument"      -25 ERR" Return stack imbalance"  -21 ERR" Unsupported operation"
 -26 ERR" Loop parameters unavailable"   -27 ERR" Invalid recursion"  -22 ERR" Control structure mismatch"
 -28 ERR" User interupt"                 -29 ERR" Compiler nesting"  -23 ERR" Address alignment exception"
 -30 ERR" Obsolescent feature"           -31 ERR" >BODY used on non-CREATEd definition"  -24 ERR" Invalid numeric argument"
 -32 ERR" Invalid name argument"         -33 ERR" Block read exception"  -25 ERR" Return stack imbalance"
 -34 ERR" Block write exception"         -35 ERR" Invalid block number"  -26 ERR" Loop parameters unavailable"
 -36 ERR" Invalid file position"         -37 ERR" File I/O exception"  -27 ERR" Invalid recursion"
 -38 ERR" Non-existent file"             -39 ERR" Unexpected end of file"  -28 ERR" User interrupt"
   -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"  -40 ERR" Invalid BASE for floating point conversion"
 -41 ERR" Loss of precision"             -42 ERR" Floating-point divide by zero"  -41 ERR" Loss of precision"
   -42 ERR" Floating-point divide by zero"
 -43 ERR" Floating-point result out of range"  -43 ERR" Floating-point result out of range"
 -44 ERR" Floating-point stack overflow" -45 ERR" Floating-point stack underflow"  -44 ERR" Floating-point stack overflow"
   -45 ERR" Floating-point stack underflow"
 -46 ERR" Floating-point invalid argument"  -46 ERR" Floating-point invalid argument"
 -47 ERR" Compilation word list deleted" -48 ERR" invalid POSTPONE"  -47 ERR" Compilation word list deleted"
 -49 ERR" Search-order overflow"         -50 ERR" Search-order underflow"  -48 ERR" invalid POSTPONE"
 -51 ERR" Compilation word list changed" -52 ERR" Control-flow stack overflow"  -49 ERR" Search-order overflow"
 -53 ERR" Exception stack overflow"      -54 ERR" Floating-point underflow"  -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"  -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"  \ error numbers between -256 and -511 represent signals
 -257 ERR" Quit signal"  \ signals are handled with strsignal
 -258 ERR" Illegal Instruction"  \ but some signals produce throw-codes > -256, e.g., -28
 -259 ERR" Trace Trap"  
 -260 ERR" IOT instruction"  \ error numbers between -512 and -2047 are for OS errors and are
 -261 ERR" EMT instruction" \ abort() call?  \ handled with strerror
 -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
       dup -511 -255 within
       IF
           256 + negate strsignal type exit
       THEN
       dup -2047 -511 within
       IF
           512 + negate strerror type exit
       THEN
       . ;
   

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


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