Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

/*
        CPP V5 -- global variable definitions.

        Source:  glb.c
        Started: April 2, 1986
        Version: January 20, 1988; May 21, 1988

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

        See the read.me file for disclaimer and other information.
*/
#define no_extern 1
#include "cpp.h"

/*
        ========= increase stack size ========
*/
#ifdef TURBOC
extern unsigned _stklen = 0xf000;
#endif

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

/*
        The variable ch should be allocated a register if possible.
*/
char    ch = '@';               /* The NEXT character.                  */

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

/*
        ----- PREPROCESSOR AND TOKENS -----
*/
bool    m_flag  = FALSE;        /* TRUE if expanding a macro.   */
char    macro_buf[MAX_RTEXT];   /* Final macro buffer.          */
char *  p_rescan;               /* Pointer into rescan_buf[].   */

long    t_errcount = 0;         /* Number of errors seen.               */

/*
        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.
*/
en_tokens
        token = NULL_TOK;       /* The token itself or it's class.      */
char    t_symbol [MAX_SYMBOL];  /* The spelling of the token.           */
int     t_length;               /* The length of the token (in the text)*/
long    t_value;                /* Value of integer constants.          */
int     t_subtype;              /* The subtype of token class.          */

/*
        The following globals are set ONLY by the system module.
        They are picked up and used by the preprocessor and the
        parser.
*/
char *  t_file    = NULL;       /* Name of current input file.  */
int     t_line    = 0;          /* Line number within file.     */
int     t_inlevel = -1;         /* Current input file level.    */

/*
        Globals for use internally to the token routines.
*/
bool    t_ifstack [MAX_IF];     /* Stack for nexted #if's       */
int     t_iflevel  = 0;         /* Nesting depth of #if's       */

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