| /* 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; |
| |