Create readable text `.bas' for each tokenized BASIC `,ffb' file.
[ssr] / StraySrc / Libraries / Sapphire / sail / errgen.bas
1 REM >ErrorGen
2 REM
3 REM Generation of error tables
4 REM
5 REM © 1995 Straylight
6 REM
7
8 ON ERROR PRINTREPORT$;" ["+STR$ERL+"]":CLOSE #0:END
9
10 DIM errMsg$(256),errName$(256)
11 tab$=CHR$(9)
12
13 REM --- Generate the token table ---
14
15 RESTORE
16 curr%=0
17 READ errMsg$(curr%),errName$(curr%)
18 WHILE errMsg$(curr%)<>"***"
19 curr%+=1
20 READ errMsg$(curr%),errName$(curr%)
21 ENDWHILE
22
23 C=OPENOUT("sh.errTable")
24 BPUT#C,";"
25 BPUT#C,"; errTable.sh"
26 BPUT#C,";"
27 BPUT#C,"; Define error messages table (generated)"
28 BPUT#C,";"
29 BPUT#C,"; © 1995 Straylight"
30 BPUT#C,";"
31 BPUT#C,""
32 BPUT#C,tab$+tab$+"["+tab$+":LNOT::DEF:errTable__dfn"
33 BPUT#C,tab$+tab$+"GBLL"+tab$+"errTable__dfn"
34 BPUT#C,""
35
36 curr%=0
37 BPUT#C,"errTable"
38 WHILE errMsg$(curr%)<>"***"
39 BPUT#C,tab$+tab$+"DCD"+tab$+"err__msg"+STR$curr%+"-errTable"
40 curr%+=1
41 ENDWHILE
42 BPUT#C,""
43
44 curr%=0
45 WHILE errMsg$(curr%)<>"***"
46 BPUT#C,"err__msg"+STR$curr%+tab$+"DCB"+tab$+""""+errMsg$(curr%)+""",0"
47 curr%+=1
48 ENDWHILE
49 BPUT#C,""
50 BPUT#C,tab$+tab$+"]"
51 BPUT#C,""
52 BPUT#C,tab$+tab$+"END"
53 CLOSE#C
54 OSCLI "Settype sh.errTable FFF"
55
56 REM -- Generate the error numbers ---
57
58 RESTORE
59 C=OPENOUT("sh.errNum")
60 BPUT#C,";"
61 BPUT#C,"; errNum.sh"
62 BPUT#C,";"
63 BPUT#C,"; Define error numbers (generated)"
64 BPUT#C,";"
65 BPUT#C,"; © 1995 Straylight"
66 BPUT#C,";"
67 BPUT#C,""
68 BPUT#C,tab$+tab$+"["+tab$+":LNOT::DEF:errNum__dfn"
69 BPUT#C,tab$+tab$+"GBLL"+tab$+"errNum__dfn"
70 BPUT#C,""
71
72 curr%=0
73 BPUT#C,tab$+tab$+"^"+tab$+"0"
74 WHILE errMsg$(curr%)<>"***"
75 BPUT#C,errName$(curr%);
76 IF LEN(errName$(curr%))>7 THEN BPUT#C,tab$; ELSE BPUT#C,tab$+tab$;
77 BPUT#C,"#"+tab$+"1"
78 curr%+=1
79 ENDWHILE
80 BPUT#C,""
81 BPUT#C,tab$+tab$+"]"
82 BPUT#C,""
83 BPUT#C,tab$+tab$+"END"
84 CLOSE#C
85 OSCLI "Settype sh.errNum FFF"
86
87 END
88
89 DATA "Type mismatch: Number needed",err_numNeeded
90 DATA "Type mismatch: String needed",err_strNeeded
91 DATA "Whole array reference is invalid in this context",err_arrayBad
92 DATA "Missing )",err_expBracket
93 DATA "Missing #",err_expHash
94 DATA "Missing """"",err_expQuote
95 DATA "Missing =",err_expEq
96 DATA "Missing ,",err_expComma
97 DATA "Bad hex",err_badHex
98 DATA "Bad binary",err_badBinary
99 DATA "Unknown or missing variable",err_unknown
100 DATA "Division by zero",err_divZero
101 DATA "Out of memory",err_noMem
102 DATA "Syntax error",err_syntax
103 DATA "Mistake",err_mistake
104 DATA "String too long",err_strTooLong
105
106 DATA "Missing = in FOR",err_eqInFor
107 DATA "Bad FOR control variable",err_badForVar
108 DATA "Missing TO",err_expTo
109 DATA "The step cannot be zero",err_zStep
110 DATA "Not in a FOR loop",err_noFor
111
112 DATA "Not in a REPEAT loop",err_noRepeat
113
114 DATA "Missing ENDWHILE",err_expEndwhile
115 DATA "Not in a WHILE loop",err_noWhile
116
117 DATA "Missing ENDIF",err_expEndif
118
119 DATA "Missing OF",err_expOf
120 DATA "CASE..OF statement must be the last thing on a line",err_afterCase
121 DATA "Missing ENDCASE",err_expEndcase
122
123 DATA "Missing label",err_expLabel
124 DATA "Unknown label",err_noLabel
125
126 DATA "Bad DIM statement",err_badDim
127 DATA "No end of dimension list )",err_dimKet
128 DATA "Arrays cannot be redimensioned",err_reDim
129 DATA "Incorrect number of subscripts",err_numSubs
130 DATA "Subscript out of range",err_subRange
131 DATA "Unknown array",err_ukArray
132
133 DATA "Can't use RGET while in a WATCHFOR state",err_rgetInWatch
134 DATA "Can't use RGET$ while in a WATCHFOR state",err_rgetSInWatch
135 DATA "Can't use LGET while in a WATCHFOR state",err_lgetInWatch
136 DATA "Can't use LGET$ while in a WATCHFOR state",err_lgetSInWatch
137 DATA "Can't use RINKEY while in a WATCHFOR state",err_rinkeyInWatch
138 DATA "Can't use RINKEY$ while in a WATCHFOR state",err_rinkeySInWatch
139 DATA "Can't use LINKEY while in a WATCHFOR state",err_linkeyInWatch
140 DATA "Can't use LINKEY$ while in a WATCHFOR state",err_linkeySInWatch
141
142 DATA "Wrong number of arguments passed to STRING$",err_stringSArgs
143 DATA "Wrong number of arguments passed to LEFT$",err_leftSArgs
144 DATA "Wrong number of arguments passed to RIGHT$",err_rightSArgs
145 DATA "Wrong number of arguments passed to MID$",err_midSArgs
146 DATA "Wrong number of arguments passed to INSTR",err_instrSArgs
147
148 DATA "Arguments of function/procedure incorrect",err_badArgs
149 DATA "No such function/procedure",err_noProc
150 DATA "Bad call of function/procedure",err_badCall
151
152 DATA "Not in a subroutine",err_notInSub
153 DATA "Not in a procedure",err_notInProc
154 DATA "Not in a function",err_notInFn
155
156 DATA "Too many strings passed to WATCHFOR",err_WFTooMany
157
158 DATA "Too many input parameters to SYS/SYSCALL",err_sysTooManyI
159 DATA "Too many output parameters to SYS/SYSCALL",err_sysTooManyO
160
161 DATA "Out of DATA",err_outOfDATA
162
163 DATA "mem_realloc not implemented",err_realloc
164 DATA "Not yet implemented",err_lazy
165 DATA "The script interpreter has gone wrong",err_erk
166 DATA ***,***
167