/*
    This file is part of the FElt finite element analysis package.
    Copyright (C) 1993-2000 Jason I. Gobat and Darren C. Atkinson

    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; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

/************************************************************************
 * File:	globals.h						*
 *									*
 * Description:	This file contains the function and variable		*
 *		declarations for the global symbols.  Global symbols	*
 *		include string and numeric literals and variables that	*
 *		are within the global scope.				*
 ************************************************************************/

# ifndef _GLOBALS_H
# define _GLOBALS_H
# include "symbol.h"		/* symbol table and symbol table entry types */
# include "descriptor.h"	/* descriptor type			     */


/* Symbol tables for global variables (local variables are on the stack),
   string literals, numeric literals, and record fields. */

extern st var_st;			/* global variable symbol table	  */
extern st str_st;			/* string literal symbol table	  */
extern st dbl_st;			/* double literal symbol table	  */
extern st field_st;			/* record field symbol table	  */
extern st import_st;			/* imported variable symbol table */

extern unsigned var_array_size;		/* size of global variable array  */
extern unsigned str_array_size;		/* size of string literal array	  */
extern unsigned dbl_array_size;		/* size of double literal array	  */

extern descriptor *var_array;		/* array of global variables	  */
extern char	 **str_array;		/* array of string literals	  */
extern double	  *dbl_array;		/* array of double literals	  */


extern ste *add_literal PROTO ((st *, char *, Opcode));
extern void global_init PROTO ((void));
extern int  is_global   PROTO ((descriptor *));

# endif /* _GLOBALS_H */


syntax highlighted by Code2HTML, v. 0.9.1