亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? antlr.g

?? SRI international 發布的OAA框架軟件
?? G
?? 第 1 頁 / 共 5 頁
字號:
/*
 * antlr.g	--	PCCTS Version 1.xx ANTLR
 *
 * Parse an antlr input grammar and build a syntax-diagram.
 *
 * Written in itself (needs at least 1.06 to work)
 *
 * 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
 */

/* MR1									*/
/* MR1 10-Apr-97 MR1	Replace #if logic with #include "pcctscfg.h"	*/
/* MR1									*/

#header <<
	#include "pcctscfg.h"
	#include "set.h"
	#include <ctype.h>
	#include "syn.h"
	#include "hash.h"
	#include "generic.h"
	#define zzcr_attr(attr,tok,t)
	>>

<<

/* MR20 G. Hobbelt For Borland C++ 4.x & 5.x compiling with ALL warnings enabled */
#if defined(__TURBOC__)
#pragma warn -aus  /* unused assignment of 'xxx' */
#endif


#ifdef __USE_PROTOS
static void chkToken(char *, char *, char *, int);
#else
static void chkToken();
#endif

#ifdef __USE_PROTOS
static int isDLGmaxToken(char *Token);				     /* MR3 */
#else
static int isDLGmaxToken();				                             /* MR3 */
#endif

static int class_nest_level = 0;

/* MR20 G. Hobbelt extern definitions moved to antlr.h */

>>

#lexaction <<
/* maintained, but not used for now */
set AST_nodes_refd_in_actions = set_init;
int inAlt = 0;
set attribsRefdFromAction = set_init; /* MR20 */
int UsedOldStyleAttrib = 0;
int UsedNewStyleLabel = 0;
#ifdef __USE_PROTOS
char *inline_set(char *);
#else
char *inline_set();
#endif

/* MR1	10-Apr-97  MR1  Previously unable to put right shift operator	    */
/* MR1					in DLG action			                    */

int tokenActionActive=0;                                            /* MR1 */

>>

#lexclass STRINGS
#token QuotedTerm "\""		<< zzmode(START); >>
#token "\n|\r|\r\n"     	<<
							zzline++;
							warn("eoln found in string");
							zzskip();
							>>
#token "\\(\n|\r|\r\n)"		<< zzline++; zzmore(); >>
#token "\\~[]"				<< zzmore(); >>
#token "~[\n\r\"\\]+"		<< zzmore(); >>

#lexclass ACTION_STRINGS
#token "\""					<< zzmode(ACTIONS); zzmore(); >>
#token "\n|\r|\r\n"			<<
							zzline++;
							warn("eoln found in string (in user action)");
							zzskip();
							>>
#token "\\(\n|\r|\r\n)"		<< zzline++; zzmore(); >>
#token "\\~[]"				<< zzmore(); >>
#token "~[\n\r\"\\]+"			<< zzmore(); >>

#lexclass ACTION_CHARS
#token "'"					<< zzmode(ACTIONS); zzmore(); >>
#token "\n|\r|\r\n"			<<
							zzline++;
							warn("eoln found in char literal (in user action)");
							zzskip();
							>>
#token "\\~[]"				<< zzmore(); >>
#token "~[\n\r'\\]+"		<< zzmore(); >>

#lexclass ACTION_COMMENTS
#token "\*/"				<< zzmode(ACTIONS); zzmore(); >>
#token "\*"					<< zzmore(); >>
#token "\n|\r|\r\n"			<< zzline++; zzmore(); DAWDLE; >>
#token "~[\n\r\*]+"			<< zzmore(); >>

#lexclass TOK_DEF_COMMENTS
#token "\*/"				<< zzmode(PARSE_ENUM_FILE);
                              zzmore(); >>
#token "\*"					<< zzmore(); >>
#token "\n|\r|\r\n"			<< zzline++; zzmore(); DAWDLE; >>
#token "~[\n\r\*]+"			<< zzmore(); >>

#lexclass TOK_DEF_CPP_COMMENTS
#token "\n|\r|\r\n"			<< zzline++; zzmode(PARSE_ENUM_FILE); zzskip(); DAWDLE; >>
#token "~[\n\r]+"			<< zzskip(); >>

#lexclass ACTION_CPP_COMMENTS
#token "\n|\r|\r\n"			<< zzline++; zzmode(ACTIONS); zzmore(); DAWDLE; >>
#token "~[\n\r]+"			<< zzmore(); >>

#lexclass CPP_COMMENTS
#token "\n|\r|\r\n"			<< zzline++; zzmode(START); zzskip(); DAWDLE; >>
#token "~[\n\r]+"			<< zzskip(); >>

#lexclass COMMENTS
#token "\*/"				<< zzmode(START); zzskip(); >>
#token "\*"					<< zzskip(); >>
#token "\n|\r|\r\n"			<< zzline++; zzskip(); DAWDLE; >>
#token "~[\n\r\*]+"			<< zzskip(); >>

/*
 * This lexical class accepts actions of type [..] and <<..>>
 *
 * It translates the following special items for C:
 *
 * $j		--> "zzaArg(current zztasp, j)"
 * $i.j		--> "zzaArg(zztaspi, j)"
 * $i.nondigit> "zzaArg(current zztasp, i).nondigit"
 * $$		--> "zzaRet"
 * $alnum	--> "alnum"			(used to ref parameters)
 * $rule	--> "zzaRet"
 * $retval	--> "_retv.retval" if > 1 return values else "_retv"
 * $[token, text] --> "zzconstr_attr(token, text)"
 * $[]		--> "zzempty_attr()"
 *
 * It translates the following special items for C++:
 * (attributes are now stored with 'Token' and $i's are only
 *  pointers to the Tokens.  Rules don't have attributes now.)
 *
 * $j		--> "_tbj" where b is the block level
 * $i.j		--> "_tij"
 * $j->nondigit> "_tbj->nondigit"
 * $$		--> "$$"
 * $alnum	--> "alnum"			(used to ref parameters)
 * $rule	--> "$rule"
 * $retval	--> "_retv.retval" if > 1 return values else "_retv"
 * $[token, text] --> invalid
 * $[]		--> invalid
 *
 * And, for trees:
 *
 * #0		-->	"(*_root)"
 * #i		--> "zzastArg(i)"
 * #[args]	--> "zzmk_ast(zzastnew(), args)"
 * #[]		--> "zzastnew()"
 * #( root, child1, ..., childn )
 *			--> "zztmake(root, child1, ...., childn, NULL)"
 * #()		--> "NULL"
 *
 * For C++, ...
 *
 * #0		-->	"(*_root)"
 * #i		--> "_astbi" where b is the block level
 * #alnum	--> "alnum_ast"	(used to ref #label)
 * #[args]	--> "new AST(args)"
 * #[]		--> "new AST"
 * #( root, child1, ..., childn )
 *			--> "AST::tmake(root, child1, ...., childn, NULL)"
 * #()		--> "NULL"
 *
 * To escape,
 *
 * \]		--> ]
 * \)		--> )
 * \$		--> $
 * \#		--> #
 *
 * A stack is used to nest action terminators because they can be nested
 * like crazy:  << #[$[..],..] >>
 */
#lexclass ACTIONS
#token Action "\>\>"        << /* these do not nest */
                              zzmode(START);
                              NLATEXT[0] = ' ';
                              NLATEXT[1] = ' ';
                              zzbegexpr[0] = ' ';
                              zzbegexpr[1] = ' ';
							  if ( zzbufovf ) {
								err( eMsgd("action buffer overflow; size %d",ZZLEXBUFSIZE));
							  }

/* MR1	10-Apr-97  MR1  Previously unable to put right shift operator	*/
/* MR1					in DLG action			*/
/* MR1			Doesn't matter what kind of action it is - reset*/

			      tokenActionActive=0;		 /* MR1 */
                            >>
#token Pred "\>\>?"			<< /* these do not nest */
                              zzmode(START);
                              NLATEXT[0] = ' ';
                              NLATEXT[1] = ' ';
                              zzbegexpr[0] = '\0';
							  if ( zzbufovf ) {
								err( eMsgd("predicate buffer overflow; size %d",ZZLEXBUFSIZE));
							  };
#ifdef __cplusplus__
/* MR10 */                    list_apply(CurActionLabels, (void (*)(void *))mark_label_used_in_sem_pred);
#else
#ifdef __STDC__
/* MR10 */                    list_apply(CurActionLabels, (void (*)(void *))mark_label_used_in_sem_pred);
#else
#ifdef __USE_PROTOS
/* MRxx */                    list_apply(CurActionLabels, (void (*)(void *))mark_label_used_in_sem_pred);
#else
/* MR10 */                    list_apply(CurActionLabels,mark_label_used_in_sem_pred);
#endif
#endif
#endif
                            >>
#token PassAction "\]"		<< if ( topint() == ']' ) {
								  popint();
								  if ( istackempty() )	/* terminate action */
								  {
									  zzmode(START);
									  NLATEXT[0] = ' ';
									  zzbegexpr[0] = ' ';
									  if ( zzbufovf ) {
										err( eMsgd("parameter buffer overflow; size %d",ZZLEXBUFSIZE));
									  }
								  }
								  else {
									  /* terminate $[..] and #[..] */
									  if ( GenCC ) zzreplstr("))");
									  else zzreplstr(")");
									  zzmore();
								  }
							   }
							   else if ( topint() == '|' ) { /* end of simple [...] */
								  popint();
								  zzmore();
							   }
							   else zzmore();
							>>
#token "consumeUntil\( [\ \t]* \{~[\}]+\} [\ \t]* \)"
   							<<
   							zzmore();
							zzreplstr(inline_set(zzbegexpr+
									  strlen("consumeUntil(")));
							>>
#token "consumeUntil\( ~[\)]+ \)"
							<< zzmore(); >>
#token "\n|\r|\r\n"			<< zzline++; zzmore(); DAWDLE; >>
#token "\>"					<< zzmore(); >>
#token "$"					<< zzmore(); >>
#token "$$"					<< if ( !GenCC ) {zzreplstr("zzaRet"); zzmore();}
							   else err("$$ use invalid in C++ mode"); >>

#token "$\[\]"				<< if ( !GenCC ) {zzreplstr("zzempty_attr"); zzmore();}
							   else err("$[] use invalid in C++ mode"); >>
#token "$\["				<<
							pushint(']');
							if ( !GenCC ) zzreplstr("zzconstr_attr(");
							else err("$[..] use invalid in C++ mode");
							zzmore();
							>>
#token "$[0-9]+"			<<{
							static char buf[100];
                            numericActionLabel=1;       /* MR10 */
							if ( strlen(zzbegexpr)>(size_t)85 )
								fatal("$i attrib ref too big");
							set_orel(atoi(zzbegexpr+1), &attribsRefdFromAction);
							if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%d,%s)",
										BlkLevel-1,zzbegexpr+1);
							else sprintf(buf,"_t%d%s",
										BlkLevel-1,zzbegexpr+1);
							zzreplstr(buf);
							zzmore();
							UsedOldStyleAttrib = 1;
							if ( UsedNewStyleLabel )
								err("cannot mix old-style $i with new-style labels");
							}
							>>
#token "$[0-9]+."			<<{
							static char buf[100];
                            numericActionLabel=1;       /* MR10 */
							if ( strlen(zzbegexpr)>(size_t)85 )
								fatal("$i.field attrib ref too big");
							zzbegexpr[strlen(zzbegexpr)-1] = ' ';
							set_orel(atoi(zzbegexpr+1), &attribsRefdFromAction);
							if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%d,%s).",
										BlkLevel-1,zzbegexpr+1);
							else sprintf(buf,"_t%d%s.",
										BlkLevel-1,zzbegexpr+1);
							zzreplstr(buf);
							zzmore();
							UsedOldStyleAttrib = 1;
							if ( UsedNewStyleLabel )
								err("cannot mix old-style $i with new-style labels");
							}
							>>
#token "$[0-9]+.[0-9]+"		<<{
							static char buf[100];
							static char i[20], j[20];
							char *p,*q;
                            numericActionLabel=1;       /* MR10 */
							if (strlen(zzbegexpr)>(size_t)85) fatal("$i.j attrib ref too big");
							for (p=zzbegexpr+1,q= &i[0]; *p!='.'; p++) {
								if ( q == &i[20] )
									 fatalFL("i of $i.j attrib ref too big",
											 FileStr[CurFile], zzline );
								*q++ = *p;
							}
							*q = '\0';
							for (p++, q= &j[0]; *p!='\0'; p++) {
								if ( q == &j[20] )
									fatalFL("j of $i.j attrib ref too big",
											FileStr[CurFile], zzline );
								*q++ = *p;
							}
							*q = '\0';
							if ( !GenCC ) sprintf(buf,"zzaArg(zztasp%s,%s)",i,j);
							else sprintf(buf,"_t%s%s",i,j);
							zzreplstr(buf);
							zzmore();
							UsedOldStyleAttrib = 1;
							if ( UsedNewStyleLabel )
								err("cannot mix old-style $i with new-style labels");
							}
							>>
#token "$[_a-zA-Z][_a-zA-Z0-9]*"
							<<{ static char buf[300]; LabelEntry *el;
							zzbegexpr[0] = ' ';
							if ( CurRule != NULL &&
								 strcmp(CurRule, &zzbegexpr[1])==0 ) {
								if ( !GenCC ) zzreplstr("zzaRet");
							}
							else if ( CurRetDef != NULL &&
									  strmember(CurRetDef, &zzbegexpr[1])) {
								 if ( hasMultipleOperands( CurRetDef ) ) {
									require (strlen(zzbegexpr)<=(size_t)285,
											 "$retval attrib ref too big");
									sprintf(buf,"_retv.%s",&zzbegexpr[1]);
									zzreplstr(buf);
								}
								else zzreplstr("_retv");
							}
							else if ( CurParmDef != NULL &&
									  strmember(CurParmDef, &zzbegexpr[1])) {
								;
							}
							else if ( Elabel==NULL ) {
								{ err("$-variables in actions outside of rules are not allowed"); }
							} else if ( (el=(LabelEntry *)hash_get(Elabel, &zzbegexpr[1]))!=NULL ) {
/* MR10 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产原创一区二区| 日韩福利电影在线| 日韩精品一区二区三区老鸭窝| 99久久国产免费看| 本田岬高潮一区二区三区| 成人免费电影视频| 成人黄色a**站在线观看| 成人黄色a**站在线观看| 高清视频一区二区| 国产99精品国产| 成人av中文字幕| 国产成人av电影免费在线观看| 蜜桃视频第一区免费观看| 青青草国产成人99久久| 久久99国产精品免费| 国精产品一区一区三区mba桃花 | 亚洲欧美日韩一区二区三区在线观看| 国产精品系列在线| 亚洲色图视频网站| 亚洲国产日韩一区二区| 秋霞av亚洲一区二区三| 国产乱妇无码大片在线观看| 成人午夜免费av| 欧美亚洲一区二区在线| 日韩午夜激情av| 久久一区二区三区国产精品| 亚洲少妇中出一区| 日韩电影在线免费观看| 久草在线在线精品观看| 风流少妇一区二区| 欧美日韩在线电影| 久久久欧美精品sm网站| 一区二区三区毛片| 国模无码大尺度一区二区三区| 国产成人精品一区二区三区四区 | 91网上在线视频| 欧美日韩一区二区三区在线| 精品免费日韩av| 日韩一区中文字幕| 精品在线一区二区三区| 97久久精品人人做人人爽50路| 欧美日韩另类国产亚洲欧美一级| 久久久精品tv| 五月婷婷欧美视频| 粉嫩av一区二区三区在线播放| 欧美日韩综合在线免费观看| 国产婷婷色一区二区三区四区| 一级特黄大欧美久久久| 国产福利一区在线| 欧美岛国在线观看| 亚洲午夜羞羞片| 成人免费看片app下载| 日韩欧美色电影| 一区二区三区鲁丝不卡| 国产91精品入口| 欧美第一区第二区| 日日夜夜免费精品视频| 91小视频免费观看| 欧美国产日韩亚洲一区| 国产一区二区三区免费看| 欧美喷水一区二区| 亚洲国产视频一区二区| 97久久超碰精品国产| 亚洲国产精品黑人久久久| 国产精品一区二区三区乱码| 欧美一级片在线观看| 午夜国产精品影院在线观看| 91玉足脚交白嫩脚丫在线播放| 久久婷婷久久一区二区三区| 日日嗨av一区二区三区四区| 91女神在线视频| 亚洲人成精品久久久久久| 国产91在线|亚洲| 国产女同互慰高潮91漫画| 激情综合色综合久久综合| 91精品国产欧美一区二区| 天堂久久一区二区三区| 欧美电影影音先锋| 美女免费视频一区| 2014亚洲片线观看视频免费| 久草精品在线观看| 国产夜色精品一区二区av| 国产曰批免费观看久久久| 国产婷婷色一区二区三区在线| 激情图片小说一区| 欧美高清在线一区二区| 国产一区二区不卡| 26uuu欧美日本| 国产精品12区| 自拍av一区二区三区| 床上的激情91.| 亚洲三级免费电影| 欧美日韩在线三区| 青青国产91久久久久久| 国产亚洲欧洲一区高清在线观看| 国内成人免费视频| 国产精品白丝在线| 欧美视频在线观看一区| 亚洲成人一二三| 久久亚洲综合色一区二区三区| 国产美女视频91| 国产精品久线在线观看| 99久久精品免费看国产免费软件| 亚洲免费观看在线观看| 欧美中文字幕一二三区视频| 日本欧美在线观看| 国产色91在线| 欧美日韩免费高清一区色橹橹| 日韩国产欧美三级| 国产精品久久久久四虎| 制服丝袜在线91| 国产成人午夜精品5599| 亚洲成人自拍网| 久久久久久一二三区| 波多野结衣亚洲一区| 天天综合天天做天天综合| 中国av一区二区三区| 欧美精品tushy高清| 福利电影一区二区三区| 日本麻豆一区二区三区视频| 亚洲少妇最新在线视频| 久久久久久99久久久精品网站| 色老综合老女人久久久| 国产精品66部| 丝袜亚洲另类丝袜在线| 亚洲黄色小视频| 国产网站一区二区三区| 欧美亚一区二区| av一本久道久久综合久久鬼色| 喷白浆一区二区| 亚洲午夜电影网| 亚洲精品v日韩精品| 国产人久久人人人人爽| 精品久久久久久久久久久久包黑料 | 欧美日本国产视频| 成人精品视频一区二区三区尤物| 日韩av不卡在线观看| 亚洲成人自拍偷拍| 亚洲成a人片在线不卡一二三区 | 国产精品一区二区免费不卡 | 26uuu成人网一区二区三区| 欧美四级电影网| 91黄色激情网站| 在线视频中文字幕一区二区| 成人黄色av网站在线| 粉嫩av一区二区三区在线播放 | 三级欧美韩日大片在线看| 亚洲精品国产一区二区精华液| 成人免费小视频| 亚洲情趣在线观看| 亚洲图片另类小说| 一区二区三区四区在线播放| 亚洲人成网站色在线观看| 亚洲欧美另类图片小说| 亚洲黄一区二区三区| 亚洲乱码中文字幕| 亚洲成人在线免费| 免费看欧美女人艹b| 欧美96一区二区免费视频| 经典三级一区二区| 成人免费福利片| 91国产成人在线| 欧美日本国产一区| ww亚洲ww在线观看国产| 国产日本亚洲高清| 一区二区三区在线视频免费 | 亚洲激情校园春色| 亚洲综合色噜噜狠狠| 亚洲国产综合人成综合网站| 亚洲成人免费视| 另类人妖一区二区av| 国产福利一区二区| 色94色欧美sute亚洲13| 欧美精品一卡二卡| 久久美女高清视频| 一区二区三区蜜桃网| 婷婷综合五月天| 成人中文字幕在线| 欧美在线看片a免费观看| 欧美大白屁股肥臀xxxxxx| 日本一区二区高清| 亚洲综合免费观看高清完整版| 九九九久久久精品| 色吊一区二区三区| 精品国偷自产国产一区| 亚洲欧美一区二区久久| 精品中文字幕一区二区小辣椒| 91在线视频播放| 久久综合国产精品| 亚洲成a人v欧美综合天堂下载 | 欧美老人xxxx18| 国产日本欧洲亚洲| 天堂av在线一区| av中文字幕一区| 亚洲精品在线网站| 亚洲欧洲www| 黄色小说综合网站| 制服.丝袜.亚洲.另类.中文| 国产精品视频线看| 久国产精品韩国三级视频|