/******* List of the Inherent Commands *********/
int cd         PROTO((int, char **));
int echo       PROTO((int, char **));
int exec_break PROTO((int, char **));
int exec_continue PROTO((int, char **));
int help       PROTO((int, char **));
int input      PROTO((int, char **));
int list_help  PROTO((int, char **));
int list_vars  PROTO((int, char **));
int macro      PROTO((int, char **));
int output     PROTO((int, char **));
int pwd        PROTO((int, char **));
int quit       PROTO((int, char **));
int run_while  PROTO((int, char **));
int run_for    PROTO((int, char **));
int run_if     PROTO((int, char **));
int list       PROTO((int, char **));
int scan       PROTO((int, char **));
int shell      PROTO((int, char **));
int wait       PROTO((int, char **));
int which      PROTO((int, char **));

/** mapping of the command names to command functions **/
static Command inherent[] = {  
  {"cd",      cd,                 "change directory"},
  {"echo",    echo,               "type this line *"},
  {"break",   exec_break,         "escape from function *"},
  {"continue",exec_continue,      "next loop iteration"},
  {"help",    help,               "get help on a function *"},
  {"input",   input,              "read command lines from a file *"},
  {"?",       list_help,          "list commands *"},
  {"??",      list_vars,          "list variables *"},
  {"list",    list,               "get variable list"},
  {"macro",   macro,              "deal with the macros *"}, 
  {"output",  output,             "redirect output to file"},
  {"pwd",     pwd,                "print current working directory"},
  {"exit",    quit,               "exit program *"}, 
  {"quit",    quit,               "exit program *"},
  {"while",   run_while,          "while loop"}, 
  {"for",     run_for,            "for loop"}, 
  {"if",      run_if,             "logical cases *"}, 
  {"scan",    scan,               "scan line from keyboard or file to variable *"},
  {"!",       shell,              "system call"},
  {"exec",    shell,              "system call"},
  {"wait",    wait,               "wait until return is typed"},
  {"which",   which,              "show command *"}
};
