antlr.h
来自「本工具提供一个词法分析器和语法分析器的集成开发环境」· C头文件 代码 · 共 733 行 · 第 1/2 页
H
733 行
#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;#ifdef ZZCAN_GUESS#define zzsetmatch_wsig(_es, handler) \ if ( !_zzsetmatch_wsig(_es) ) if (zzguessing) { zzGUESS_FAIL; } else {_signal=MismatchedToken; goto handler;}#else#define zzsetmatch_wsig(_es, handler) \ if ( !_zzsetmatch_wsig(_es) ) {_signal=MismatchedToken; goto handler;}#endif#ifdef __USE_PROTOSextern int _zzsetmatch(SetWordType *, char **, char **, int *, int *, SetWordType **);extern int _zzsetmatch_wsig(SetWordType *);#elseextern int _zzsetmatch();extern int _zzsetmatch_wsig();#endif#define zzmatch(_t) \ if ( !_zzmatch(_t, &zzBadText, &zzMissText, &zzMissTok, &zzBadTok, &zzMissSet) ) goto fail;#ifdef ZZCAN_GUESS#define zzmatch_wsig(_t,handler) \ if ( !_zzmatch_wsig(_t) ) if (zzguessing) { zzGUESS_FAIL; } else {_signal=MismatchedToken; goto handler;}#else#define zzmatch_wsig(_t,handler) \ if ( !_zzmatch_wsig(_t) ) {_signal=MismatchedToken; goto handler;}#endif#ifdef __USE_PROTOSextern int _zzmatch(int, char **, char **, int *, int *, SetWordType **);extern int _zzmatch_wsig(int);#elseextern 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_PROTOSextern int _zzmatch_wdfltsig(int, SetWordType *);extern int _zzsetmatch_wdfltsig(SetWordType *tokensWanted, int tokenTypeOfSet, SetWordType *whatFollows);#elseextern 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,zzpf=0; \ zzTRACEdata \ char *zzMissText=""; zzASTVars#else#define zzRULE Attrib *zzaRetPtr = &(zzaStack[zzasp-1]); \ int zzBadTok=0; char *zzBadText=""; \ int zzErrk=1,zzpf=0; \ zzTRACEdata \ 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/* MR7 Allow more control over signalling *//* by adding "Unwind" and "zzsetSignal" */#define Unwind 4#define zzsetSignal(newValue) *_retsignal=_signal=(newValue)#define zzsuppressSignal *_retsignal=_signal=0#define zzexportSignal *_retsignal=_signal /* F u n c t i o n T r a c i n g */#ifndef zzTRACE_RULES#define zzTRACEdata#else#ifndef zzTRACEdata#define zzTRACEdata ANTLRChar *zzTracePrevRuleName;#endif#endif#ifndef zzTRACEIN#define zzTRACEIN(r) zzTracePrevRuleName=zzTraceCurrentRuleName;zzTraceIn(r);#endif#ifndef zzTRACEOUT#define zzTRACEOUT(r) zzTraceOut(r);zzTraceCurrentRuleName=zzTracePrevRuleName;#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_PROTOSextern 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);extern void zzconsumeUntil(SetWordType *st); /* MR7 */extern void zzconsumeUntilToken(int t); /* MR7 */extern void zzTraceIn(char * ruleName); /* MR10 */extern void zzTraceOut(char * ruleName); /* MR10 */extern int zzTraceOption(int delta); /* MR10 */extern int zzTraceGuessOption(int delta); /* MR10 */extern void zzTraceReset(); /* MR10 */extern void zzTraceGuessFail(); /* MR10 */#ifdef EXCEPTION_HANDLINGextern void zzdflthandlers(int, int *);#endif#elseextern 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();extern void zzconsumeUntil(); /* MR7 */extern void zzconsumeUntilToken(); /* MR7 */extern void zzTraceIn(); /* MR10 */extern void zzTraceOut(); /* MR10 */extern int zzTraceOption(); /* MR10 */extern int zzTraceGuessOption(); /* MR10 */extern void zzTraceReset(); /* MR10 */extern void zzTraceGuessFail(); /* MR10 */#ifdef EXCEPTION_HANDLINGextern 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_Kextern int zztokenLA[];extern char zztextLA[][ZZLEXBUFSIZE];extern int zzlap;extern int zzlabase;#elseextern int zztoken;#endifextern char zzStackOvfMsg[];extern int zzasp;extern Attrib zzaStack[];#ifdef ZZINF_LOOKextern 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_LOOKextern int zzdirty;#endif#ifdef ZZCAN_GUESSextern 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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?