/*************************************************************** bwb_tbl.c Command Table for Bywater BASIC Interpreter Copyright (c) 1992, Ted A. Campbell Bywater Software P. O. Box 4023 Duke Station Durham, NC 27706 email: tcamp@acpub.duke.edu Copyright and Permissions Information: All U.S. and international copyrights are claimed by the author. The author grants permission to use this code and software based on it under the following conditions: (a) in general, the code and software based upon it may be used by individuals and by non-profit organizations; (b) it may also be utilized by governmental agencies in any country, with the exception of military agencies; (c) the code and/or software based upon it may not be sold for a profit without an explicit and specific permission from the author, except that a minimal fee may be charged for media on which it is copied, and for copying and handling; (d) the code must be distributed in the form in which it has been released by the author; and (e) the code and software based upon it may not be used for illegal activities. ***************************************************************/ #include #include #include "bwbasic.h" #include "bwb_mes.h" int err_line = 0; /* line in which error occurred */ int err_number = 0; /* number of last error */ /*************************************************************** Command Table for Bywater BASIC ***************************************************************/ struct bwb_command bwb_cmdtable[ COMMANDS ] = { #if PERMANENT_DEBUG { "VARS", bwb_vars, 2 }, { "CMDS", bwb_cmds, 2 }, { "FNCS", bwb_fncs, 2 }, #endif #if UNIX_CMDS { "CHDIR", bwb_chdir, 2 }, { "MKDIR", bwb_mkdir, 2 }, { "RMDIR", bwb_rmdir, 2 }, { "KILL", bwb_kill, 2 }, { "ENVIRON", bwb_environ, 2 }, #endif { "SYSTEM", bwb_system, 2 }, { "REM", bwb_rem, 2 }, { "LET", bwb_let, 2 }, { "LIST", bwb_list, 2 }, { "LOAD", bwb_load, 2 }, { "MERGE", bwb_merge, 2 }, { "CHAIN", bwb_chain, 2 }, { "COMMON", bwb_common, 2 }, { "RUN", bwb_run, 2 }, { "PRINT", bwb_print, 2 }, { "SAVE", bwb_save, 2 }, { "INPUT", bwb_input, 2 }, { "GOTO", bwb_goto, 2 }, { "GOSUB", bwb_gosub, 2 }, { "RETURN", bwb_return, 2 }, { "ERROR", bwb_lerror, 2 }, { "ON", bwb_on, 2 }, { "IF", bwb_if, 2 }, { "WHILE", bwb_while, 2 }, { "WEND", bwb_wend, 2 }, { "WRITE", bwb_write, 2 }, { "WIDTH", bwb_width, 2 }, { "TRON", bwb_tron, 2 }, { "TROFF", bwb_troff, 2 }, { "END", bwb_xend, 2 }, { "NEW", bwb_new, 2 }, { "DELETE", bwb_delete, 2 }, { "FOR", bwb_for, 2 }, { "NEXT", bwb_next, 2 }, { "RANDOMIZE", bwb_randomize, 2 }, { "STOP", bwb_stop, 2 }, { "DATA", bwb_data, 2 }, { "READ", bwb_read, 2 }, { "RESTORE", bwb_restore, 2 }, { "DIM", bwb_dim, 2 }, { "OPTION", bwb_option, 2 }, { "OPEN", bwb_open, 2 }, { "CLOSE", bwb_close, 2 }, { "GET", bwb_get, 2 }, { "PUT", bwb_put, 2 }, { "NAME", bwb_name, 2 }, { "LSET", bwb_lset, 2 }, { "RSET", bwb_rset, 2 }, { "FIELD", bwb_field, 2 }, { "LINE", bwb_line, 2 }, { "DEFDBL", bwb_ddbl, 2 }, { "DEFINT", bwb_dint, 2 }, { "DEFSNG", bwb_dsng, 2 }, { "DEFSTR", bwb_dstr, 2 }, { "DEF", bwb_deffn, 2 }, { "CLEAR", bwb_clear, 2 }, { "ERASE", bwb_erase, 2 }, { "SWAP", bwb_swap, 2 } }; /* Error messages used more than once */ char err_openfile[] = ERR_OPENFILE; char err_getmem[] = ERR_GETMEM; char err_noln[] = ERR_NOLN; char err_nofn[] = ERR_NOFN; char err_lnnotfound[] = ERR_LNNOTFOUND; char err_incomplete[] = ERR_INCOMPLETE; char err_valoorange[] = ERR_VALOORANGE; char err_syntax[] = ERR_SYNTAX; char err_devnum[] = ERR_DEVNUM; char err_dev[] = ERR_DEV; char err_opsys[] = ERR_OPSYS; char err_argstr[] = ERR_ARGSTR; char err_defchar[] = ERR_DEFCHAR; char err_mismatch[] = ERR_MISMATCH; char err_dimnotarray[] =ERR_DIMNOTARRAY; char err_od[] = ERR_OD; char err_overflow[] = ERR_OVERFLOW; char err_nf[] = ERR_NF; char err_uf[] = ERR_UF; char err_dbz[] = ERR_DBZ; char err_redim[] = ERR_REDIM; char err_obdim[] = ERR_OBDIM; char err_uc[] = ERR_UC; /* error table */ char *err_table[ N_ERRORS ] = { err_openfile, err_getmem, err_noln, err_nofn, err_lnnotfound, err_incomplete, err_valoorange, err_syntax, err_devnum, err_dev, err_opsys, err_argstr, err_defchar, err_mismatch, err_dimnotarray, err_od, err_overflow, err_nf, err_uf, err_dbz, err_redim, err_obdim, err_uc };