Annotation of gforth/errore.fs, revision 1.4
1.1 anton 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
1.3 anton 13: string, align ;
1.1 anton 14:
15: decimal
16:
17: -1 ERR" Aborted"
1.2 anton 18: ErrLink @ unlock reloff lock \ make sure that the terminating 0 is not relocated
1.1 anton 19: -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"
1.2 anton 50: \ 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"
1.4 ! anton 64: \ error numbers between -512 and -2047 are for OS errors and are
! 65: \ handled with strerror
1.1 anton 66:
1.4 ! anton 67:
1.1 anton 68: : .error ( n -- )
1.4 ! anton 69: 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: dup -512 <= over -2048 > and
! 78: IF
! 79: 512 + negate strerror type exit
! 80: THEN
! 81: . ;
1.1 anton 82:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>