]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CCode/Source/Pccts/h/err.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / CCode / Source / Pccts / h / err.h
diff --git a/Tools/CCode/Source/Pccts/h/err.h b/Tools/CCode/Source/Pccts/h/err.h
deleted file mode 100644 (file)
index b2b196b..0000000
+++ /dev/null
@@ -1,1170 +0,0 @@
-/*\r
- * err.h\r
- *\r
- * Standard error handling mechanism\r
- *\r
- * SOFTWARE RIGHTS\r
- *\r
- * We reserve no LEGAL rights to the Purdue Compiler Construction Tool\r
- * Set (PCCTS) -- PCCTS is in the public domain.  An individual or\r
- * company may do whatever they wish with source code distributed with\r
- * PCCTS or the code generated by PCCTS, including the incorporation of\r
- * PCCTS, or its output, into commerical software.\r
- *\r
- * We encourage users to develop software with PCCTS.  However, we do ask\r
- * that credit is given to us for developing PCCTS.  By "credit",\r
- * we mean that if you incorporate our source code into one of your\r
- * programs (commercial product, research project, or otherwise) that you\r
- * acknowledge this fact somewhere in the documentation, research report,\r
- * etc...  If you like PCCTS and have developed a nice tool with the\r
- * output, please mention that you developed it using PCCTS.  In\r
- * addition, we ask that this header remain intact in our source code.\r
- * As long as these guidelines are kept, we expect to continue enhancing\r
- * this system and expect to make other tools available as they are\r
- * completed.\r
- *\r
- * Has grown to hold all kinds of stuff (err.h is increasingly misnamed)\r
- *\r
- * ANTLR 1.33\r
- * Terence Parr\r
- * Parr Research Corporation\r
- * with Purdue University and AHPCRC, University of Minnesota\r
- * 1989-2000\r
- */\r
-\r
-#ifndef ERR_H\r
-#define ERR_H\r
-\r
-#include "pcctscfg.h"\r
-#include <stdlib.h>\r
-#include <assert.h>\r
-\r
-/*                                                                           */\r
-/*  7-Apr-97  133MR1                                                         */\r
-/*             Proper choice of STDC and cplusplus pre-processor symbols (?) */\r
-/*                                                                           */\r
-#include "pccts_string.h"\r
-\r
-#ifdef PCCTS_USE_STDARG\r
-#include "pccts_stdarg.h"\r
-#else\r
-#include <varargs.h>\r
-#endif\r
-\r
-#ifdef DUM\r
-/* Define usable bits per unsigned int word (used for set stuff) */\r
-#ifdef PC\r
-#define BSETWORDSIZE 16\r
-#define BSETLOGWORDSIZE        4\r
-#else\r
-#define        BSETWORDSIZE 32\r
-#define BSETLOGWORDSIZE 5\r
-#endif\r
-#endif\r
-\r
-#define        BSETWORDSIZE 8\r
-#define BSETLOGWORDSIZE 3              /* SetWordType is 8bits */\r
-\r
-#define        BSETMODWORD(x) ((x) & (BSETWORDSIZE-1))         /* x % BSETWORDSIZE */\r
-#define        BSETDIVWORD(x) ((x) >> BSETLOGWORDSIZE)         /* x / BSETWORDSIZE */\r
-\r
-/* This is not put into the global pccts_parser structure because it is\r
- * hidden and does not need to be saved during a "save state" operation\r
- */\r
-/* maximum of 32 bits/unsigned int and must be 8 bits/byte */\r
-static SetWordType bitmask[] = {\r
-       0x00000001, 0x00000002, 0x00000004, 0x00000008,\r
-       0x00000010, 0x00000020, 0x00000040, 0x00000080\r
-};\r
-\r
-#ifdef zzTRACE_RULES\r
-int  zzTraceOptionValueDefault=1;\r
-int  zzTraceOptionValue=1;\r
-int  zzTraceGuessOptionValue=1;\r
-char *zzTraceCurrentRuleName=NULL;\r
-int  zzTraceDepth=0;\r
-#endif\r
-\r
-int  zzGuessSeq=0;          /* MR10 */\r
-int  zzSyntaxErrCount=0;    /* MR11 */\r
-int  zzLexErrCount=0;       /* MR11 */\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzresynch(SetWordType *wd,SetWordType mask)\r
-#else\r
-zzresynch(wd,mask)\r
-SetWordType *wd, mask;\r
-#endif\r
-{\r
-       static int consumed = 1;\r
-\r
-       /* if you enter here without having consumed a token from last resynch\r
-        * force a token consumption.\r
-        */\r
-       if ( !consumed ) {zzCONSUME; consumed=1; return;}   /* MR10 */\r
-\r
-       /* if current token is in resynch set, we've got what we wanted */\r
-       if ( wd[LA(1)]&mask || LA(1) == zzEOF_TOKEN ) {consumed=0; return;}\r
-       \r
-       /* scan until we find something in the resynch set */\r
-       while ( !(wd[LA(1)]&mask) && LA(1) != zzEOF_TOKEN ) {zzCONSUME;}\r
-       consumed=1;\r
-}\r
-\r
-/*                                                                          */\r
-/*  7-Apr-97 133MR1 for C++ and MR7 for C                                   */\r
-/*          Change suggested by Eli Sternheim (eli@interhdl.com)           */\r
-/*                                                                          */\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzconsumeUntil(SetWordType *st)\r
-#else\r
-zzconsumeUntil(st)\r
-SetWordType *st;\r
-#endif\r
-{\r
-    int     tmp;                                                     /* MR7 */\r
-       while ( !zzset_el( (tmp=LA(1)), st) && tmp!=1 /* Eof */) {       /* MR7 */\r
-                                                      zzCONSUME; }   /* MR7 */\r
-}\r
-\r
-/*                                                                          */\r
-/*  7-Apr-97 133MR1 for C++ and MR7 for C                                   */\r
-/*          Change suggested by Eli Sternheim (eli@interhdl.com)           */\r
-/*                                                                          */\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzconsumeUntilToken(int t)\r
-#else\r
-zzconsumeUntilToken(t)\r
-int t;\r
-#endif\r
-{\r
-    int     tmp;                                                     /* MR7 */\r
-       while ( (tmp=LA(1)) !=t && tmp!=1 /* Eof */) { zzCONSUME; }      /* MR7 */\r
-}\r
-\r
-/* input looks like:\r
- *             zzFAIL(k, e1, e2, ...,&zzMissSet,&zzMissText,&zzBadTok,&zzBadText)\r
- * where the zzMiss stuff is set here to the token that did not match\r
- * (and which set wasn't it a member of).\r
- */\r
-\r
-#ifdef PCCTS_USE_STDARG\r
-void zzFAIL(int k, ...)\r
-#else\r
-void zzFAIL(va_alist)\r
-va_dcl\r
-#endif\r
-{\r
-#ifdef LL_K\r
-       static char text[LL_K*ZZLEXBUFSIZE+1];\r
-       SetWordType *f[LL_K];\r
-#else\r
-       static char text[ZZLEXBUFSIZE+1];\r
-       SetWordType *f[1];\r
-#endif\r
-       SetWordType **miss_set;\r
-       char **miss_text;\r
-       int *bad_tok;\r
-       char **bad_text;\r
-       int *err_k;\r
-       int i;\r
-       va_list ap;\r
-#ifndef PCCTS_USE_STDARG                       /* MR20 */\r
-       int k;\r
-#endif\r
-#ifdef PCCTS_USE_STDARG         /* MR20 */\r
-       va_start(ap, k);\r
-#else\r
-       va_start(ap);\r
-       k = va_arg(ap, int);    /* how many lookahead sets? */\r
-#endif\r
-    assert(k <= sizeof(f)/sizeof(f[0]));    /* MR20 G. Hobbelt */\r
-       text[0] = '\0';\r
-       for (i=1; i<=k; i++)    /* collect all lookahead sets */\r
-       {\r
-               f[i-1] = va_arg(ap, SetWordType *);\r
-       }\r
-       for (i=1; i<=k; i++)    /* look for offending token */\r
-       {\r
-               if ( i>1 ) strcat(text, " ");\r
-               strcat(text, LATEXT(i));\r
-               if ( !zzset_el((unsigned)LA(i), f[i-1]) ) break;\r
-       }\r
-       miss_set = va_arg(ap, SetWordType **);\r
-       miss_text = va_arg(ap, char **);\r
-       bad_tok = va_arg(ap, int *);\r
-       bad_text = va_arg(ap, char **);\r
-       err_k = va_arg(ap, int *);\r
-       if ( i>k )\r
-       {\r
-               /* bad; lookahead is permutation that cannot be matched,\r
-                * but, the ith token of lookahead is valid at the ith position\r
-                * (The old LL sub 1 (k) versus LL(k) parsing technique)\r
-                */\r
-               *miss_set = NULL;\r
-               *miss_text = zzlextext;\r
-               *bad_tok = LA(1);\r
-               *bad_text = LATEXT(1);\r
-               *err_k = k;\r
-               return;\r
-       }\r
-/*     fprintf(stderr, "%s not in %dth set\n", zztokens[LA(i)], i);*/\r
-       *miss_set = f[i-1];\r
-       *miss_text = text;\r
-       *bad_tok = LA(i);\r
-       *bad_text = LATEXT(i);\r
-       if ( i==1 ) *err_k = 1;\r
-       else *err_k = k;\r
-}\r
-\r
-#ifdef __USE_PROTOS\r
-void zzTraceGuessDone(zzantlr_state *state)\r
-#else\r
-void zzTraceGuessDone(state)\r
-  zzantlr_state     *state;\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-#ifdef ZZCAN_GUESS\r
-\r
-  int   doIt=0;\r
-\r
-  if (zzTraceCurrentRuleName == NULL) return;\r
-\r
-  if (zzTraceOptionValue <= 0) {\r
-    doIt=0;\r
-  } else if (zzTraceGuessOptionValue <= 0) {\r
-    doIt=0;\r
-  } else {\r
-    doIt=1;\r
-  };\r
-\r
-  if (doIt) {\r
-    fprintf(stderr,"guess done - returning to rule %s {\"%s\"} at depth %d",\r
-        state->traceCurrentRuleName,\r
-        LATEXT(1),\r
-        state->traceDepth);\r
-    if (state->guessing != 0) {\r
-      fprintf(stderr," (guess mode continues - an enclosing guess is still active)");\r
-    } else {\r
-      fprintf(stderr," (guess mode ends)");\r
-    };\r
-    fprintf(stderr,"\n");\r
-  };\r
-#endif\r
-#endif\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzsave_antlr_state(zzantlr_state *buf)\r
-#else\r
-zzsave_antlr_state(buf)\r
-zzantlr_state *buf;\r
-#endif\r
-{\r
-#ifdef LL_K\r
-       int     i;\r
-#endif\r
-\r
-#ifdef ZZCAN_GUESS\r
-       buf->guess_start = zzguess_start;\r
-       buf->guessing = zzguessing;\r
-#endif\r
-       buf->asp = zzasp;\r
-#ifdef GENAST\r
-       buf->ast_sp = zzast_sp;\r
-#endif\r
-#ifdef ZZINF_LOOK\r
-       buf->inf_labase = zzinf_labase;\r
-       buf->inf_last = zzinf_last;\r
-\r
-/* MR6         Gunnar Rxnning (gunnar@candleweb.no)                                */\r
-/* MR6   Additional state needs to be saved/restored                       */\r
-\r
-       buf->inf_tokens = zzinf_tokens;                                  /* MR6 */\r
-       buf->inf_text = zzinf_text;                                      /* MR6 */\r
-       buf->inf_text_buffer = zzinf_text_buffer;                        /* MR6 */\r
-       buf->inf_line = zzinf_line;                                                  /* MR6 */\r
-\r
-#endif\r
-#ifdef DEMAND_LOOK\r
-       buf->dirty = zzdirty;\r
-#endif\r
-#ifdef LL_K\r
-       for (i=0; i<LL_K; i++) buf->tokenLA[i] = zztokenLA[i];\r
-       for (i=0; i<LL_K; i++) strcpy(buf->textLA[i], zztextLA[i]);\r
-       buf->lap = zzlap;\r
-       buf->labase = zzlabase;\r
-#else\r
-       buf->token = zztoken;\r
-       strcpy(buf->text, zzlextext);\r
-#endif\r
-#ifdef zzTRACE_RULES\r
-\r
-    /* MR10 */\r
-\r
-    buf->traceOptionValue=zzTraceOptionValue;\r
-    buf->traceGuessOptionValue=zzTraceGuessOptionValue;\r
-    buf->traceCurrentRuleName=zzTraceCurrentRuleName;\r
-    buf->traceDepth=zzTraceDepth;\r
-#endif\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzrestore_antlr_state(zzantlr_state *buf)\r
-#else\r
-zzrestore_antlr_state(buf)\r
-zzantlr_state *buf;\r
-#endif\r
-{\r
-\r
-#ifdef zzTRACE_RULES\r
-    int     prevTraceOptionValue;\r
-#endif\r
-\r
-#ifdef LL_K\r
-       int     i;\r
-#endif\r
-\r
-#ifdef ZZCAN_GUESS\r
-       zzguess_start = buf->guess_start;\r
-       zzguessing = buf->guessing;\r
-#endif\r
-       zzasp = buf->asp;\r
-#ifdef GENAST\r
-       zzast_sp = buf->ast_sp;\r
-#endif\r
-#ifdef ZZINF_LOOK\r
-       zzinf_labase = buf->inf_labase;\r
-       zzinf_last = buf->inf_last;\r
-\r
-/* MR6         Gunnar Rxnning (gunnar@candleweb.no)                                */\r
-/* MR6   Additional state needs to be saved/restored                       */\r
-\r
-       zzinf_tokens = buf->inf_tokens;                                  /* MR6 */\r
-       zzinf_text = buf->inf_text;                                      /* MR6 */\r
-       zzinf_text_buffer = buf->inf_text_buffer;                        /* MR6 */\r
-       zzinf_line = buf->inf_line;                                                  /* MR6 */\r
-#endif\r
-#ifdef DEMAND_LOOK\r
-       zzdirty = buf->dirty;\r
-#endif\r
-#ifdef LL_K\r
-       for (i=0; i<LL_K; i++) zztokenLA[i] = buf->tokenLA[i];\r
-       for (i=0; i<LL_K; i++) strcpy(zztextLA[i], buf->textLA[i]);\r
-       zzlap = buf->lap;\r
-       zzlabase = buf->labase;\r
-#else\r
-       zztoken = buf->token;\r
-       strcpy(zzlextext, buf->text);\r
-#endif\r
-#ifdef zzTRACE_RULES\r
-\r
-    prevTraceOptionValue=zzTraceOptionValue;\r
-    zzTraceOptionValue=buf->traceOptionValue;\r
-    if ( (prevTraceOptionValue > 0) !=\r
-             (zzTraceOptionValue > 0)) {\r
-      if (zzTraceOptionValue > 0) {\r
-        fprintf(stderr,"trace enable restored in rule %s depth %d\n",\r
-                        zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-      if (zzTraceOptionValue <= 0) {\r
-        fprintf(stderr,"trace disable restored in rule %s depth %d\n",\r
-                        zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-    };\r
-\r
-    zzTraceOptionValue=buf->traceOptionValue;            /* MR10 */\r
-    zzTraceGuessOptionValue=buf->traceGuessOptionValue;  /* MR10 */\r
-    zzTraceCurrentRuleName=buf->traceCurrentRuleName;    /* MR10 */\r
-    zzTraceDepth=buf->traceDepth;                        /* MR10 */\r
-    zzTraceGuessDone(buf);                               /* MR10 */\r
-#endif\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzedecode(SetWordType *a)\r
-#else\r
-zzedecode(a)\r
-SetWordType *a;\r
-#endif\r
-{\r
-       register SetWordType *p = a;\r
-       register SetWordType *endp = &(p[zzSET_SIZE]);\r
-       register unsigned e = 0;\r
-\r
-       if ( zzset_deg(a)>1 ) fprintf(stderr, " {");\r
-       do {\r
-               register SetWordType t = *p;\r
-               register SetWordType *b = &(bitmask[0]);\r
-               do {\r
-                       if ( t & *b ) fprintf(stderr, " %s", zztokens[e]);\r
-                       e++;\r
-               } while (++b < &(bitmask[sizeof(SetWordType)*8]));\r
-       } while (++p < endp);\r
-       if ( zzset_deg(a)>1 ) fprintf(stderr, " }");\r
-}\r
-\r
-#ifndef USER_ZZSYN\r
-/* standard error reporting function */\r
-void\r
-#ifdef __USE_PROTOS\r
-zzsyn(char *text, int tok, char *egroup, SetWordType *eset, int etok, int k, char *bad_text)\r
-#else\r
-zzsyn(text, tok, egroup, eset, etok, k, bad_text)\r
-char *text, *egroup, *bad_text;\r
-int tok;\r
-int etok;\r
-int k;\r
-SetWordType *eset;\r
-#endif\r
-{\r
-       \r
-    zzSyntaxErrCount++;                             /* MR11 */\r
-       fprintf(stderr, "line %d: syntax error at \"%s\"", zzline, (tok==zzEOF_TOKEN)?"EOF":bad_text);\r
-       if ( !etok && !eset ) {fprintf(stderr, "\n"); return;}\r
-       if ( k==1 ) fprintf(stderr, " missing");\r
-       else\r
-       {\r
-               fprintf(stderr, "; \"%s\" not", bad_text);\r
-               if ( zzset_deg(eset)>1 ) fprintf(stderr, " in");\r
-       }\r
-       if ( zzset_deg(eset)>0 ) zzedecode(eset);\r
-       else fprintf(stderr, " %s", zztokens[etok]);\r
-       if ( strlen(egroup) > 0 ) fprintf(stderr, " in %s", egroup);\r
-       fprintf(stderr, "\n");\r
-}\r
-#endif\r
-\r
-/* is b an element of set p? */\r
-int\r
-#ifdef __USE_PROTOS\r
-zzset_el(unsigned b, SetWordType *p)\r
-#else\r
-zzset_el(b,p)\r
-unsigned b;\r
-SetWordType *p;\r
-#endif\r
-{\r
-       return( p[BSETDIVWORD(b)] & bitmask[BSETMODWORD(b)] );\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-zzset_deg(SetWordType *a)\r
-#else\r
-zzset_deg(a)\r
-SetWordType *a;\r
-#endif\r
-{\r
-       /* Fast compute degree of a set... the number\r
-          of elements present in the set.  Assumes\r
-          that all word bits are used in the set\r
-       */\r
-       register SetWordType *p = a;\r
-       register SetWordType *endp = &(a[zzSET_SIZE]);\r
-       register int degree = 0;\r
-\r
-       if ( a == NULL ) return 0;\r
-       while ( p < endp )\r
-       {\r
-               register SetWordType t = *p;\r
-               register SetWordType *b = &(bitmask[0]);\r
-               do {\r
-                       if (t & *b) ++degree;\r
-               } while (++b < &(bitmask[sizeof(SetWordType)*8]));\r
-               p++;\r
-       }\r
-\r
-       return(degree);\r
-}\r
-\r
-#ifdef DEMAND_LOOK\r
-\r
-#ifdef LL_K\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch(int _t, char **zzBadText, char **zzMissText,\r
-               int *zzMissTok, int *zzBadTok,\r
-               SetWordType **zzMissSet)\r
-#else\r
-_zzmatch(_t, zzBadText, zzMissText, zzMissTok, zzBadTok, zzMissSet)\r
-int _t;\r
-char **zzBadText;\r
-char **zzMissText;\r
-int *zzMissTok, *zzBadTok;\r
-SetWordType **zzMissSet;\r
-#endif\r
-{\r
-       if ( zzdirty==LL_K ) {\r
-               zzCONSUME;\r
-       }\r
-       if ( LA(1)!=_t ) {\r
-               *zzBadText = *zzMissText=LATEXT(1);     \r
-               *zzMissTok= _t; *zzBadTok=LA(1);\r
-               *zzMissSet=NULL;                                \r
-               return 0;\r
-       }\r
-       zzMakeAttr                                              \r
-       zzdirty++;                                              \r
-       zzlabase++;                                             \r
-       return 1;\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch_wsig(int _t)\r
-#else\r
-_zzmatch_wsig(_t)\r
-int _t;\r
-#endif\r
-{\r
-       if ( zzdirty==LL_K ) {\r
-               zzCONSUME;\r
-       }\r
-       if ( LA(1)!=_t ) {\r
-               return 0;\r
-       }\r
-       zzMakeAttr                                              \r
-       zzdirty++;                                              \r
-       zzlabase++;                                             \r
-       return 1;\r
-}\r
-\r
-#else\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch(int _t, char **zzBadText, char **zzMissText,\r
-                int *zzMissTok, int *zzBadTok, SetWordType **zzMissSet)\r
-#else\r
-_zzmatch(_t, zzBadText, zzMissText, zzMissTok, zzBadTok, zzMissSet)\r
-int _t;\r
-char **zzBadText;\r
-char **zzMissText;\r
-int *zzMissTok, *zzBadTok;\r
-SetWordType **zzMissSet;\r
-#endif\r
-{                                                              \r
-       if ( zzdirty ) {zzCONSUME;}             \r
-       if ( LA(1)!=_t ) {\r
-               *zzBadText = *zzMissText=LATEXT(1);     \r
-               *zzMissTok= _t; *zzBadTok=LA(1);\r
-               *zzMissSet=NULL;                                \r
-               return 0;\r
-       }                                                               \r
-       zzdirty = 1;                                    \r
-       zzMakeAttr                                              \r
-       return 1;\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch_wsig(int _t)\r
-#else\r
-_zzmatch_wsig(_t)\r
-int _t;\r
-#endif\r
-{\r
-       if ( zzdirty ) {zzCONSUME;}             \r
-       if ( LA(1)!=_t ) {\r
-               return 0;\r
-       }\r
-       zzdirty = 1;                                    \r
-       zzMakeAttr                                              \r
-       return 1;\r
-}\r
-\r
-#endif /*LL_K*/\r
-\r
-#else\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch(int _t, char **zzBadText, char **zzMissText,\r
-               int *zzMissTok, int *zzBadTok,\r
-               SetWordType **zzMissSet)\r
-#else\r
-_zzmatch(_t, zzBadText, zzMissText, zzMissTok, zzBadTok, zzMissSet)\r
-int _t;\r
-char **zzBadText;\r
-char **zzMissText;\r
-int *zzMissTok, *zzBadTok;\r
-SetWordType **zzMissSet;\r
-#endif\r
-{\r
-       if ( LA(1)!=_t ) {                              \r
-               *zzBadText = *zzMissText=LATEXT(1);     \r
-               *zzMissTok= _t; *zzBadTok=LA(1);\r
-               *zzMissSet=NULL;                                \r
-               return 0;\r
-       }\r
-       zzMakeAttr\r
-       return 1;\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch_wsig(int _t)\r
-#else\r
-_zzmatch_wsig(_t)\r
-int _t;\r
-#endif\r
-{\r
-       if ( LA(1)!=_t ) return 0;\r
-       zzMakeAttr                                              \r
-       return 1;\r
-}\r
-\r
-#endif /*DEMAND_LOOK*/\r
-\r
-#ifdef ZZINF_LOOK\r
-void\r
-#ifdef __USE_PROTOS\r
-_inf_zzgettok(void)\r
-#else\r
-_inf_zzgettok()\r
-#endif\r
-{\r
-       if ( zzinf_labase >= zzinf_last )                                       \r
-               {NLA = zzEOF_TOKEN; strcpy(NLATEXT, "");}       \r
-       else {                                                                                  \r
-               NLA = zzinf_tokens[zzinf_labase];\r
-               zzline = zzinf_line[zzinf_labase];      /* wrong in 1.21 */\r
-               strcpy(NLATEXT, zzinf_text[zzinf_labase]);              \r
-               zzinf_labase++;                                                                 \r
-       }                                                                                               \r
-}\r
-#endif\r
-\r
-#ifdef ZZINF_LOOK\r
-/* allocate default size text,token and line arrays;\r
- * then, read all of the input reallocing the arrays as needed.\r
- * Once the number of total tokens is known, the LATEXT(i) array (zzinf_text)\r
- * is allocated and it's pointers are set to the tokens in zzinf_text_buffer.\r
- */\r
-void\r
-#ifdef __USE_PROTOS\r
-zzfill_inf_look(void)\r
-#else\r
-zzfill_inf_look()\r
-#endif\r
-{\r
-       int tok, line;\r
-       int zzinf_token_buffer_size = ZZINF_DEF_TOKEN_BUFFER_SIZE;\r
-       int zzinf_text_buffer_size = ZZINF_DEF_TEXT_BUFFER_SIZE;\r
-       int zzinf_text_buffer_index = 0;\r
-       int zzinf_lap = 0;\r
-\r
-       /* allocate text/token buffers */\r
-       zzinf_text_buffer = (char *) malloc(zzinf_text_buffer_size);\r
-       if ( zzinf_text_buffer == NULL )\r
-       {\r
-               fprintf(stderr, "cannot allocate lookahead text buffer (%d bytes)\n",\r
-               zzinf_text_buffer_size);\r
-               exit(PCCTS_EXIT_FAILURE);                                                                       \r
-       }\r
-       zzinf_tokens = (int *) calloc(zzinf_token_buffer_size,sizeof(int));\r
-       if ( zzinf_tokens == NULL )\r
-       {\r
-               fprintf(stderr, "cannot allocate token buffer (%d tokens)\n",\r
-                               zzinf_token_buffer_size);\r
-               exit(PCCTS_EXIT_FAILURE);                                                                       \r
-       }\r
-    zzinf_line = (int *) calloc(zzinf_token_buffer_size,sizeof(int));\r
-    if ( zzinf_line == NULL )\r
-    {\r
-        fprintf(stderr, "cannot allocate line buffer (%d ints)\n",\r
-                zzinf_token_buffer_size);\r
-        exit(PCCTS_EXIT_FAILURE);\r
-       }\r
-\r
-       /* get tokens, copying text to text buffer */\r
-       zzinf_text_buffer_index = 0;\r
-       do {\r
-               zzgettok();\r
-               line = zzreal_line;\r
-               while ( zzinf_lap>=zzinf_token_buffer_size )\r
-               {\r
-                       zzinf_token_buffer_size += ZZINF_BUFFER_TOKEN_CHUNK_SIZE;\r
-                       zzinf_tokens = (int *) realloc(zzinf_tokens,\r
-                                                                                                zzinf_token_buffer_size*sizeof(int));\r
-                       if ( zzinf_tokens == NULL )\r
-                       {\r
-                               fprintf(stderr, "cannot allocate lookahead token buffer (%d tokens)\n",\r
-                                               zzinf_token_buffer_size);\r
-                               exit(PCCTS_EXIT_FAILURE);\r
-                       }\r
-            zzinf_line = (int *) realloc(zzinf_line,\r
-                                         zzinf_token_buffer_size*sizeof(int));\r
-            if ( zzinf_line == NULL )\r
-            {\r
-                fprintf(stderr, "cannot allocate lookahead line buffer (%d ints)\n",\r
-                        zzinf_token_buffer_size);\r
-                exit(PCCTS_EXIT_FAILURE);\r
-                       }\r
-\r
-               }\r
-               while ( (zzinf_text_buffer_index+strlen(NLATEXT)+1) >= zzinf_text_buffer_size )\r
-               {\r
-                       zzinf_text_buffer_size += ZZINF_BUFFER_TEXT_CHUNK_SIZE;\r
-                       zzinf_text_buffer = (char *) realloc(zzinf_text_buffer,\r
-                                                                                                zzinf_text_buffer_size);\r
-                       if ( zzinf_text_buffer == NULL )\r
-                       {\r
-                               fprintf(stderr, "cannot allocate lookahead text buffer (%d bytes)\n",\r
-                                               zzinf_text_buffer_size);\r
-                               exit(PCCTS_EXIT_FAILURE);\r
-                       }\r
-               }\r
-               /* record token and text and line of input symbol */\r
-               tok = zzinf_tokens[zzinf_lap] = NLA;\r
-               strcpy(&zzinf_text_buffer[zzinf_text_buffer_index], NLATEXT);\r
-               zzinf_text_buffer_index += strlen(NLATEXT)+1;\r
-        zzinf_line[zzinf_lap] = line;\r
-               zzinf_lap++;\r
-       } while (tok!=zzEOF_TOKEN);\r
-       zzinf_labase = 0;\r
-       zzinf_last = zzinf_lap-1;\r
-\r
-       /* allocate ptrs to text of ith token */\r
-       zzinf_text = (char **) calloc(zzinf_last+1,sizeof(char *));\r
-       if ( zzinf_text == NULL )\r
-       {\r
-               fprintf(stderr, "cannot allocate lookahead text buffer (%d)\n",\r
-                               zzinf_text_buffer_size);\r
-               exit(PCCTS_EXIT_FAILURE);                                                                               \r
-       }                                                                                                       \r
-       zzinf_text_buffer_index = 0;\r
-       zzinf_lap = 0;\r
-       /* set ptrs so that zzinf_text[i] is the text of the ith token found on input */\r
-       while (zzinf_lap<=zzinf_last)\r
-       {\r
-           zzinf_text[zzinf_lap++] = &zzinf_text_buffer[zzinf_text_buffer_index];\r
-               zzinf_text_buffer_index += strlen(&zzinf_text_buffer[zzinf_text_buffer_index])+1;\r
-       }\r
-}\r
-#endif\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzsetmatch(SetWordType *e, char **zzBadText, char **zzMissText,\r
-                       int *zzMissTok, int *zzBadTok,\r
-                       SetWordType **zzMissSet,\r
-                       SetWordType *zzTokclassErrset /* MR23 */)\r
-#else\r
-_zzsetmatch(e, zzBadText, zzMissText, zzMissTok, zzBadTok, zzMissSet, zzTokclassErrset /* MR23 */)\r
-SetWordType *e;\r
-char **zzBadText;\r
-char **zzMissText;\r
-int *zzMissTok, *zzBadTok;\r
-SetWordType **zzMissSet;\r
-SetWordType *zzTokclassErrset;\r
-#endif\r
-{\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       if ( zzdirty==LL_K ) {zzCONSUME;}\r
-#else\r
-       if ( zzdirty ) {zzCONSUME;}\r
-#endif\r
-#endif\r
-       if ( !zzset_el((unsigned)LA(1), e) ) {\r
-               *zzBadText = LATEXT(1); *zzMissText=NULL;\r
-               *zzMissTok= 0; *zzBadTok=LA(1);\r
-               *zzMissSet=zzTokclassErrset; /* MR23 */\r
-               return 0;\r
-       }\r
-       zzMakeAttr           /* MR14 Ger Hobbelt (hobbelt@axa.nl) */\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       zzdirty++;\r
-    zzlabase++;          /* MR14 Ger Hobbelt (hobbelt@axa.nl) */\r
-#else\r
-       zzdirty = 1;\r
-#endif\r
-#endif\r
-       return 1;\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzmatch_wdfltsig(int tokenWanted, SetWordType *whatFollows)\r
-#else\r
-_zzmatch_wdfltsig(tokenWanted, whatFollows)\r
-int tokenWanted;\r
-SetWordType *whatFollows;\r
-#endif\r
-{\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       if ( zzdirty==LL_K ) {\r
-                       zzCONSUME;\r
-       }\r
-#else\r
-       if ( zzdirty ) {zzCONSUME;}\r
-#endif\r
-#endif\r
-\r
-       if ( LA(1)!=tokenWanted )\r
-       {\r
-        zzSyntaxErrCount++;     /* MR11 */\r
-               fprintf(stderr,\r
-                               "line %d: syntax error at \"%s\" missing %s\n",\r
-                               zzline,\r
-                               (LA(1)==zzEOF_TOKEN)?"<eof>":(char *)LATEXT(1),\r
-                               zztokens[tokenWanted]);\r
-               zzconsumeUntil( whatFollows );\r
-               return 0;\r
-       }\r
-       else {\r
-               zzMakeAttr                                              \r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-               zzdirty++;\r
-               zzlabase++;\r
-#else\r
-               zzdirty = 1;\r
-#endif\r
-#else\r
-/*             zzCONSUME;               consume if not demand lookahead */\r
-#endif\r
-               return 1;\r
-       }\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzsetmatch_wdfltsig(SetWordType *tokensWanted,\r
-                                        int tokenTypeOfSet,\r
-                                        SetWordType *whatFollows)\r
-#else\r
-_zzsetmatch_wdfltsig(tokensWanted, tokenTypeOfSet, whatFollows)\r
-SetWordType *tokensWanted;\r
-int tokenTypeOfSet;\r
-SetWordType *whatFollows;\r
-#endif\r
-{\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       if ( zzdirty==LL_K ) {zzCONSUME;}\r
-#else\r
-       if ( zzdirty ) {zzCONSUME;}\r
-#endif\r
-#endif\r
-       if ( !zzset_el((unsigned)LA(1), tokensWanted) )\r
-       {\r
-        zzSyntaxErrCount++;     /* MR11 */\r
-               fprintf(stderr,\r
-                               "line %d: syntax error at \"%s\" missing %s\n",\r
-                               zzline,\r
-                               (LA(1)==zzEOF_TOKEN)?"<eof>":(char *)LATEXT(1),\r
-                               zztokens[tokenTypeOfSet]);\r
-               zzconsumeUntil( whatFollows );\r
-               return 0;\r
-       }\r
-       else {\r
-               zzMakeAttr\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-               zzdirty++;\r
-               zzlabase++;\r
-#else\r
-               zzdirty = 1;\r
-#endif\r
-#else\r
-/*             zzCONSUME;              consume if not demand lookahead */\r
-#endif\r
-               return 1;\r
-       }\r
-}\r
-\r
-int\r
-#ifdef __USE_PROTOS\r
-_zzsetmatch_wsig(SetWordType *e)\r
-#else\r
-_zzsetmatch_wsig(e)\r
-SetWordType *e;\r
-#endif\r
-{\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       if ( zzdirty==LL_K ) {zzCONSUME;}\r
-#else\r
-       if ( zzdirty ) {zzCONSUME;}\r
-#endif\r
-#endif\r
-       if ( !zzset_el((unsigned)LA(1), e) ) return 0;\r
-       zzMakeAttr           /* MR14 Ger Hobbelt (hobbelt@axa.nl) */\r
-#ifdef DEMAND_LOOK\r
-#ifdef LL_K\r
-       zzdirty++;\r
-    zzlabase++;          /* MR14 Ger Hobbelt (hobbelt@axa.nl) */\r
-#else\r
-       zzdirty = 1;\r
-#endif\r
-#endif\r
-       return 1;\r
-}\r
-\r
-#ifdef USER_ZZMODE_STACK\r
-static int  zzmstk[ZZMAXSTK] = { -1 };\r
-static int  zzmdep = 0;\r
-static char zzmbuf[70];\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzmpush( int m )\r
-#else\r
-zzmpush( m )\r
-int m;\r
-#endif\r
-{\r
-   if(zzmdep == ZZMAXSTK - 1) {\r
-     sprintf(zzmbuf, "Mode stack overflow ");\r
-     zzerr(zzmbuf);\r
-   } else {\r
-     zzmstk[zzmdep++] = zzauto;\r
-     zzmode(m);\r
-   }\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzmpop( void )\r
-#else\r
-zzmpop( )\r
-#endif\r
-{\r
-   if(zzmdep == 0)\r
-   {  sprintf(zzmbuf, "Mode stack underflow ");\r
-      zzerr(zzmbuf);\r
-   }\r
-   else\r
-   {  zzmdep--;\r
-      zzmode(zzmstk[zzmdep]);\r
-   }\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzsave_mode_stack( int modeStack[], int *modeLevel )\r
-#else\r
-zzsave_mode_stack( modeStack, modeLevel )\r
-int modeStack[];\r
-int *modeLevel;\r
-#endif\r
-{\r
-  int i;\r
-  memcpy(modeStack, zzmstk, sizeof(zzmstk));\r
-  *modeLevel = zzmdep;\r
-  zzmdep = 0;\r
-\r
-  return;\r
-}\r
-\r
-void\r
-#ifdef __USE_PROTOS\r
-zzrestore_mode_stack( int modeStack[], int *modeLevel )\r
-#else\r
-zzrestore_mode_stack( modeStack, modeLevel )\r
-int modeStack[];\r
-int *modeLevel;\r
-#endif\r
-{\r
-  int i;\r
-\r
-  memcpy(zzmstk, modeStack, sizeof(zzmstk));\r
-  zzmdep = *modeLevel;\r
-\r
-  return;\r
-}\r
-#endif /* USER_ZZMODE_STACK */\r
-\r
-#ifdef __USE_PROTOS\r
-void zzTraceReset(void)\r
-#else\r
-void zzTraceReset()\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-  zzTraceOptionValue=zzTraceOptionValueDefault;\r
-  zzTraceGuessOptionValue=1;\r
-  zzTraceCurrentRuleName=NULL;\r
-  zzTraceDepth=0;\r
-#endif\r
-}\r
-\r
-#ifdef __USE_PROTOS\r
-void zzTraceGuessFail(void)\r
-#else\r
-void zzTraceGuessFail()\r
-#endif\r
-{\r
-\r
-#ifdef zzTRACE_RULES\r
-#ifdef ZZCAN_GUESS\r
-\r
-  int   doIt=0;\r
-\r
-  if (zzTraceOptionValue <= 0) {\r
-    doIt=0;\r
-  } else if (zzguessing && zzTraceGuessOptionValue <= 0) {\r
-    doIt=0;\r
-  } else {\r
-    doIt=1;\r
-  };\r
-\r
-  if (doIt) {\r
-    fprintf(stderr,"guess failed\n");\r
-  };\r
-#endif\r
-#endif\r
-}\r
-\r
-/* zzTraceOption:\r
-     zero value turns off trace\r
-*/\r
-\r
-#ifdef __USE_PROTOS\r
-void zzTraceIn(char * rule)\r
-#else\r
-void zzTraceIn(rule)\r
-  char  *rule;\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-\r
-  int           doIt=0;\r
-\r
-  zzTraceDepth++;\r
-  zzTraceCurrentRuleName=rule;\r
-\r
-  if (zzTraceOptionValue <= 0) {\r
-    doIt=0;\r
-#ifdef ZZCAN_GUESS\r
-  } else if (zzguessing && zzTraceGuessOptionValue <= 0) {\r
-    doIt=0;\r
-#endif\r
-  } else {\r
-    doIt=1;\r
-  };\r
-\r
-  if (doIt) {\r
-    fprintf(stderr,"enter rule %s {\"%s\"} depth %d",\r
-            rule,\r
-            LA(1)==1 ? "@" : (char *) LATEXT(1),    /* MR19 */\r
-            zzTraceDepth);\r
-#ifdef ZZCAN_GUESS\r
-    if (zzguessing) fprintf(stderr," guessing");\r
-#endif\r
-    fprintf(stderr,"\n");\r
-  };\r
-#endif\r
-  return;\r
-}\r
-\r
-#ifdef __USE_PROTOS\r
-void zzTraceOut(char * rule)\r
-#else\r
-void zzTraceOut(rule)\r
-  char  *rule;\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-  int       doIt=0;\r
-\r
-  zzTraceDepth--;\r
-\r
-  if (zzTraceOptionValue <= 0) {\r
-    doIt=0;\r
-#ifdef ZZCAN_GUESS\r
-  } else if (zzguessing && zzTraceGuessOptionValue <= 0) {\r
-    doIt=0;\r
-#endif\r
-  } else {\r
-    doIt=1;\r
-  };\r
-\r
-  if (doIt) {\r
-    fprintf(stderr,"exit rule %s {\"%s\"} depth %d",\r
-            rule,\r
-            LA(1)==1 ? "@" : (char *) LATEXT(1), /* MR19 */\r
-            zzTraceDepth+1);\r
-#ifdef ZZCAN_GUESS\r
-    if (zzguessing) fprintf(stderr," guessing");\r
-#endif\r
-    fprintf(stderr,"\n");\r
-  };\r
-#endif\r
-}\r
-\r
-#ifdef __USE_PROTOS\r
-int zzTraceOption(int delta)\r
-#else\r
-int zzTraceOption(delta)\r
-  int   delta;\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-    int     prevValue=zzTraceOptionValue;\r
-\r
-    zzTraceOptionValue=zzTraceOptionValue+delta;\r
-\r
-    if (zzTraceCurrentRuleName != NULL) {\r
-      if (prevValue <= 0 && zzTraceOptionValue > 0) {\r
-        fprintf(stderr,"trace enabled in rule %s depth %d\n",\r
-                                            zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-      if (prevValue > 0 && zzTraceOptionValue <= 0) {\r
-        fprintf(stderr,"trace disabled in rule %s depth %d\n",\r
-                                            zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-    };\r
-    return  prevValue;\r
-#else\r
-    return 0;\r
-#endif\r
-}\r
-\r
-#ifdef __USE_PROTOS\r
-int zzTraceGuessOption(int delta)\r
-#else\r
-int zzTraceGuessOption(delta)\r
-  int   delta;\r
-#endif\r
-{\r
-#ifdef zzTRACE_RULES\r
-#ifdef ZZCAN_GUESS\r
-    int     prevValue=zzTraceGuessOptionValue;\r
-\r
-    zzTraceGuessOptionValue=zzTraceGuessOptionValue+delta;\r
-\r
-    if (zzTraceCurrentRuleName != NULL) {\r
-      if (prevValue <= 0 && zzTraceGuessOptionValue > 0) {\r
-        fprintf(stderr,"guess trace enabled in rule %s depth %d\n",\r
-                                                zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-      if (prevValue > 0 && zzTraceGuessOptionValue <= 0) {\r
-        fprintf(stderr,"guess trace disabled in rule %s depth %d\n",\r
-                                                zzTraceCurrentRuleName,zzTraceDepth);\r
-      };\r
-    };\r
-    return prevValue;\r
-#else\r
-    return 0;\r
-#endif\r
-#else\r
-    return 0;\r
-#endif\r
-}\r
-\r
-#endif /* ERR_H */\r