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