text: /* global.h:  The global variables for bc.  */
  
  /*  This file is part of bc written for MINIX.
      Copyright (C) 1991, 1992 Free Software Foundation, Inc.
  
      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License , or
      (at your option) any later version.
  
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
  
      You should have received a copy of the GNU General Public License
      along with this program; see the file COPYING.  If not, write to
      the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  
      You may contact the author by:
         e-mail:  phil@cs.wwu.edu
        us-mail:  Philip A. Nelson
                  Computer Science Department, 9062
                  Western Washington University
                  Bellingham, WA 98226-9062
         
  *************************************************************************/
  
  
  /* For the current "break level" and if statements. */
  EXTERN int break_label;
  EXTERN int if_label;
  EXTERN int continue_label;
  
  /* Label numbers. */
  EXTERN int next_label;
  
  /* Used for "code" generation. */
  EXTERN char genstr[80];
  EXTERN int out_count;
  EXTERN char did_gen;
  
  /* Interactive and other flags. */
  EXTERN char interactive;
  EXTERN char compile_only;
  EXTERN char use_math;
  EXTERN char warn_not_std;
  EXTERN char std_only;
  
  /* global variables for the bc machine. All will be dynamic in size.*/
  /* Function storage. main is (0) and functions (1-f_count) */
  
  EXTERN bc_function *functions;
  EXTERN char **f_names;
  EXTERN int  f_count;
  
  /* Variable stoarge and reverse names. */
  
  EXTERN bc_var **variables;
  EXTERN char **v_names;
  EXTERN int  v_count;
  
  /* Array Variable storage and reverse names. */
  
  EXTERN bc_var_array **arrays;
  EXTERN char **a_names;
  EXTERN int  a_count;
  
  /* Execution stack. */
  EXTERN estack_rec *ex_stack;
  
  /* Function return stack. */
  EXTERN fstack_rec *fn_stack;
  
  /* Other "storage". */
  EXTERN int i_base;
  EXTERN int o_base;
  EXTERN int scale;
  EXTERN char c_code;
  EXTERN int out_col;
  EXTERN char runtime_error;
  EXTERN program_counter pc;
  
  /* Input Line numbers and other error information. */
  EXTERN int line_no;
  EXTERN int had_error;
  
  /* For larger identifiers, a tree, and how many "storage" locations
     have been allocated. */
  
  EXTERN int next_array;
  EXTERN int next_func;
  EXTERN int next_var;
  
  EXTERN id_rec *name_tree;
  
  /* For error message production */
  EXTERN char **g_argv;
  EXTERN int    g_argc;
  EXTERN char   is_std_in;
  
  /* defined in number.c */
  extern bc_num _zero_;
  extern bc_num _one_;
  
  /* For use with getopt.  Do not declare them here.*/
  extern int optind;
  
  