Blame pccts/h/antlr.h

Packit Service 3e823c
/* antlr.h 
Packit Service 3e823c
 *
Packit Service 3e823c
 * SOFTWARE RIGHTS
Packit Service 3e823c
 *
Packit Service 3e823c
 * We reserve no LEGAL rights to the Purdue Compiler Construction Tool
Packit Service 3e823c
 * Set (PCCTS) -- PCCTS is in the public domain.  An individual or
Packit Service 3e823c
 * company may do whatever they wish with source code distributed with
Packit Service 3e823c
 * PCCTS or the code generated by PCCTS, including the incorporation of
Packit Service 3e823c
 * PCCTS, or its output, into commerical software.
Packit Service 3e823c
 *
Packit Service 3e823c
 * We encourage users to develop software with PCCTS.  However, we do ask
Packit Service 3e823c
 * that credit is given to us for developing PCCTS.  By "credit",
Packit Service 3e823c
 * we mean that if you incorporate our source code into one of your
Packit Service 3e823c
 * programs (commercial product, research project, or otherwise) that you
Packit Service 3e823c
 * acknowledge this fact somewhere in the documentation, research report,
Packit Service 3e823c
 * etc...  If you like PCCTS and have developed a nice tool with the
Packit Service 3e823c
 * output, please mention that you developed it using PCCTS.  In
Packit Service 3e823c
 * addition, we ask that this header remain intact in our source code.
Packit Service 3e823c
 * As long as these guidelines are kept, we expect to continue enhancing
Packit Service 3e823c
 * this system and expect to make other tools available as they are
Packit Service 3e823c
 * completed.
Packit Service 3e823c
 *
Packit Service 3e823c
 * ANTLR 1.33
Packit Service 3e823c
 * Terence Parr
Packit Service 3e823c
 * Parr Research Corporation
Packit Service 3e823c
 * with Purdue University and AHPCRC, University of Minnesota
Packit Service 3e823c
 * 1989-2000
Packit Service 3e823c
 */
Packit Service 3e823c
Packit Service 3e823c
#ifndef ANTLR_H
Packit Service 3e823c
#define ANTLR_H
Packit Service 3e823c
Packit Service 3e823c
#include "pcctscfg.h"
Packit Service 3e823c
Packit Service 3e823c
#include "pccts_stdio.h"
Packit Service 3e823c
Packit Service 3e823c
/* turn off warnings for unreferenced labels */
Packit Service 3e823c
Packit Service 3e823c
#ifdef _MSC_VER
Packit Service 3e823c
#pragma warning(disable:4102)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/*
Packit Service 3e823c
 * Define all of the stack setup and manipulation of $i, #i variables.
Packit Service 3e823c
 *
Packit Service 3e823c
 *	Notes:
Packit Service 3e823c
 *		The type 'Attrib' must be defined before entry into this .h file.
Packit Service 3e823c
 */
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
#include "pccts_stdlib.h"
Packit Service 3e823c
#else
Packit Service 3e823c
#ifdef VAXC
Packit Service 3e823c
#include <stdlib.h>
Packit Service 3e823c
#else
Packit Service 3e823c
#include <malloc.h>
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
#include "pccts_string.h"
Packit Service 3e823c
Packit Service 3e823c
#if 0
Packit Service 3e823c
#include "set.h"
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
typedef int ANTLRTokenType;
Packit Service 3e823c
typedef unsigned char SetWordType;
Packit Service 3e823c
Packit Service 3e823c
typedef char ANTLRChar;
Packit Service 3e823c
Packit Service 3e823c
						/* G u e s s  S t u f f */
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
#ifndef ZZINF_LOOK
Packit Service 3e823c
#define ZZINF_LOOK
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
typedef struct _zzjmp_buf {
Packit Service 3e823c
			jmp_buf state;
Packit Service 3e823c
		} zzjmp_buf;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
/* can make this a power of 2 for more efficient lookup */
Packit Service 3e823c
Packit Service 3e823c
#ifndef ZZLEXBUFSIZE
Packit Service 3e823c
#define ZZLEXBUFSIZE	8000 /* MR22 raise from 2k to 8k */
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#define zzOvfChk														\
Packit Service 3e823c
            if ( zzasp <= 0 )                                           \
Packit Service 3e823c
            {                                                           \
Packit Service 3e823c
                fprintf(stderr, zzStackOvfMsg, __FILE__, __LINE__);		\
Packit Service 3e823c
                exit(PCCTS_EXIT_FAILURE);                                               \
Packit Service 3e823c
            }
Packit Service 3e823c
Packit Service 3e823c
#ifndef ZZA_STACKSIZE
Packit Service 3e823c
#define ZZA_STACKSIZE	400
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifndef ZZAST_STACKSIZE
Packit Service 3e823c
#define ZZAST_STACKSIZE	400
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzfailed_pred
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
#define zzfailed_pred(_p,_hasuseraction,_useraction) \
Packit Service 3e823c
  if (zzguessing) { \
Packit Service 3e823c
    zzGUESS_FAIL; \
Packit Service 3e823c
  } else { \
Packit Service 3e823c
    zzfailed_pred_action(_p,_hasuseraction,_useraction); \
Packit Service 3e823c
  }
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzfailed_pred(_p,_hasuseraction,_useraction) \
Packit Service 3e823c
    zzfailed_pred_action(_p,_hasuseraction,_useraction);
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/*  MR23            Provide more control over failed predicate action
Packit Service 3e823c
                    without any need for user to worry about guessing internals.
Packit Service 3e823c
                    _hasuseraction == 0 => no user specified error action
Packit Service 3e823c
                    _hasuseraction == 1 => user specified error action
Packit Service 3e823c
*/
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzfailed_pred_action
Packit Service 3e823c
#define zzfailed_pred_action(_p,_hasuseraction,_useraction) \
Packit Service 3e823c
    if (_hasuseraction) { _useraction } \
Packit Service 3e823c
    else { fprintf(stderr, "semantic error; failed predicate: '%s'\n",_p); }
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* MR19 zzchar_t additions */
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#define LOOKAHEAD \
Packit Service 3e823c
	int zztokenLA[LL_K]; \
Packit Service 3e823c
	zzchar_t zztextLA[LL_K][ZZLEXBUFSIZE]; \
Packit Service 3e823c
	int zzlap = 0, zzlabase=0; /* labase only used for DEMAND_LOOK */
Packit Service 3e823c
#else
Packit Service 3e823c
#define LOOKAHEAD												\
Packit Service 3e823c
	int zztoken;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzcr_ast
Packit Service 3e823c
#define zzcr_ast(ast,attr,tok,text)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define DemandLookData  int zzdirty=1;
Packit Service 3e823c
#else
Packit Service 3e823c
#define DemandLookData
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzUSER_GUESS_HOOK
Packit Service 3e823c
#define zzUSER_GUESS_HOOK(seqFrozen,zzrv)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzUSER_GUESS_DONE_HOOK
Packit Service 3e823c
#define zzUSER_GUESS_DONE_HOOK(seqFrozen)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
						/* S t a t e  S t u f f */
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
#define zzGUESS_BLOCK		zzantlr_state zzst; int zzrv; int zzGuessSeqFrozen;
Packit Service 3e823c
Packit Service 3e823c
/* MR10 change zzGUESS: do zzGUESS_DONE when zzrv==1 after longjmp as in C++ mode */
Packit Service 3e823c
Packit Service 3e823c
#define zzGUESS				zzsave_antlr_state(&zzst); \
Packit Service 3e823c
							zzguessing = 1; \
Packit Service 3e823c
                            zzGuessSeqFrozen=++zzGuessSeq; \
Packit Service 3e823c
							zzrv = setjmp(zzguess_start.state); \
Packit Service 3e823c
                            zzUSER_GUESS_HOOK(zzGuessSeqFrozen,zzrv) \
Packit Service 3e823c
                            if (zzrv) zzGUESS_DONE;
Packit Service 3e823c
#ifdef zzTRACE_RULES
Packit Service 3e823c
#define zzGUESS_FAIL		{ zzTraceGuessFail(); longjmp(zzguess_start.state, 1); }
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzGUESS_FAIL		longjmp(zzguess_start.state, 1)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* MR10 change zzGUESS_DONE: zzrv=1 to simulate longjmp() return value as in C++ mode */
Packit Service 3e823c
Packit Service 3e823c
#define zzGUESS_DONE		{ zzrestore_antlr_state(&zzst); zzrv=1; zzUSER_GUESS_DONE_HOOK(zzGuessSeqFrozen) }
Packit Service 3e823c
#define zzNON_GUESS_MODE	if ( !zzguessing )
Packit Service 3e823c
#define zzGuessData                                     \
Packit Service 3e823c
            zzjmp_buf zzguess_start;                    \
Packit Service 3e823c
            int zzguessing;
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzGUESS_BLOCK
Packit Service 3e823c
#define zzGUESS
Packit Service 3e823c
#define zzGUESS_FAIL
Packit Service 3e823c
#define zzGUESS_DONE
Packit Service 3e823c
#define zzNON_GUESS_MODE
Packit Service 3e823c
#define zzGuessData
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
typedef struct _zzantlr_state {
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
			zzjmp_buf guess_start;
Packit Service 3e823c
			int guessing;
Packit Service 3e823c
#endif
Packit Service 3e823c
			int asp;
Packit Service 3e823c
			int ast_sp;
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
			int inf_lap;	/* not sure we need to save this one */
Packit Service 3e823c
			int inf_labase;
Packit Service 3e823c
			int inf_last;
Packit Service 3e823c
Packit Service 3e823c
/* MR6 	Gunnar Rxnning (gunnar@candleweb.no)                                */
Packit Service 3e823c
/* MR6	  Additional state needs to be saved/restored                       */
Packit Service 3e823c
/* MR6    Matching changes in err.h                                         */
Packit Service 3e823c
Packit Service 3e823c
			int *inf_tokens;	                                     /* MR6 */
Packit Service 3e823c
			char **inf_text;	                                     /* MR6 */
Packit Service 3e823c
			char *inf_text_buffer;		                             /* MR6 */
Packit Service 3e823c
			int *inf_line;		                                     /* MR6 */
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
			int dirty;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
			int tokenLA[LL_K];
Packit Service 3e823c
			char textLA[LL_K][ZZLEXBUFSIZE];
Packit Service 3e823c
			int lap;
Packit Service 3e823c
			int labase;
Packit Service 3e823c
#else
Packit Service 3e823c
			int token;
Packit Service 3e823c
			char text[ZZLEXBUFSIZE];
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifdef zzTRACE_RULES
Packit Service 3e823c
            int     traceOptionValue;       /* MR10 */
Packit Service 3e823c
            int     traceGuessOptionValue;  /* MR10 */
Packit Service 3e823c
            char    *traceCurrentRuleName;  /* MR10 */
Packit Service 3e823c
            int     traceDepth;             /* MR10 */
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
		} zzantlr_state;
Packit Service 3e823c
Packit Service 3e823c
#ifdef zzTRACE_RULES
Packit Service 3e823c
extern int  zzTraceOptionValueDefault;
Packit Service 3e823c
extern int  zzTraceOptionValue;
Packit Service 3e823c
extern int  zzTraceGuessOptionValue;
Packit Service 3e823c
extern char *zzTraceCurrentRuleName;
Packit Service 3e823c
extern int  zzTraceDepth;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
extern int zzGuessSeq;                      /* MR10 */
Packit Service 3e823c
extern int zzSyntaxErrCount;                /* MR11 */
Packit Service 3e823c
extern int zzLexErrCount;                   /* MR11 */
Packit Service 3e823c
Packit Service 3e823c
                 /* I n f i n i t e  L o o k a h e a d */
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define InfLookData	\
Packit Service 3e823c
	int *zzinf_tokens;	\
Packit Service 3e823c
	char **zzinf_text;	\
Packit Service 3e823c
	char *zzinf_text_buffer;	\
Packit Service 3e823c
	int *zzinf_line;        \
Packit Service 3e823c
	int zzinf_labase;	\
Packit Service 3e823c
	int zzinf_last;
Packit Service 3e823c
#else
Packit Service 3e823c
#define InfLookData
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
Packit Service 3e823c
#ifndef ZZINF_DEF_TEXT_BUFFER_SIZE
Packit Service 3e823c
#define ZZINF_DEF_TEXT_BUFFER_SIZE	    20000
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifndef ZZINF_DEF_TOKEN_BUFFER_SIZE
Packit Service 3e823c
#define ZZINF_DEF_TOKEN_BUFFER_SIZE	    2000
Packit Service 3e823c
#endif
Packit Service 3e823c
/* WARNING!!!!!!
Packit Service 3e823c
 * ZZINF_BUFFER_TEXT_CHUNK_SIZE must be > sizeof(text) largest possible token.
Packit Service 3e823c
 */
Packit Service 3e823c
#ifndef ZZINF_BUFFER_TEXT_CHUNK_SIZE
Packit Service 3e823c
#define ZZINF_BUFFER_TEXT_CHUNK_SIZE	5000
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifndef ZZINF_BUFFER_TOKEN_CHUNK_SIZE
Packit Service 3e823c
#define ZZINF_BUFFER_TOKEN_CHUNK_SIZE	1000
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#if ZZLEXBUFSIZE > ZZINF_BUFFER_TEXT_CHUNK_SIZE
Packit Service 3e823c
#define ZZINF_BUFFER_TEXT_CHUNK_SIZE	ZZLEXBUFSIZE+5
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* make inf_look user-access macros */
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#define ZZINF_LA_VALID(i)	(((zzinf_labase+i-1)-LL_K+1) <= zzinf_last)
Packit Service 3e823c
#define ZZINF_LA(i)			zzinf_tokens[(zzinf_labase+i-1)-LL_K+1]
Packit Service 3e823c
#define ZZINF_LATEXT(i)		zzinf_text[(zzinf_labase+i-1)-LL_K+1]
Packit Service 3e823c
/* MR6	In 1.33 vanilla the #define ZZINF_LINE(i) is was commented out	*/
Packit Service 3e823c
#define ZZINF_LINE(i)       zzinf_line[(zzinf_labase+i-1)-LL_K+1]
Packit Service 3e823c
#else
Packit Service 3e823c
#define ZZINF_LA_VALID(i)	(((zzinf_labase+i-1)) <= zzinf_last)
Packit Service 3e823c
#define ZZINF_LA(i)			zzinf_tokens[(zzinf_labase+i-1)]
Packit Service 3e823c
#define ZZINF_LATEXT(i)		zzinf_text[(zzinf_labase+i-1)]
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#define inf_zzgettok _inf_zzgettok()
Packit Service 3e823c
extern void _inf_zzgettok();
Packit Service 3e823c
Packit Service 3e823c
#endif	/* ZZINF_LOOK */
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
#define ANTLR_INFO	\
Packit Service 3e823c
	Attrib zzempty_attr(void) {static Attrib a; return a;} \
Packit Service 3e823c
	Attrib zzconstr_attr(int _tok, char *_text) \
Packit Service 3e823c
		{Attrib a; zzcr_attr((&a),_tok,_text); return a;} \
Packit Service 3e823c
	int zzasp=ZZA_STACKSIZE; \
Packit Service 3e823c
	char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n"; \
Packit Service 3e823c
	Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData \
Packit Service 3e823c
	InfLookData \
Packit Service 3e823c
    zzGuessData
Packit Service 3e823c
#else
Packit Service 3e823c
#define ANTLR_INFO												\
Packit Service 3e823c
	Attrib zzempty_attr() {static Attrib a; return a;}		    \
Packit Service 3e823c
	Attrib zzconstr_attr(_tok, _text) int _tok; char *_text;    \
Packit Service 3e823c
		{Attrib a; zzcr_attr((&a),_tok,_text); return a;}	    \
Packit Service 3e823c
	int zzasp=ZZA_STACKSIZE;					    \
Packit Service 3e823c
	char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n";  \
Packit Service 3e823c
	Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData			    \
Packit Service 3e823c
	InfLookData                                                 \
Packit Service 3e823c
    zzGuessData
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#else
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
#define ANTLR_INFO												\
Packit Service 3e823c
	Attrib zzempty_attr(void) {static Attrib a; return a;}			\
Packit Service 3e823c
	Attrib zzconstr_attr(int _tok, char *_text)				\
Packit Service 3e823c
        {Attrib a={0,0}; zzcr_attr((&a),_tok,_text); return a;}		\
Packit Service 3e823c
	int zzasp=ZZA_STACKSIZE;						\
Packit Service 3e823c
	char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n";      \
Packit Service 3e823c
	Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData				\
Packit Service 3e823c
	InfLookData                                                             \
Packit Service 3e823c
    zzGuessData
Packit Service 3e823c
#else
Packit Service 3e823c
#define ANTLR_INFO												\
Packit Service 3e823c
	Attrib zzempty_attr() {static Attrib a; return a;}			\
Packit Service 3e823c
	Attrib zzconstr_attr(_tok, _text) int _tok; char *_text;                \
Packit Service 3e823c
		{Attrib a; zzcr_attr((&a),_tok,_text); return a;}		\
Packit Service 3e823c
	int zzasp=ZZA_STACKSIZE;						\
Packit Service 3e823c
	char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n";      \
Packit Service 3e823c
	Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData				\
Packit Service 3e823c
	InfLookData                                                             \
Packit Service 3e823c
    zzGuessData
Packit Service 3e823c
#endif
Packit Service 3e823c
	
Packit Service 3e823c
#endif /* LL_k */
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define zzPrimeLookAhead  {zzdirty=LL_K; zzlap = zzlabase = 0;}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzPrimeLookAhead  {zzlap = zzlabase = 0; zzfill_inf_look();\
Packit Service 3e823c
						  {int _i;  for(_i=1;_i<=LL_K; _i++)		\
Packit Service 3e823c
										{zzCONSUME;} zzlap = zzlabase = 0;}}
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#else /* LL_K */
Packit Service 3e823c
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define zzPrimeLookAhead  zzfill_inf_look(); zzdirty=1
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzPrimeLookAhead  zzfill_inf_look(); inf_zzgettok
Packit Service 3e823c
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif	/* LL_K */
Packit Service 3e823c
Packit Service 3e823c
#else	/* ZZINF_LOOK */
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define zzPrimeLookAhead  {zzdirty=LL_K; zzlap = zzlabase = 0;}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzPrimeLookAhead  {int _i; zzlap = 0; for(_i=1;_i<=LL_K; _i++)		\
Packit Service 3e823c
										{zzCONSUME;} zzlap = 0;}
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#else
Packit Service 3e823c
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define zzPrimeLookAhead  zzdirty=1
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzPrimeLookAhead  zzgettok()
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif	/* LL_K */
Packit Service 3e823c
Packit Service 3e823c
#endif	/* ZZINF_LOOK */
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#define zzenterANTLRs(s)                            \
Packit Service 3e823c
        zzlextext = &(zztextLA[0][0]); zzrdstr( s ); zzPrimeLookAhead;
Packit Service 3e823c
#define zzenterANTLRf(f)							\
Packit Service 3e823c
		zzlextext = &(zztextLA[0][0]); zzrdfunc( f ); zzPrimeLookAhead;
Packit Service 3e823c
#define zzenterANTLR(f)							\
Packit Service 3e823c
		zzlextext = &(zztextLA[0][0]); zzrdstream( f ); zzPrimeLookAhead;
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define zzleaveANTLR(f)			free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#define zzleaveANTLRf(f)	   	free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#define zzleaveANTLRs(f)		free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzleaveANTLR(f)
Packit Service 3e823c
#define zzleaveANTLRf(f)
Packit Service 3e823c
#define zzleaveANTLRs(f)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#else
Packit Service 3e823c
Packit Service 3e823c
#define zzenterANTLRs(s)                            \
Packit Service 3e823c
        {static char zztoktext[ZZLEXBUFSIZE];   \
Packit Service 3e823c
        zzlextext = zztoktext; zzrdstr( s ); zzPrimeLookAhead;}
Packit Service 3e823c
#define zzenterANTLRf(f)							\
Packit Service 3e823c
		{static char zztoktext[ZZLEXBUFSIZE];	\
Packit Service 3e823c
		zzlextext = zztoktext; zzrdfunc( f ); zzPrimeLookAhead;}
Packit Service 3e823c
#define zzenterANTLR(f)							\
Packit Service 3e823c
		{static char zztoktext[ZZLEXBUFSIZE];	\
Packit Service 3e823c
		zzlextext = zztoktext; zzrdstream( f ); zzPrimeLookAhead;}
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define zzleaveANTLR(f)			free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#define zzleaveANTLRf(f)	   	free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#define zzleaveANTLRs(f)		free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzleaveANTLR(f)
Packit Service 3e823c
#define zzleaveANTLRf(f)
Packit Service 3e823c
#define zzleaveANTLRs(f)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* MR19 Paul D. Smith (psmith@baynetworks.com)
Packit Service 3e823c
   Need to adjust AST stack pointer at exit.
Packit Service 3e823c
   Referenced in ANTLRx macros.
Packit Service 3e823c
*/
Packit Service 3e823c
Packit Service 3e823c
#ifdef GENAST
Packit Service 3e823c
#define ZZAST_ADJUST ++zzast_sp;
Packit Service 3e823c
#else
Packit Service 3e823c
#define ZZAST_ADJUST
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#define ANTLR(st, f)	zzbufsize = ZZLEXBUFSIZE;	\
Packit Service 3e823c
						zzenterANTLR(f);			\
Packit Service 3e823c
            {                                            \
Packit Service 3e823c
              zzBLOCK(zztasp1);                          \
Packit Service 3e823c
						  st; /* ++zzasp; Removed MR20 G. Hobbelt */     \
Packit Service 3e823c
						      /* ZZAST_ADJUST Removed MR20 G. Hobbelt */ \
Packit Service 3e823c
              /* MR20 G. Hobbelt. Kill the top' attribute (+AST stack corr.) */  \
Packit Service 3e823c
              zzEXIT_ANTLR(zztasp1 + 1);                 \
Packit Service 3e823c
            }                                            \
Packit Service 3e823c
						zzleaveANTLR(f);
Packit Service 3e823c
						
Packit Service 3e823c
#define ANTLRm(st, f, _m)	zzbufsize = ZZLEXBUFSIZE;	\
Packit Service 3e823c
						zzmode(_m);				\
Packit Service 3e823c
						zzenterANTLR(f);			\
Packit Service 3e823c
            {                                            \
Packit Service 3e823c
              zzBLOCK(zztasp1);                          \
Packit Service 3e823c
						  st; /* ++zzasp; Removed MR20 G. Hobbelt */     \
Packit Service 3e823c
						      /* ZZAST_ADJUST Removed MR20 G. Hobbelt */ \
Packit Service 3e823c
              /* MR20 G. Hobbelt. Kill the top' attribute (+AST stack corr.) */  \
Packit Service 3e823c
              zzEXIT_ANTLR(zztasp1 + 1);                 \
Packit Service 3e823c
            }                                            \
Packit Service 3e823c
						zzleaveANTLR(f);
Packit Service 3e823c
						
Packit Service 3e823c
#define ANTLRf(st, f)	zzbufsize = ZZLEXBUFSIZE;	\
Packit Service 3e823c
						zzenterANTLRf(f);			\
Packit Service 3e823c
            {                                            \
Packit Service 3e823c
              zzBLOCK(zztasp1);                          \
Packit Service 3e823c
						  st; /* ++zzasp; Removed MR20 G. Hobbelt */     \
Packit Service 3e823c
						      /* ZZAST_ADJUST Removed MR20 G. Hobbelt */ \
Packit Service 3e823c
              /* MR20 G. Hobbelt. Kill the top' attribute (+AST stack corr.) */  \
Packit Service 3e823c
              zzEXIT_ANTLR(zztasp1 + 1);                 \
Packit Service 3e823c
            }                                            \
Packit Service 3e823c
						zzleaveANTLRf(f);
Packit Service 3e823c
Packit Service 3e823c
#define ANTLRs(st, s)   zzbufsize = ZZLEXBUFSIZE;	\
Packit Service 3e823c
                        zzenterANTLRs(s);           \
Packit Service 3e823c
            {                                            \
Packit Service 3e823c
              zzBLOCK(zztasp1);                          \
Packit Service 3e823c
						  st; /* ++zzasp; Removed MR20 G. Hobbelt */     \
Packit Service 3e823c
						      /* ZZAST_ADJUST Removed MR20 G. Hobbelt */ \
Packit Service 3e823c
              /* MR20 G. Hobbelt. Kill the top' attribute (+AST stack corr.) */  \
Packit Service 3e823c
              zzEXIT_ANTLR(zztasp1 + 1);                 \
Packit Service 3e823c
            }                                            \
Packit Service 3e823c
                        zzleaveANTLRs(s);
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#define zztext		(&(zztextLA[zzlap][0]))
Packit Service 3e823c
#else
Packit Service 3e823c
#define zztext		zzlextext
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
					/* A r g u m e n t  A c c e s s */
Packit Service 3e823c
Packit Service 3e823c
#define zzaCur			(zzaStack[zzasp])
Packit Service 3e823c
#define zzaRet			(*zzaRetPtr)
Packit Service 3e823c
#define zzaArg(v,n)		zzaStack[v-n]
Packit Service 3e823c
#define zzMakeAttr		{ zzNON_GUESS_MODE {zzOvfChk; --zzasp; zzcr_attr(&(zzaStack[zzasp]),LA(1),LATEXT(1));}}
Packit Service 3e823c
#ifdef zzdef0
Packit Service 3e823c
#define zzMake0			{ zzOvfChk; --zzasp; zzdef0(&(zzaStack[zzasp]));}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzMake0			{ zzOvfChk; --zzasp;}
Packit Service 3e823c
#endif
Packit Service 3e823c
#define zzaPush(_v)		{ zzOvfChk; zzaStack[--zzasp] = _v;}
Packit Service 3e823c
#ifndef zzd_attr
Packit Service 3e823c
#define zzREL(t)		zzasp=(t);		/* Restore state of stack */
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzREL(t)		for (; zzasp<(t); zzasp++)				\
Packit Service 3e823c
						{ zzd_attr(&(zzaStack[zzasp])); }
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
#define zzsetmatch(_es,_tokclassErrset)						\
Packit Service 3e823c
	if ( !_zzsetmatch(_es, &zzBadText, &zzMissText, &zzMissTok, &zzBadTok, &zzMissSet, _tokclassErrset) ) goto fail; /* MR23 */
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
#define zzsetmatch_wsig(_es, handler)		\
Packit Service 3e823c
	if ( !_zzsetmatch_wsig(_es) ) if (zzguessing) { zzGUESS_FAIL; } else {_signal=MismatchedToken; goto handler;}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzsetmatch_wsig(_es, handler)		\
Packit Service 3e823c
	if ( !_zzsetmatch_wsig(_es) ) {_signal=MismatchedToken; goto handler;}
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
extern int _zzsetmatch(SetWordType *, char **, char **, int *, int *, SetWordType **, SetWordType * /* MR23 */); 
Packit Service 3e823c
extern int _zzsetmatch_wsig(SetWordType *);
Packit Service 3e823c
#else
Packit Service 3e823c
extern int _zzsetmatch();
Packit Service 3e823c
extern int _zzsetmatch_wsig();
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#define zzmatch(_t)							\
Packit Service 3e823c
	if ( !_zzmatch(_t, &zzBadText, &zzMissText, &zzMissTok, &zzBadTok, &zzMissSet) ) goto fail;
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
#define zzmatch_wsig(_t,handler)			\
Packit Service 3e823c
	if ( !_zzmatch_wsig(_t) ) if (zzguessing) { zzGUESS_FAIL; } else {_signal=MismatchedToken; goto handler;}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzmatch_wsig(_t,handler)			\
Packit Service 3e823c
	if ( !_zzmatch_wsig(_t) ) {_signal=MismatchedToken; goto handler;}
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
extern int _zzmatch(int, char **, char **, int *, int *, SetWordType **);
Packit Service 3e823c
extern int _zzmatch_wsig(int);
Packit Service 3e823c
#else
Packit Service 3e823c
extern int _zzmatch();
Packit Service 3e823c
extern int _zzmatch_wsig();
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#define zzmatch_wdfltsig(_t,_f)			\
Packit Service 3e823c
	if ( !_zzmatch_wdfltsig(_t,_f) ) _signal=MismatchedToken;
Packit Service 3e823c
#define zzsetmatch_wdfltsig(tw,tt,wf)		\
Packit Service 3e823c
	if ( !_zzsetmatch_wdfltsig(tw,tt,wf) ) _signal=MismatchedToken;
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
extern int _zzmatch_wdfltsig(int, SetWordType *);
Packit Service 3e823c
extern int _zzsetmatch_wdfltsig(SetWordType *tokensWanted,
Packit Service 3e823c
								int tokenTypeOfSet,
Packit Service 3e823c
								SetWordType *whatFollows);
Packit Service 3e823c
#else
Packit Service 3e823c
extern int _zzmatch_wdfltsig();
Packit Service 3e823c
extern int _zzsetmatch_wdfltsig();
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef GENAST
Packit Service 3e823c
#define zzRULE		Attrib *zzaRetPtr = &(zzaStack[zzasp-1]);	\
Packit Service 3e823c
					SetWordType *zzMissSet=NULL; int zzMissTok=0;		\
Packit Service 3e823c
					int zzBadTok=0; char *zzBadText="";		\
Packit Service 3e823c
					int zzErrk=1,zzpf=0;					\
Packit Service 3e823c
                    zzTRACEdata \
Packit Service 3e823c
					char *zzMissText=""; zzASTVars
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzRULE		Attrib *zzaRetPtr = &(zzaStack[zzasp-1]);	\
Packit Service 3e823c
					int zzBadTok=0; char *zzBadText="";		\
Packit Service 3e823c
					int zzErrk=1,zzpf=0;								\
Packit Service 3e823c
                    zzTRACEdata \
Packit Service 3e823c
					SetWordType *zzMissSet=NULL; int zzMissTok=0; char *zzMissText=""
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef GENAST
Packit Service 3e823c
#define zzBLOCK(i)	int i = zzasp - 1; int zztsp = zzast_sp
Packit Service 3e823c
#define zzEXIT(i)	zzREL(i); zzastREL; zzNON_GUESS_MODE { zzastPush(*_root); }
Packit Service 3e823c
#define zzEXIT_ANTLR(i)	zzREL(i); zzastREL /* [i_a] added as we want this for the ANTLRx() macros */
Packit Service 3e823c
#define zzLOOP(i)	zzREL(i); zzastREL
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzBLOCK(i)	int i = zzasp - 1
Packit Service 3e823c
#define zzEXIT(i)	zzREL(i)
Packit Service 3e823c
#define zzEXIT_ANTLR(i)	zzREL(i)           /* [i_a] added as we want this for the ANTLRx() macros */
Packit Service 3e823c
#define zzLOOP(i)	zzREL(i)
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define LOOK(_k)	{int i,stop=_k-(LL_K-zzdirty); for (i=1; i<=stop; i++)	\
Packit Service 3e823c
					zzCONSUME;}
Packit Service 3e823c
#define zzCONSUME	{zzgettok(); zzdirty--;							\
Packit Service 3e823c
					zzlap = (zzlap+1)&(LL_K-1);						\
Packit Service 3e823c
					zzlextext = &(zztextLA[zzlap][0]);}
Packit Service 3e823c
#else
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define zzCONSUME	{inf_zzgettok; 									\
Packit Service 3e823c
					zzlap = (zzlap+1)&(LL_K-1);						\
Packit Service 3e823c
					zzlextext = &(zztextLA[zzlap][0]);				\
Packit Service 3e823c
					}
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzCONSUME	{zzgettok(); 									\
Packit Service 3e823c
					zzlap = (zzlap+1)&(LL_K-1);						\
Packit Service 3e823c
					zzlextext = &(zztextLA[zzlap][0]);}
Packit Service 3e823c
#endif /* ZZINF_LOOK */
Packit Service 3e823c
#endif /* DEMAND_LOOK */
Packit Service 3e823c
Packit Service 3e823c
#else /* LL_K */
Packit Service 3e823c
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define LOOK(_k)	if ( zzdirty) zzCONSUME;
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define zzCONSUME	inf_zzgettok; zzdirty=0;
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzCONSUME	zzgettok(); zzdirty=0;
Packit Service 3e823c
#endif /* ZZINF_LOOK */
Packit Service 3e823c
Packit Service 3e823c
#else  /* DEMAND_LOOK */
Packit Service 3e823c
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
#define zzCONSUME	inf_zzgettok
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzCONSUME	zzgettok();
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#endif /* DEMAND_LOOK */
Packit Service 3e823c
Packit Service 3e823c
#endif /* LL_K */
Packit Service 3e823c
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
#define NLA			zztokenLA[zzlap&(LL_K-1)]	/* --> next LA */
Packit Service 3e823c
#define NLATEXT		zztextLA[zzlap&(LL_K-1)]	/* --> next text of LA */
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
#define LA(i)       zztokenLA[(zzlabase+(i)-1)&(LL_K-1)]
Packit Service 3e823c
#define LATEXT(i)   (&(zztextLA[(zzlabase+(i)-1)&(LL_K-1)][0]))
Packit Service 3e823c
#else
Packit Service 3e823c
#define LA(i)       zztokenLA[(zzlap+(i)-1)&(LL_K-1)]
Packit Service 3e823c
#define LATEXT(i)   (&(zztextLA[(zzlap+(i)-1)&(LL_K-1)][0]))
Packit Service 3e823c
#endif
Packit Service 3e823c
#else
Packit Service 3e823c
#define NLA			zztoken
Packit Service 3e823c
#define NLATEXT		zztext
Packit Service 3e823c
#define LA(i)       zztoken
Packit Service 3e823c
#define LATEXT(i)   zztext
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
           /* S t a n d a r d  S i g n a l s */
Packit Service 3e823c
Packit Service 3e823c
#define NoSignal			0
Packit Service 3e823c
#define MismatchedToken		1
Packit Service 3e823c
#define NoViableAlt			2
Packit Service 3e823c
#define NoSemViableAlt		3
Packit Service 3e823c
Packit Service 3e823c
/* MR7  Allow more control over signalling                                  */
Packit Service 3e823c
/*        by adding "Unwind" and "zzsetSignal"                              */
Packit Service 3e823c
Packit Service 3e823c
#define Unwind              4
Packit Service 3e823c
#define zzsetSignal(newValue) *_retsignal=_signal=(newValue)
Packit Service 3e823c
#define zzsuppressSignal *_retsignal=_signal=0
Packit Service 3e823c
#define zzexportSignal    *_retsignal=_signal
Packit Service 3e823c
Packit Service 3e823c
           /* F u n c t i o n  T r a c i n g */
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzTRACE_RULES
Packit Service 3e823c
#define zzTRACEdata
Packit Service 3e823c
#else
Packit Service 3e823c
#ifndef zzTRACEdata
Packit Service 3e823c
#define zzTRACEdata     ANTLRChar *zzTracePrevRuleName = NULL;
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzTRACEIN
Packit Service 3e823c
#define zzTRACEIN(r)	zzTracePrevRuleName=zzTraceCurrentRuleName;zzTraceIn(r);
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifndef zzTRACEOUT
Packit Service 3e823c
#define zzTRACEOUT(r)	zzTraceOut(r);zzTraceCurrentRuleName=zzTracePrevRuleName;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* MR19 zzchar_t additions */
Packit Service 3e823c
Packit Service 3e823c
#ifndef zzchar_t
Packit Service 3e823c
#ifdef ZZWCHAR_T
Packit Service 3e823c
#define zzchar_t wchar_t
Packit Service 3e823c
#else
Packit Service 3e823c
#define zzchar_t char
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
Packit Service 3e823c
/* MR26 */
Packit Service 3e823c
Packit Service 3e823c
#ifdef PCCTS_USE_STDARG
Packit Service 3e823c
extern void zzFAIL(int k, ...);
Packit Service 3e823c
#else
Packit Service 3e823c
extern void zzFAIL();
Packit Service 3e823c
#endif
Packit Service 3e823c
				/* E x t e r n  D e f s */
Packit Service 3e823c
Packit Service 3e823c
#ifdef __USE_PROTOS
Packit Service 3e823c
extern Attrib zzempty_attr(void);
Packit Service 3e823c
extern Attrib zzconstr_attr(int, char *);
Packit Service 3e823c
extern void zzsyn(char *, int, char *, SetWordType *, int, int, char *);
Packit Service 3e823c
extern int zzset_el(unsigned, SetWordType *);
Packit Service 3e823c
extern int zzset_deg(SetWordType *);
Packit Service 3e823c
extern void zzedecode(SetWordType *);
Packit Service 3e823c
Packit Service 3e823c
extern void zzresynch(SetWordType *, SetWordType);
Packit Service 3e823c
extern void zzsave_antlr_state(zzantlr_state *);
Packit Service 3e823c
extern void zzrestore_antlr_state(zzantlr_state *);
Packit Service 3e823c
extern void zzfill_inf_look(void);
Packit Service 3e823c
extern void zzconsumeUntil(SetWordType *st);                         /* MR7 */
Packit Service 3e823c
extern void zzconsumeUntilToken(int t);                              /* MR7 */
Packit Service 3e823c
extern void zzTraceIn(char * ruleName);                              /* MR10 */
Packit Service 3e823c
extern void zzTraceOut(char * ruleName);                             /* MR10 */
Packit Service 3e823c
extern int  zzTraceOption(int delta);                                /* MR10 */
Packit Service 3e823c
extern int  zzTraceGuessOption(int delta);                           /* MR10 */
Packit Service 3e823c
extern void zzTraceReset(void);                                      /* MR10 */
Packit Service 3e823c
extern void zzTraceGuessFail(void);                                  /* MR10 */
Packit Service 3e823c
#ifdef EXCEPTION_HANDLING
Packit Service 3e823c
extern void zzdflthandlers(int, int *);
Packit Service 3e823c
#endif
Packit Service 3e823c
#else
Packit Service 3e823c
extern Attrib zzempty_attr();
Packit Service 3e823c
extern Attrib zzconstr_attr();
Packit Service 3e823c
extern void zzsyn();
Packit Service 3e823c
extern int zzset_el();
Packit Service 3e823c
extern int zzset_deg();
Packit Service 3e823c
extern void zzedecode();
Packit Service 3e823c
extern void zzresynch();
Packit Service 3e823c
extern void zzsave_antlr_state();
Packit Service 3e823c
extern void zzrestore_antlr_state();
Packit Service 3e823c
extern void zzfill_inf_look();
Packit Service 3e823c
extern void zzconsumeUntil();                                        /* MR7 */
Packit Service 3e823c
extern void zzconsumeUntilToken();                                   /* MR7 */
Packit Service 3e823c
extern void zzTraceIn();                                             /* MR10 */
Packit Service 3e823c
extern void zzTraceOut();                                            /* MR10 */
Packit Service 3e823c
extern int  zzTraceOption();                                         /* MR10 */
Packit Service 3e823c
extern int  zzTraceGuessOption();                                    /* MR10 */
Packit Service 3e823c
extern void zzTraceReset();                                          /* MR10 */
Packit Service 3e823c
extern void zzTraceGuessFail();                                      /* MR10 */
Packit Service 3e823c
#ifdef EXCEPTION_HANDLING
Packit Service 3e823c
extern void zzdflthandlers();
Packit Service 3e823c
#endif
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
				/* G l o b a l  V a r i a b l e s */
Packit Service 3e823c
Packit Service 3e823c
/* Define a parser; user should do a "#parser myname" in their grammar file */
Packit Service 3e823c
/*extern struct pccts_parser zzparser;*/
Packit Service 3e823c
Packit Service 3e823c
extern char *zztokens[];
Packit Service 3e823c
#ifdef LL_K
Packit Service 3e823c
extern int zztokenLA[];
Packit Service 3e823c
extern zzchar_t zztextLA[][ZZLEXBUFSIZE];
Packit Service 3e823c
extern int zzlap;
Packit Service 3e823c
extern int zzlabase;
Packit Service 3e823c
#else
Packit Service 3e823c
extern int zztoken;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
extern char zzStackOvfMsg[];
Packit Service 3e823c
extern int zzasp;
Packit Service 3e823c
extern Attrib zzaStack[];
Packit Service 3e823c
#ifdef ZZINF_LOOK
Packit Service 3e823c
extern int *zzinf_tokens;
Packit Service 3e823c
extern char **zzinf_text;
Packit Service 3e823c
extern char *zzinf_text_buffer;
Packit Service 3e823c
extern int *zzinf_line;
Packit Service 3e823c
extern int zzinf_labase;
Packit Service 3e823c
extern int zzinf_last;
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifdef DEMAND_LOOK
Packit Service 3e823c
extern int zzdirty;
Packit Service 3e823c
#endif
Packit Service 3e823c
#ifdef ZZCAN_GUESS
Packit Service 3e823c
extern int zzguessing;
Packit Service 3e823c
extern zzjmp_buf zzguess_start;
Packit Service 3e823c
#endif
Packit Service 3e823c
Packit Service 3e823c
/* Define global veriables that refer to values exported by the scanner.
Packit Service 3e823c
 * These declarations duplicate those in dlgdef.h, but are needed
Packit Service 3e823c
 * if ANTLR is not to generate a .dlg file (-gx); PS, this is a hack.
Packit Service 3e823c
 */
Packit Service 3e823c
extern zzchar_t *zzlextext;     /* text of most recently matched token */
Packit Service 3e823c
extern int      zzbufsize;      /* how long zzlextext is */
Packit Service 3e823c
Packit Service 3e823c
#endif