[gforth] / gforth / Attic / errore.fs  

gforth: gforth/Attic/errore.fs


1 : anton 1.1 \ ERRORE.FS English error strings 9may93jaw
2 :    
3 :     \ The errors are defined by a linked list, for easy adding
4 :     \ and deleting. Speed is not neccassary at this point.
5 :    
6 :     AVARIABLE ErrLink \ Linked list entry point
7 :     0 ErrLink !
8 :    
9 :     : ERR" ( n -- )
10 :     ErrLink linked
11 :     ,
12 :     [char] " word count
13 : anton 1.3 string, align ;
14 : anton 1.1
15 :     decimal
16 :    
17 :     -1 ERR" Aborted"
18 : anton 1.2 ErrLink @ unlock reloff lock \ make sure that the terminating 0 is not relocated
19 : anton 1.1 -3 ERR" Stack overflow" -4 ERR" Stack underflow"
20 :     -5 ERR" Return stack overflow" -6 ERR" Return stack undeflow"
21 :     -7 ERR" Do-loops nested too deeply" -8 ERR" Dictionary overflow"
22 :     -9 ERR" Invalid memory address" -10 ERR" Division by zero"
23 :     -11 ERR" Result out of range" -12 ERR" Argument type mismatch"
24 :     -13 ERR" Undefined word" -14 ERR" Interpreting a compile-only word"
25 :     -15 ERR" Invalid FORGET" -16 ERR" Attempt to use zero-length string as a name"
26 :     -17 ERR" Pictured numeric ouput string overflow"
27 :     -18 ERR" Parsed string overflow" -19 ERR" Word name too long"
28 :     -20 ERR" Write to a read-only location" -21 ERR" Unsupported operation"
29 :     -22 ERR" Control structure mismatch" -23 ERR" Address alignment exception"
30 :     -24 ERR" Invalid numeric argument" -25 ERR" Return stack imbalance"
31 :     -26 ERR" Loop parameters unavailable" -27 ERR" Invalid recursion"
32 :     -28 ERR" User interupt" -29 ERR" Compiler nesting"
33 :     -30 ERR" Obsolescent feature" -31 ERR" >BODY used on non-CREATEd definition"
34 :     -32 ERR" Invalid name argument" -33 ERR" Block read exception"
35 :     -34 ERR" Block write exception" -35 ERR" Invalid block number"
36 :     -36 ERR" Invalid file position" -37 ERR" File I/O exception"
37 :     -38 ERR" Non-existent file" -39 ERR" Unexpected end of file"
38 :     -40 ERR" Invalid BASE for floating point conversion"
39 :     -41 ERR" Loss of precision" -42 ERR" Floating-point divide by zero"
40 :     -43 ERR" Floating-point result out of range"
41 :     -44 ERR" Floating-point stack overflow" -45 ERR" Floating-point stack underflow"
42 :     -46 ERR" Floating-point invalid argument"
43 :     -47 ERR" Compilation word list deleted" -48 ERR" invalid POSTPONE"
44 :     -49 ERR" Search-order overflow" -50 ERR" Search-order underflow"
45 :     -51 ERR" Compilation word list changed" -52 ERR" Control-flow stack overflow"
46 :     -53 ERR" Exception stack overflow" -54 ERR" Floating-point underflow"
47 :     -55 ERR" Floating-point unidentified fault"
48 :     -56 ERR" QUIT" -57 ERR" Error in sending or receiving a character"
49 :     -58 ERR" [IF], [ELSE], [THEN] error"
50 : anton 1.2 \ signals: ( We list them all, execpt those already present, just in case )
51 :     -256 ERR" Hangup signal"
52 :     -257 ERR" Quit signal"
53 :     -258 ERR" Illegal Instruction"
54 :     -259 ERR" Trace Trap"
55 :     -260 ERR" IOT instruction"
56 :     -261 ERR" EMT instruction" \ abort() call?
57 :     -262 ERR" Kill signal" \ cannot be caught but so what
58 :     -263 ERR" Bad arg to system call"
59 :     -264 ERR" Broken pipe"
60 :     -265 ERR" Alarm signal"
61 :     -266 ERR" Terminate signal"
62 :     -267 ERR" User signal 1"
63 :     -268 ERR" User signal 2"
64 : anton 1.4 \ error numbers between -512 and -2047 are for OS errors and are
65 :     \ handled with strerror
66 : anton 1.1
67 : anton 1.4
68 : anton 1.1 : .error ( n -- )
69 : anton 1.4 cr ." Error: "
70 :     ErrLink
71 :     BEGIN @ dup
72 :     WHILE
73 :     2dup cell+ @ =
74 :     IF 2 cells + count type drop exit THEN
75 :     REPEAT
76 :     drop
77 : anton 1.5 dup -2047 -511 within
78 : anton 1.4 IF
79 :     512 + negate strerror type exit
80 :     THEN
81 :     . ;
82 : anton 1.1

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help