Category : C Source Code
Archive   : SHERLOCK.ZIP
Filename : GLB.H

 
Output of file : GLB.H contained in archive : SHERLOCK.ZIP

/*
CPP V5 -- global header for variables.

Source: glb.h
Started: June 20, 1986
Version: May 21, 1988; August 1, 1989

Written by Edward K. Ream.
This software is in the public domain.

See the read.me file for disclaimer and other information.
*/

/*
Constants describing limits.
*/
#define MAX_SYMBOL 1000 /* Max len of symbols/strings. */
#define MAX_FILE_NAME 50 /* Maximum length of file names. */
#define MAX_IF 50 /* Max nesting level of #if's. */
#define MAX_PATHS 20 /* Max number of -s args. */
#define MAX_RTEXT 1000 /* Max chars in replacement string. */
#define MAX_ATEXT 1000 /* Max total chars in actual args. */
#define MAX_NARGS 50 /* Max number of macro arguments. */
#define MAX_MDEPTH 100 /* Max depth of macro expansions. */
#define MAX_INCLUDE MAX_MDEPTH+20

/*
Exclude the rest if glb.c is the file including this file.
*/
#ifndef no_extern

/*
============= global variables =============
*/

/*
The next character of input.
*/
extern char ch; /* The NEXT character. */


/*
User Flags.
*/
extern bool nest_flag; /* TRUE = allow nested comments. */
extern bool com_flag; /* TRUE = leave comments in output. */
extern bool slc_flag; /* TRUE = allow single-line comments. */

/*
Globals for macro expansion.
p_rescan and m_flag are used by sysnext().
*/
extern bool m_flag; /* TRUE if expanding a macro. */
extern char macro_buf[MAX_RTEXT]; /* Final macro buffer. */
extern char * p_rescan; /* Pointer into rescan_buf[]. */


/*
Globals describing tokens.

The code assumes that no token or string will ever be longer than
MAX_SYMBOL. If that ever is not so the program may crash. Thus,
MAX_SYMBOL should be very large -- say 1000 or more.
*/
extern en_tokens token; /* The current token. */
extern int t_subtype; /* The subtype of token class. */
extern char t_symbol [MAX_SYMBOL]; /* The spelling of the token. */
extern int t_length; /* The length of the token (in the text)*/
extern long t_value; /* Value of integer constants. */

/*
The following globals are set ONLY by the system module and
used by the preprocessor.
*/
extern char * t_file; /* Name of current input file. */
extern int t_line; /* Line number within file. */
extern int t_inlevel; /* Current input file level. */

/*
Globals for use internally to the token routines.
*/
extern bool t_ifstack [MAX_IF]; /* Stack for nexted #if's */
extern int t_iflevel; /* Nexting depth of #if's */
extern long t_errcount; /* Number of errors seen. */

/*
Defines for the path table.
This table is used to search for #include files.
*/
extern char * paths [MAX_PATHS]; /* Pointers to path names. */
extern int n_paths; /* Number of paths defined. */

#endif /* no_extern */