home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_300
/
319_01
/
glb.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-06-18
|
3KB
|
94 lines
/*
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 */