]> pd.if.org Git - pccts/blobdiff - h/antlr.h
auto commit for import
[pccts] / h / antlr.h
diff --git a/h/antlr.h b/h/antlr.h
new file mode 100755 (executable)
index 0000000..907cd87
--- /dev/null
+++ b/h/antlr.h
@@ -0,0 +1,625 @@
+/* antlr.h
+ *
+ * SOFTWARE RIGHTS
+ *
+ * We reserve no LEGAL rights to the Purdue Compiler Construction Tool
+ * Set (PCCTS) -- PCCTS is in the public domain.  An individual or
+ * company may do whatever they wish with source code distributed with
+ * PCCTS or the code generated by PCCTS, including the incorporation of
+ * PCCTS, or its output, into commerical software.
+ * 
+ * We encourage users to develop software with PCCTS.  However, we do ask
+ * that credit is given to us for developing PCCTS.  By "credit",
+ * we mean that if you incorporate our source code into one of your
+ * programs (commercial product, research project, or otherwise) that you
+ * acknowledge this fact somewhere in the documentation, research report,
+ * etc...  If you like PCCTS and have developed a nice tool with the
+ * output, please mention that you developed it using PCCTS.  In
+ * addition, we ask that this header remain intact in our source code.
+ * As long as these guidelines are kept, we expect to continue enhancing
+ * this system and expect to make other tools available as they are
+ * completed.
+ *
+ * ANTLR 1.33
+ * Terence Parr
+ * Parr Research Corporation
+ * with Purdue University and AHPCRC, University of Minnesota
+ * 1989-1995
+ */
+#ifndef ANTLR_H
+#define ANTLR_H
+
+#include "config.h"
+
+/*
+ * Define all of the stack setup and manipulation of $i, #i variables.
+ *
+ *     Notes:
+ *             The type 'Attrib' must be defined before entry into this .h file.
+ */
+
+#ifdef __USE_PROTOS
+#include <stdlib.h>
+#else
+#ifdef VAXC
+#include <stdlib.h>
+#else
+#include <malloc.h>
+#endif
+#endif
+#include <string.h>
+
+typedef int ANTLRTokenType;
+typedef unsigned char SetWordType;
+
+typedef char ANTLRChar;
+
+                                               /* G u e s s  S t u f f */
+
+#ifdef ZZCAN_GUESS
+#ifndef ZZINF_LOOK
+#define ZZINF_LOOK
+#endif
+#endif
+
+#ifdef ZZCAN_GUESS
+typedef struct _zzjmp_buf {
+                       jmp_buf state;
+               } zzjmp_buf;
+#endif
+
+
+/* can make this a power of 2 for more efficient lookup */
+#ifndef ZZLEXBUFSIZE
+#define ZZLEXBUFSIZE   2000
+#endif
+
+#define zzOvfChk                                                                                                               \
+            if ( zzasp <= 0 )                                           \
+            {                                                           \
+                fprintf(stderr, zzStackOvfMsg, __FILE__, __LINE__);            \
+                exit(PCCTS_EXIT_FAILURE);                                               \
+            }
+
+#ifndef ZZA_STACKSIZE
+#define ZZA_STACKSIZE  400
+#endif
+#ifndef ZZAST_STACKSIZE
+#define ZZAST_STACKSIZE        400
+#endif
+
+#ifndef zzfailed_pred
+#define zzfailed_pred(_p)      \
+       fprintf(stderr, "semantic error; failed predicate: '%s'\n",_p)
+#endif
+
+#ifdef LL_K
+#define LOOKAHEAD                                                                                              \
+       int zztokenLA[LL_K];                                                                            \
+       char zztextLA[LL_K][ZZLEXBUFSIZE];                                                      \
+       int zzlap = 0, zzlabase=0; /* labase only used for DEMAND_LOOK */
+#else
+#define LOOKAHEAD                                                                                              \
+       int zztoken;
+#endif
+
+#ifndef zzcr_ast
+#define zzcr_ast(ast,attr,tok,text)
+#endif
+
+#ifdef DEMAND_LOOK
+#define DemandLookData  int zzdirty=1;
+#else
+#define DemandLookData
+#endif
+
+                                               /* S t a t e  S t u f f */
+
+#ifdef ZZCAN_GUESS
+#define zzGUESS_BLOCK          zzantlr_state zzst; int zzrv;
+#define zzGUESS                                zzsave_antlr_state(&zzst); \
+                                                       zzguessing = 1; \
+                                                       zzrv = setjmp(zzguess_start.state);
+#define zzGUESS_FAIL           longjmp(zzguess_start.state, 1)
+#define zzGUESS_DONE           zzrestore_antlr_state(&zzst);
+#define zzNON_GUESS_MODE       if ( !zzguessing )
+#define zzGuessData                                     \
+            zzjmp_buf zzguess_start;                    \
+            int zzguessing;
+#else
+#define zzGUESS_BLOCK
+#define zzGUESS
+#define zzGUESS_FAIL
+#define zzGUESS_DONE
+#define zzNON_GUESS_MODE
+#define zzGuessData
+#endif
+
+typedef struct _zzantlr_state {
+#ifdef ZZCAN_GUESS
+                       zzjmp_buf guess_start;
+                       int guessing;
+#endif
+                       int asp;
+                       int ast_sp;
+#ifdef ZZINF_LOOK
+                       int inf_lap;    /* not sure we need to save this one */
+                       int inf_labase;
+                       int inf_last;
+#endif
+#ifdef DEMAND_LOOK
+                       int dirty;
+#endif
+
+#ifdef LL_K
+                       int tokenLA[LL_K];
+                       char textLA[LL_K][ZZLEXBUFSIZE];
+                       int lap;
+                       int labase;
+#else
+                       int token;
+                       char text[ZZLEXBUFSIZE];
+#endif
+               } zzantlr_state;
+
+
+                 /* I n f i n i t e  L o o k a h e a d */
+
+
+#ifdef ZZINF_LOOK
+#define InfLookData    \
+       int *zzinf_tokens;      \
+       char **zzinf_text;      \
+       char *zzinf_text_buffer;        \
+       int *zzinf_line;        \
+       int zzinf_labase;       \
+       int zzinf_last;
+#else
+#define InfLookData
+#endif
+
+#ifdef ZZINF_LOOK
+
+#ifndef ZZINF_DEF_TEXT_BUFFER_SIZE
+#define ZZINF_DEF_TEXT_BUFFER_SIZE         20000
+#endif
+#ifndef ZZINF_DEF_TOKEN_BUFFER_SIZE
+#define ZZINF_DEF_TOKEN_BUFFER_SIZE        2000
+#endif
+/* WARNING!!!!!!
+ * ZZINF_BUFFER_TEXT_CHUNK_SIZE must be > sizeof(text) largest possible token.
+ */
+#ifndef ZZINF_BUFFER_TEXT_CHUNK_SIZE
+#define ZZINF_BUFFER_TEXT_CHUNK_SIZE   5000
+#endif
+#ifndef ZZINF_BUFFER_TOKEN_CHUNK_SIZE
+#define ZZINF_BUFFER_TOKEN_CHUNK_SIZE  1000
+#endif
+
+#if ZZLEXBUFSIZE > ZZINF_BUFFER_TEXT_CHUNK_SIZE
+#define ZZINF_BUFFER_TEXT_CHUNK_SIZE   ZZLEXBUFSIZE+5
+#endif
+
+/* make inf_look user-access macros */
+#ifdef LL_K
+#define ZZINF_LA_VALID(i)      (((zzinf_labase+i-1)-LL_K+1) <= zzinf_last)
+#define ZZINF_LA(i)                    zzinf_tokens[(zzinf_labase+i-1)-LL_K+1]
+#define ZZINF_LATEXT(i)                zzinf_text[(zzinf_labase+i-1)-LL_K+1]
+/* #define ZZINF_LINE(i)       zzinf_line[(zzinf_labase+i-1)-LL_K+1]*/
+#else
+#define ZZINF_LA_VALID(i)      (((zzinf_labase+i-1)) <= zzinf_last)
+#define ZZINF_LA(i)                    zzinf_tokens[(zzinf_labase+i-1)]
+#define ZZINF_LATEXT(i)                zzinf_text[(zzinf_labase+i-1)]
+#endif
+
+#define inf_zzgettok _inf_zzgettok()
+extern void _inf_zzgettok();
+
+#endif /* ZZINF_LOOK */
+
+
+#ifdef LL_K
+
+#ifdef __USE_PROTOS
+#define ANTLR_INFO                                                                                             \
+       Attrib zzempty_attr() {static Attrib a; return a;}                      \
+       Attrib zzconstr_attr(int _tok, char *_text)\
+               {Attrib a; zzcr_attr((&a),_tok,_text); return a;}               \
+       int zzasp=ZZA_STACKSIZE;                                                                        \
+       char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n"; \
+       Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData                          \
+       InfLookData                                                 \
+    zzGuessData
+#else
+#define ANTLR_INFO                                                                                             \
+       Attrib zzempty_attr() {static Attrib a; return a;}                      \
+       Attrib zzconstr_attr(_tok, _text) int _tok; char *_text;\
+               {Attrib a; zzcr_attr((&a),_tok,_text); return a;}               \
+       int zzasp=ZZA_STACKSIZE;                                                                        \
+       char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n"; \
+       Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData                          \
+       InfLookData                                                 \
+    zzGuessData
+#endif
+
+#else
+
+#ifdef __USE_PROTOS
+#define ANTLR_INFO                                                                                             \
+       Attrib zzempty_attr() {static Attrib a; return a;}                      \
+       Attrib zzconstr_attr(int _tok, char *_text)\
+               {Attrib a; zzcr_attr((&a),_tok,_text); return a;}               \
+       int zzasp=ZZA_STACKSIZE;                                                                        \
+       char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n"; \
+       Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData                          \
+       InfLookData                                                 \
+    zzGuessData
+#else
+#define ANTLR_INFO                                                                                             \
+       Attrib zzempty_attr() {static Attrib a; return a;}                      \
+       Attrib zzconstr_attr(_tok, _text) int _tok; char *_text;\
+               {Attrib a; zzcr_attr((&a),_tok,_text); return a;}               \
+       int zzasp=ZZA_STACKSIZE;                                                                        \
+       char zzStackOvfMsg[]="fatal: attrib/AST stack overflow %s(%d)!\n"; \
+       Attrib zzaStack[ZZA_STACKSIZE]; DemandLookData                          \
+       InfLookData                                                 \
+    zzGuessData
+#endif
+       
+#endif /* LL_k */
+
+
+#ifdef ZZINF_LOOK
+
+#ifdef LL_K
+#ifdef DEMAND_LOOK
+#define zzPrimeLookAhead  {zzdirty=LL_K; zzlap = zzlabase = 0;}
+#else
+#define zzPrimeLookAhead  {zzlap = zzlabase = 0; zzfill_inf_look();\
+                                                 {int _i;  for(_i=1;_i<=LL_K; _i++)            \
+                                                                               {zzCONSUME;} zzlap = zzlabase = 0;}}
+#endif
+
+#else /* LL_K */
+
+#ifdef DEMAND_LOOK
+#define zzPrimeLookAhead  zzfill_inf_look(); zzdirty=1
+#else
+#define zzPrimeLookAhead  zzfill_inf_look(); inf_zzgettok
+
+#endif
+#endif /* LL_K */
+
+#else  /* ZZINF_LOOK */
+
+#ifdef LL_K
+#ifdef DEMAND_LOOK
+#define zzPrimeLookAhead  {zzdirty=LL_K; zzlap = zzlabase = 0;}
+#else
+#define zzPrimeLookAhead  {int _i; zzlap = 0; for(_i=1;_i<=LL_K; _i++)         \
+                                                                               {zzCONSUME;} zzlap = 0;}
+#endif
+
+#else
+
+#ifdef DEMAND_LOOK
+#define zzPrimeLookAhead  zzdirty=1
+#else
+#define zzPrimeLookAhead  zzgettok()
+#endif
+#endif /* LL_K */
+
+#endif /* ZZINF_LOOK */
+
+
+#ifdef LL_K
+#define zzenterANTLRs(s)                            \
+        zzlextext = &(zztextLA[0][0]); zzrdstr( s ); zzPrimeLookAhead;
+#define zzenterANTLRf(f)                                                       \
+               zzlextext = &(zztextLA[0][0]); zzrdfunc( f ); zzPrimeLookAhead;
+#define zzenterANTLR(f)                                                        \
+               zzlextext = &(zztextLA[0][0]); zzrdstream( f ); zzPrimeLookAhead;
+#ifdef ZZINF_LOOK
+#define zzleaveANTLR(f)                        free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#define zzleaveANTLRf(f)               free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#define zzleaveANTLRs(f)               free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#else
+#define zzleaveANTLR(f)
+#define zzleaveANTLRf(f)
+#define zzleaveANTLRs(f)
+#endif
+
+#else
+
+#define zzenterANTLRs(s)                            \
+        {static char zztoktext[ZZLEXBUFSIZE];   \
+        zzlextext = zztoktext; zzrdstr( s ); zzPrimeLookAhead;}
+#define zzenterANTLRf(f)                                                       \
+               {static char zztoktext[ZZLEXBUFSIZE];   \
+               zzlextext = zztoktext; zzrdfunc( f ); zzPrimeLookAhead;}
+#define zzenterANTLR(f)                                                        \
+               {static char zztoktext[ZZLEXBUFSIZE];   \
+               zzlextext = zztoktext; zzrdstream( f ); zzPrimeLookAhead;}
+#ifdef ZZINF_LOOK
+#define zzleaveANTLR(f)                        free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#define zzleaveANTLRf(f)               free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#define zzleaveANTLRs(f)               free(zzinf_text_buffer); free(zzinf_text); free(zzinf_tokens); free(zzinf_line);
+#else
+#define zzleaveANTLR(f)
+#define zzleaveANTLRf(f)
+#define zzleaveANTLRs(f)
+#endif
+
+#endif
+
+#define ANTLR(st, f)   zzbufsize = ZZLEXBUFSIZE;       \
+                                               zzenterANTLR(f);                        \
+                                               st; ++zzasp;                            \
+                                               zzleaveANTLR(f);
+                                               
+#define ANTLRm(st, f, _m)      zzbufsize = ZZLEXBUFSIZE;       \
+                                               zzmode(_m);                             \
+                                               zzenterANTLR(f);                        \
+                                               st; ++zzasp;                            \
+                                               zzleaveANTLR(f);
+                                               
+#define ANTLRf(st, f)  zzbufsize = ZZLEXBUFSIZE;       \
+                                               zzenterANTLRf(f);                       \
+                                               st; ++zzasp;                            \
+                                               zzleaveANTLRf(f);
+
+#define ANTLRs(st, s)   zzbufsize = ZZLEXBUFSIZE;      \
+                        zzenterANTLRs(s);           \
+                        st; ++zzasp;                           \
+                        zzleaveANTLRs(s);
+
+#ifdef LL_K
+#define zztext         (&(zztextLA[zzlap][0]))
+#else
+#define zztext         zzlextext
+#endif
+
+
+                                       /* A r g u m e n t  A c c e s s */
+
+#define zzaCur                 (zzaStack[zzasp])
+#define zzaRet                 (*zzaRetPtr)
+#define zzaArg(v,n)            zzaStack[v-n]
+#define zzMakeAttr             { zzNON_GUESS_MODE {zzOvfChk; --zzasp; zzcr_attr(&(zzaStack[zzasp]),LA(1),LATEXT(1));}}
+#ifdef zzdef0
+#define zzMake0                        { zzOvfChk; --zzasp; zzdef0(&(zzaStack[zzasp]));}
+#else
+#define zzMake0                        { zzOvfChk; --zzasp;}
+#endif
+#define zzaPush(_v)            { zzOvfChk; zzaStack[--zzasp] = _v;}
+#ifndef zzd_attr
+#define zzREL(t)               zzasp=(t);              /* Restore state of stack */
+#else
+#define zzREL(t)               for (; zzasp<(t); zzasp++)                              \
+                                               { zzd_attr(&(zzaStack[zzasp])); }
+#endif
+
+#define zzsetmatch(_es)                                                \
+       if ( !_zzsetmatch(_es, &zzBadText, &zzMissText, &zzMissTok, &zzBadTok, &zzMissSet) ) goto fail;
+#define zzsetmatch_wsig(_es, handler)          \
+       if ( !_zzsetmatch_wsig(_es) ) {_signal=MismatchedToken; goto handler;}
+
+#ifdef __USE_PROTOS
+extern int _zzsetmatch(SetWordType *, char **, char **, int *, int *, SetWordType **);
+extern int _zzsetmatch_wsig(SetWordType *);
+#else
+extern int _zzsetmatch();
+extern int _zzsetmatch_wsig();
+#endif
+
+#define zzmatch(_t)                                                    \
+       if ( !_zzmatch(_t, &zzBadText, &zzMissText, &zzMissTok, &zzBadTok, &zzMissSet) ) goto fail;
+#define zzmatch_wsig(_t,handler)                       \
+       if ( !_zzmatch_wsig(_t) ) {_signal=MismatchedToken; goto handler;}
+
+#ifdef __USE_PROTOS
+extern int _zzmatch(int, char **, char **, int *, int *, SetWordType **);
+extern int _zzmatch_wsig(int);
+#else
+extern int _zzmatch();
+extern int _zzmatch_wsig();
+#endif
+
+#define zzmatch_wdfltsig(_t,_f)                        \
+       if ( !_zzmatch_wdfltsig(_t,_f) ) _signal=MismatchedToken;
+#define zzsetmatch_wdfltsig(tw,tt,wf)          \
+       if ( !_zzsetmatch_wdfltsig(tw,tt,wf) ) _signal=MismatchedToken;
+
+#ifdef __USE_PROTOS
+extern int _zzmatch_wdfltsig(int, SetWordType *);
+extern int _zzsetmatch_wdfltsig(SetWordType *tokensWanted,
+                                                               int tokenTypeOfSet,
+                                                               SetWordType *whatFollows);
+#else
+extern int _zzmatch_wdfltsig();
+extern int _zzsetmatch_wdfltsig();
+#endif
+
+#ifdef GENAST
+#define zzRULE         Attrib *zzaRetPtr = &(zzaStack[zzasp-1]);       \
+                                       SetWordType *zzMissSet=NULL; int zzMissTok=0;           \
+                                       int zzBadTok=0; char *zzBadText="";             \
+                                       int zzErrk=1;                                                           \
+                                       char *zzMissText=""; zzASTVars
+#else
+#define zzRULE         Attrib *zzaRetPtr = &(zzaStack[zzasp-1]);       \
+                                       int zzBadTok=0; char *zzBadText="";             \
+                                       int zzErrk=1;                                                           \
+                                       SetWordType *zzMissSet=NULL; int zzMissTok=0; char *zzMissText=""
+#endif
+
+#ifdef GENAST
+#define zzBLOCK(i)     int i = zzasp - 1; int zztsp = zzast_sp
+#define zzEXIT(i)      zzREL(i); zzastREL; zzNON_GUESS_MODE { zzastPush(*_root); }
+#define zzLOOP(i)      zzREL(i); zzastREL
+#else
+#define zzBLOCK(i)     int i = zzasp - 1
+#define zzEXIT(i)      zzREL(i)
+#define zzLOOP(i)      zzREL(i)
+#endif
+
+#ifdef LL_K
+
+#ifdef DEMAND_LOOK
+#define LOOK(_k)       {int i,stop=_k-(LL_K-zzdirty); for (i=1; i<=stop; i++)  \
+                                       zzCONSUME;}
+#define zzCONSUME      {zzgettok(); zzdirty--;                                                 \
+                                       zzlap = (zzlap+1)&(LL_K-1);                                             \
+                                       zzlextext = &(zztextLA[zzlap][0]);}
+#else
+#ifdef ZZINF_LOOK
+#define zzCONSUME      {inf_zzgettok;                                                                  \
+                                       zzlap = (zzlap+1)&(LL_K-1);                                             \
+                                       zzlextext = &(zztextLA[zzlap][0]);                              \
+                                       }
+#else
+#define zzCONSUME      {zzgettok();                                                                    \
+                                       zzlap = (zzlap+1)&(LL_K-1);                                             \
+                                       zzlextext = &(zztextLA[zzlap][0]);}
+#endif /* ZZINF_LOOK */
+#endif /* DEMAND_LOOK */
+
+#else /* LL_K */
+
+#ifdef DEMAND_LOOK
+#define LOOK(_k)       if ( zzdirty) zzCONSUME;
+#ifdef ZZINF_LOOK
+#define zzCONSUME      inf_zzgettok; zzdirty=0;
+#else
+#define zzCONSUME      zzgettok(); zzdirty=0;
+#endif /* ZZINF_LOOK */
+
+#else  /* DEMAND_LOOK */
+
+#ifdef ZZINF_LOOK
+#define zzCONSUME      inf_zzgettok
+#else
+#define zzCONSUME      zzgettok();
+#endif
+
+#endif /* DEMAND_LOOK */
+
+#endif /* LL_K */
+
+#ifdef LL_K
+#define NLA                    zztokenLA[zzlap&(LL_K-1)]       /* --> next LA */
+#define NLATEXT                zztextLA[zzlap&(LL_K-1)]        /* --> next text of LA */
+#ifdef DEMAND_LOOK
+#define LA(i)       zztokenLA[(zzlabase+(i)-1)&(LL_K-1)]
+#define LATEXT(i)   (&(zztextLA[(zzlabase+(i)-1)&(LL_K-1)][0]))
+#else
+#define LA(i)       zztokenLA[(zzlap+(i)-1)&(LL_K-1)]
+#define LATEXT(i)   (&(zztextLA[(zzlap+(i)-1)&(LL_K-1)][0]))
+#endif
+#else
+#define NLA                    zztoken
+#define NLATEXT                zztext
+#define LA(i)       zztoken
+#define LATEXT(i)   zztext
+#endif
+
+
+           /* S t a n d a r d  S i g n a l s */
+
+#define NoSignal                       0
+#define MismatchedToken                1
+#define NoViableAlt                    2
+#define NoSemViableAlt         3
+
+
+           /* F u n c t i o n  T r a c i n g */
+
+#ifndef zzTRACEIN
+#define zzTRACEIN(r)   fprintf(stderr, "enter rule \"%s\"\n", r);
+#endif
+#ifndef zzTRACEOUT
+#define zzTRACEOUT(r)  fprintf(stderr, "exit rule \"%s\"\n", r);
+#endif
+
+#ifdef ZZWCHAR_T
+#define zzchar_t wchar_t
+#else
+#define zzchar_t char
+#endif
+
+                               /* E x t e r n  D e f s */
+
+#ifdef __USE_PROTOS
+extern Attrib zzempty_attr();
+extern Attrib zzconstr_attr(int, char *);
+extern void zzsyn(char *, int, char *, SetWordType *, int, int, char *);
+extern int zzset_el(unsigned, SetWordType *);
+extern int zzset_deg(SetWordType *);
+extern void zzedecode(SetWordType *);
+extern void zzFAIL(int k, ...);
+extern void zzresynch(SetWordType *, SetWordType);
+extern void zzsave_antlr_state(zzantlr_state *);
+extern void zzrestore_antlr_state(zzantlr_state *);
+extern void zzfill_inf_look(void);
+#ifdef EXCEPTION_HANDLING
+extern void zzdflthandlers(int, int *);
+#endif
+#else
+extern Attrib zzempty_attr();
+extern Attrib zzconstr_attr();
+extern void zzsyn();
+extern int zzset_el();
+extern int zzset_deg();
+extern void zzedecode();
+extern void zzFAIL();
+extern void zzresynch();
+extern void zzsave_antlr_state();
+extern void zzrestore_antlr_state();
+extern void zzfill_inf_look();
+#ifdef EXCEPTION_HANDLING
+extern void zzdflthandlers();
+#endif
+#endif
+
+                               /* G l o b a l  V a r i a b l e s */
+
+/* Define a parser; user should do a "#parser myname" in their grammar file */
+/*extern struct pccts_parser zzparser;*/
+
+extern char *zztokens[];
+#ifdef LL_K
+extern int zztokenLA[];
+extern char zztextLA[][ZZLEXBUFSIZE];
+extern int zzlap;
+extern int zzlabase;
+#else
+extern int zztoken;
+#endif
+
+extern char zzStackOvfMsg[];
+extern int zzasp;
+extern Attrib zzaStack[];
+#ifdef ZZINF_LOOK
+extern int *zzinf_tokens;
+extern char **zzinf_text;
+extern char *zzinf_text_buffer;
+extern int *zzinf_line;
+extern int zzinf_labase;
+extern int zzinf_last;
+#endif
+#ifdef DEMAND_LOOK
+extern int zzdirty;
+#endif
+#ifdef ZZCAN_GUESS
+extern int zzguessing;
+extern zzjmp_buf zzguess_start;
+#endif
+
+/* Define global veriables that refer to values exported by the scanner.
+ * These declarations duplicate those in dlgdef.h, but are needed
+ * if ANTLR is not to generate a .dlg file (-gx); PS, this is a hack.
+ */
+extern zzchar_t *zzlextext;     /* text of most recently matched token */
+extern int      zzbufsize;      /* how long zzlextext is */
+
+#endif