home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / interpre / bwbasic / source / bwb_tbl.c < prev    next >
C/C++ Source or Header  |  1992-10-27  |  6KB  |  176 lines

  1. /***************************************************************
  2.  
  3.         bwb_tbl.c       Command Table
  4.                         for Bywater BASIC Interpreter
  5.  
  6.                         Copyright (c) 1992, Ted A. Campbell
  7.  
  8.                         Bywater Software
  9.                         P. O. Box 4023
  10.                         Duke Station
  11.                         Durham, NC  27706
  12.  
  13.                         email: tcamp@acpub.duke.edu
  14.  
  15.         Copyright and Permissions Information:
  16.  
  17.         All U.S. and international copyrights are claimed by the
  18.         author. The author grants permission to use this code
  19.         and software based on it under the following conditions:
  20.         (a) in general, the code and software based upon it may be
  21.         used by individuals and by non-profit organizations; (b) it
  22.         may also be utilized by governmental agencies in any country,
  23.         with the exception of military agencies; (c) the code and/or
  24.         software based upon it may not be sold for a profit without
  25.         an explicit and specific permission from the author, except
  26.         that a minimal fee may be charged for media on which it is
  27.         copied, and for copying and handling; (d) the code must be
  28.         distributed in the form in which it has been released by the
  29.         author; and (e) the code and software based upon it may not
  30.         be used for illegal activities.
  31.  
  32. ***************************************************************/
  33.  
  34. #include <stdio.h>
  35. #include <stdlib.h>
  36.  
  37. #include "bwbasic.h"
  38. #include "bwb_mes.h"
  39.  
  40. int err_line = 0;            /* line in which error occurred */
  41. int err_number = 0;            /* number of last error */
  42.  
  43. /***************************************************************
  44.  
  45.         Command Table for Bywater BASIC
  46.  
  47. ***************************************************************/
  48.  
  49. struct bwb_command bwb_cmdtable[ COMMANDS ] =
  50.    {
  51.  
  52.       #if PERMANENT_DEBUG
  53.       { "VARS",         bwb_vars,        2 },
  54.       { "CMDS",         bwb_cmds,        2 },
  55.       { "FNCS",         bwb_fncs,        2 },
  56.       #endif
  57.  
  58.       #if DIRECTORY_CMDS
  59.       { "CHDIR",        bwb_chdir,       2 },
  60.       { "MKDIR",        bwb_mkdir,       2 },
  61.       { "RMDIR",        bwb_rmdir,       2 },
  62.       #endif
  63.  
  64.       { "SYSTEM",       bwb_system,      2 },
  65.       { "REM",          bwb_rem,         2 },
  66.       { "LET",          bwb_let,         2 },
  67.       { "LIST",         bwb_list,        2 },
  68.       { "LOAD",         bwb_load,        2 },
  69.       { "MERGE",        bwb_merge,       2 },
  70.       { "CHAIN",        bwb_chain,       2 },
  71.       { "COMMON",       bwb_common,      2 },
  72.       { "RUN",          bwb_run,         2 },
  73.       { "PRINT",        bwb_print,       2 },
  74.       { "SAVE",         bwb_save,        2 },
  75.       { "INPUT",        bwb_input,       2 },
  76.       { "GOTO",         bwb_goto,        2 },
  77.       { "GOSUB",        bwb_gosub,       2 },
  78.       { "RETURN",       bwb_return,      2 },
  79.       { "ERROR",        bwb_lerror,      2 },
  80.       { "ON",           bwb_on,          2 },
  81.       { "IF",           bwb_if,          2 },
  82.       { "WHILE",        bwb_while,       2 },
  83.       { "WEND",         bwb_wend,        2 },
  84.       { "WRITE",        bwb_write,       2 },
  85.       { "WIDTH",        bwb_width,       2 },
  86.       { "TRON",         bwb_tron,        2 },
  87.       { "TROFF",        bwb_troff,       2 },
  88.       { "END",          bwb_xend,        2 },
  89.       { "NEW",          bwb_new,         2 },
  90.       { "DELETE",       bwb_delete,      2 },
  91.       { "FOR",          bwb_for,         2 },
  92.       { "NEXT",         bwb_next,        2 },
  93.       { "RANDOMIZE",    bwb_randomize,   2 },
  94.       { "STOP",         bwb_stop,        2 },
  95.       { "DATA",         bwb_data,        2 },
  96.       { "READ",         bwb_read,        2 },
  97.       { "RESTORE",      bwb_restore,     2 },
  98.       { "DIM",          bwb_dim,         2 },
  99.       { "OPTION",       bwb_option,      2 },
  100.       { "OPEN",         bwb_open,        2 },
  101.       { "CLOSE",        bwb_close,       2 },
  102.       { "GET",          bwb_get,         2 },
  103.       { "PUT",          bwb_put,         2 },
  104.       { "KILL",         bwb_kill,        2 },
  105.       { "NAME",         bwb_name,        2 },
  106.       { "LSET",         bwb_lset,        2 },
  107.       { "RSET",         bwb_rset,        2 },
  108.       { "FIELD",        bwb_field,       2 },
  109.       { "LINE",         bwb_line,        2 },
  110.       { "DEFDBL",       bwb_ddbl,        2 },
  111.       { "DEFINT",       bwb_dint,        2 },
  112.       { "DEFSNG",       bwb_dsng,        2 },
  113.       { "DEFSTR",       bwb_dstr,        2 },
  114.       { "DEF",          bwb_deffn,       2 },
  115.       { "CLEAR",        bwb_clear,       2 },
  116.       { "ERASE",        bwb_erase,       2 },
  117.       { "ENVIRON",      bwb_environ,     2 },
  118.       { "SWAP",         bwb_swap,        2 }
  119.    };
  120.  
  121. /* Error messages used more than once */
  122.  
  123. char err_openfile[] =   ERR_OPENFILE;
  124. char err_getmem[] =     ERR_GETMEM;
  125. char err_noln[] =       ERR_NOLN;
  126. char err_nofn[] =       ERR_NOFN;
  127. char err_lnnotfound[] = ERR_LNNOTFOUND;
  128. char err_incomplete[] = ERR_INCOMPLETE;
  129. char err_valoorange[] = ERR_VALOORANGE;
  130. char err_syntax[] =     ERR_SYNTAX;
  131. char err_devnum[] =     ERR_DEVNUM;
  132. char err_dev[] =        ERR_DEV;
  133. char err_opsys[] =    ERR_OPSYS;
  134. char err_argstr[] =     ERR_ARGSTR;
  135. char err_defchar[] =     ERR_DEFCHAR;
  136. char err_mismatch[] =    ERR_MISMATCH;
  137. char err_dimnotarray[] =ERR_DIMNOTARRAY;
  138. char err_od[] =         ERR_OD;
  139. char err_overflow[] =   ERR_OVERFLOW;
  140. char err_nf[] =         ERR_NF;
  141. char err_uf[] =         ERR_UF;
  142. char err_dbz[] =        ERR_DBZ;
  143. char err_redim[] =      ERR_REDIM;
  144. char err_obdim[] =      ERR_OBDIM;
  145. char err_uc[] =     ERR_UC;
  146.  
  147. /* error table */
  148.  
  149. char *err_table[ N_ERRORS ] = 
  150.    {
  151.    err_openfile,
  152.    err_getmem,
  153.    err_noln,
  154.    err_nofn,
  155.    err_lnnotfound,
  156.    err_incomplete,
  157.    err_valoorange,
  158.    err_syntax,
  159.    err_devnum,
  160.    err_dev,
  161.    err_opsys,
  162.    err_argstr,
  163.    err_defchar,
  164.    err_mismatch,
  165.    err_dimnotarray,
  166.    err_od,
  167.    err_overflow,
  168.    err_nf,
  169.    err_uf,
  170.    err_dbz,
  171.    err_redim,
  172.    err_obdim,
  173.    err_uc 
  174.    };
  175.  
  176.