X-Git-Url: https://git.distorted.org.uk/~mdw/ssr/blobdiff_plain/a3da4c116d4216fdec125d687dfc347e343a8b28..c1b567d833a004bb3d978f1f7c99f42cefa7845c:/StraySrc/Libraries/Sapphire/sail/errgen.bas diff --git a/StraySrc/Libraries/Sapphire/sail/errgen.bas b/StraySrc/Libraries/Sapphire/sail/errgen.bas new file mode 100644 index 0000000..1a37cba --- /dev/null +++ b/StraySrc/Libraries/Sapphire/sail/errgen.bas @@ -0,0 +1,167 @@ +REM >ErrorGen +REM +REM Generation of error tables +REM +REM © 1995 Straylight +REM + +ON ERROR PRINTREPORT$;" ["+STR$ERL+"]":CLOSE #0:END + +DIM errMsg$(256),errName$(256) +tab$=CHR$(9) + +REM --- Generate the token table --- + +RESTORE +curr%=0 +READ errMsg$(curr%),errName$(curr%) +WHILE errMsg$(curr%)<>"***" + curr%+=1 + READ errMsg$(curr%),errName$(curr%) +ENDWHILE + +C=OPENOUT("sh.errTable") +BPUT#C,";" +BPUT#C,"; errTable.sh" +BPUT#C,";" +BPUT#C,"; Define error messages table (generated)" +BPUT#C,";" +BPUT#C,"; © 1995 Straylight" +BPUT#C,";" +BPUT#C,"" +BPUT#C,tab$+tab$+"["+tab$+":LNOT::DEF:errTable__dfn" +BPUT#C,tab$+tab$+"GBLL"+tab$+"errTable__dfn" +BPUT#C,"" + +curr%=0 +BPUT#C,"errTable" +WHILE errMsg$(curr%)<>"***" + BPUT#C,tab$+tab$+"DCD"+tab$+"err__msg"+STR$curr%+"-errTable" + curr%+=1 +ENDWHILE +BPUT#C,"" + +curr%=0 +WHILE errMsg$(curr%)<>"***" + BPUT#C,"err__msg"+STR$curr%+tab$+"DCB"+tab$+""""+errMsg$(curr%)+""",0" + curr%+=1 +ENDWHILE +BPUT#C,"" +BPUT#C,tab$+tab$+"]" +BPUT#C,"" +BPUT#C,tab$+tab$+"END" +CLOSE#C +OSCLI "Settype sh.errTable FFF" + +REM -- Generate the error numbers --- + +RESTORE +C=OPENOUT("sh.errNum") +BPUT#C,";" +BPUT#C,"; errNum.sh" +BPUT#C,";" +BPUT#C,"; Define error numbers (generated)" +BPUT#C,";" +BPUT#C,"; © 1995 Straylight" +BPUT#C,";" +BPUT#C,"" +BPUT#C,tab$+tab$+"["+tab$+":LNOT::DEF:errNum__dfn" +BPUT#C,tab$+tab$+"GBLL"+tab$+"errNum__dfn" +BPUT#C,"" + +curr%=0 +BPUT#C,tab$+tab$+"^"+tab$+"0" +WHILE errMsg$(curr%)<>"***" + BPUT#C,errName$(curr%); + IF LEN(errName$(curr%))>7 THEN BPUT#C,tab$; ELSE BPUT#C,tab$+tab$; + BPUT#C,"#"+tab$+"1" + curr%+=1 +ENDWHILE +BPUT#C,"" +BPUT#C,tab$+tab$+"]" +BPUT#C,"" +BPUT#C,tab$+tab$+"END" +CLOSE#C +OSCLI "Settype sh.errNum FFF" + +END + +DATA "Type mismatch: Number needed",err_numNeeded +DATA "Type mismatch: String needed",err_strNeeded +DATA "Whole array reference is invalid in this context",err_arrayBad +DATA "Missing )",err_expBracket +DATA "Missing #",err_expHash +DATA "Missing """"",err_expQuote +DATA "Missing =",err_expEq +DATA "Missing ,",err_expComma +DATA "Bad hex",err_badHex +DATA "Bad binary",err_badBinary +DATA "Unknown or missing variable",err_unknown +DATA "Division by zero",err_divZero +DATA "Out of memory",err_noMem +DATA "Syntax error",err_syntax +DATA "Mistake",err_mistake +DATA "String too long",err_strTooLong + +DATA "Missing = in FOR",err_eqInFor +DATA "Bad FOR control variable",err_badForVar +DATA "Missing TO",err_expTo +DATA "The step cannot be zero",err_zStep +DATA "Not in a FOR loop",err_noFor + +DATA "Not in a REPEAT loop",err_noRepeat + +DATA "Missing ENDWHILE",err_expEndwhile +DATA "Not in a WHILE loop",err_noWhile + +DATA "Missing ENDIF",err_expEndif + +DATA "Missing OF",err_expOf +DATA "CASE..OF statement must be the last thing on a line",err_afterCase +DATA "Missing ENDCASE",err_expEndcase + +DATA "Missing label",err_expLabel +DATA "Unknown label",err_noLabel + +DATA "Bad DIM statement",err_badDim +DATA "No end of dimension list )",err_dimKet +DATA "Arrays cannot be redimensioned",err_reDim +DATA "Incorrect number of subscripts",err_numSubs +DATA "Subscript out of range",err_subRange +DATA "Unknown array",err_ukArray + +DATA "Can't use RGET while in a WATCHFOR state",err_rgetInWatch +DATA "Can't use RGET$ while in a WATCHFOR state",err_rgetSInWatch +DATA "Can't use LGET while in a WATCHFOR state",err_lgetInWatch +DATA "Can't use LGET$ while in a WATCHFOR state",err_lgetSInWatch +DATA "Can't use RINKEY while in a WATCHFOR state",err_rinkeyInWatch +DATA "Can't use RINKEY$ while in a WATCHFOR state",err_rinkeySInWatch +DATA "Can't use LINKEY while in a WATCHFOR state",err_linkeyInWatch +DATA "Can't use LINKEY$ while in a WATCHFOR state",err_linkeySInWatch + +DATA "Wrong number of arguments passed to STRING$",err_stringSArgs +DATA "Wrong number of arguments passed to LEFT$",err_leftSArgs +DATA "Wrong number of arguments passed to RIGHT$",err_rightSArgs +DATA "Wrong number of arguments passed to MID$",err_midSArgs +DATA "Wrong number of arguments passed to INSTR",err_instrSArgs + +DATA "Arguments of function/procedure incorrect",err_badArgs +DATA "No such function/procedure",err_noProc +DATA "Bad call of function/procedure",err_badCall + +DATA "Not in a subroutine",err_notInSub +DATA "Not in a procedure",err_notInProc +DATA "Not in a function",err_notInFn + +DATA "Too many strings passed to WATCHFOR",err_WFTooMany + +DATA "Too many input parameters to SYS/SYSCALL",err_sysTooManyI +DATA "Too many output parameters to SYS/SYSCALL",err_sysTooManyO + +DATA "Out of DATA",err_outOfDATA + +DATA "mem_realloc not implemented",err_realloc +DATA "Not yet implemented",err_lazy +DATA "The script interpreter has gone wrong",err_erk +DATA ***,*** +