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

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

?? antlr.g

?? SRI international 發布的OAA框架軟件
?? G
?? 第 1 頁 / 共 5 頁
字號:
/* MR10 */              strncat(ClassDeclStuff,LATEXT(1),MaxClassDeclStuff);
/* MR22 */              do {
/* MR22 */                if (0 == strcmp(LATEXT(1),"public")) break;
/* MR22 */                if (0 == strcmp(LATEXT(1),"private")) break;
/* MR22 */                if (0 == strcmp(LATEXT(1),"protected")) break;
/* MR22 */                if (0 == strcmp(LATEXT(1),"virtual")) break;
/* MR22 */                if (0 == strcmp(LATEXT(1),",")) break;
/* MR22 */                if (0 == strcmp(LATEXT(1),":")) break;
/* MR22 */                if (BaseClassName != NULL) break;
/* MR22 */                BaseClassName=(char *)calloc(strlen(LATEXT(1))+1,sizeof(char));
/* MR22 */                require(BaseClassName!=NULL, "rule grammar: cannot allocate base class name");
/* MR22 */				  strcpy(BaseClassName,LATEXT(1));
/* MR22 */              } while (0);
/* MR10 */            >>
/* MR10 */  )*

		"\{"
		<<
		no_classes_found = 0;
		if ( class_nest_level>=1 ) {warn("cannot have nested classes");}
		else class_nest_level++;
		>>
	;
	<<CannotContinue=TRUE;>>

/*
 * Build -o-->o-R-o-->o-	where -o-R-o- is the block from rule 'block'.
 * Construct the RuleBlk front and EndRule node on the end of the
 * block.  This is used to add FOLLOW pointers to the rule end.  Add the
 * new rule name to the Rname hash table and sets its rulenum.
 * Store the parameter definitions if any are found.
 *
 * Note that locks are required on the RuleBlk and EndRule nodes to thwart
 * infinite recursion.
 *
 * Return the left graph pointer == NULL to indicate error/dupl rule def.
 */

/* rule rule */

rule	:	<<

			ExceptionGroup *eg;
			RuleEntry *q; Junction *p; Graph r; int f, l; ECnode *e;
			set toksrefd, rulesrefd;
			char *pdecl=NULL, *ret=NULL, *a; CurRetDef = CurParmDef = NULL;
			CurExGroups = NULL;
			CurElementLabels = NULL;
			CurAstLabelsInActions = NULL; /* MR27 */
			/* We want a new element label hash table for each rule */
			if ( Elabel!=NULL ) killHashTable(Elabel);
			Elabel = newHashTable();
			attribsRefdFromAction = empty;
			>>
			NonTerminal
			<<q=NULL;
			  if ( hash_get(Rname, LATEXT(1))!=NULL ) {
				  err(eMsg1("duplicate rule definition: '%s'",LATEXT(1)));
				  CannotContinue=TRUE;
			  }
			  else
			  {
			  	  q = (RuleEntry *)hash_add(Rname,
											LATEXT(1),
											(Entry *)newRuleEntry(LATEXT(1)));
			      CurRule = q->str;
			  }
			  CurRuleNode = q;
			  f = CurFile; l = zzline;
			  NumRules++;
			>>
			{	"!"  <<if ( q!=NULL ) q->noAST = TRUE;>> }
			{	<<;>>
				{"\<"}
				PassAction
				<<	pdecl = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
					require(pdecl!=NULL, "rule rule: cannot allocate param decl");
					strcpy(pdecl, LATEXT(1));
					CurParmDef = pdecl;
				>>
			}
			{	"\>"
				PassAction
				<<	ret = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
				    require(ret!=NULL, "rule rule: cannot allocate ret type");
					strcpy(ret, LATEXT(1));
 					CurRetDef = ret;
				>>
			}
			{ QuotedTerm <<if ( q!=NULL ) q->egroup=mystrdup(LATEXT(1));>> }
			<<
			if ( GenEClasseForRules && q!=NULL ) {
				e = newECnode;
				require(e!=NULL, "cannot allocate error class node");
				if ( q->egroup == NULL ) {a = q->str; a[0] = (char)toupper(a[0]);}
				else a = q->egroup;
				if ( Tnum( a ) == 0 )
				{
					e->tok = addTname( a );
					list_add(&eclasses, (char *)e);
					if ( q->egroup == NULL ) a[0] = (char)tolower(a[0]);
					/* refers to itself */
					list_add(&(e->elist), mystrdup(q->str));
				}
				else {
					warn(eMsg1("default errclass for '%s' would conflict with token/errclass/tokclass",a));
					if ( q->egroup == NULL ) a[0] = (char)tolower(a[0]);
					free((char *)e);
				}
			}
			>>
			<<BlkLevel++;
              if (BlkLevel >= MAX_BLK_LEVEL) fatal("Blocks nested too deeply");
/* MR23 */    CurBlockID_array[BlkLevel] = CurBlockID;
/* MR23 */    CurAltNum_array[BlkLevel] = CurAltNum;                
            >>

			":" <<inAlt=1;>>
			block[&toksrefd, &rulesrefd]
			<<r = makeBlk($7,0, NULL /* pFirstSetSymbol */ );
			  CurRuleBlk = (Junction *)r.left;
			  CurRuleBlk->blockid = CurBlockID;
			  CurRuleBlk->jtype = RuleBlk;
			  if ( q!=NULL ) CurRuleBlk->rname = q->str;
			  CurRuleBlk->file = f;
			  CurRuleBlk->line = l;
			  CurRuleBlk->pdecl = pdecl;
			  CurRuleBlk->ret = ret;
			  CurRuleBlk->lock = makelocks();
			  CurRuleBlk->pred_lock = makelocks();
			  CurRuleBlk->tokrefs = toksrefd;
			  CurRuleBlk->rulerefs = rulesrefd;
			  p = newJunction();	/* add EndRule Node */
			  ((Junction *)r.right)->p1 = (Node *)p;
			  r.right = (Node *) p;
			  p->jtype = EndRule;
			  p->lock = makelocks();
			  p->pred_lock = makelocks();
			  CurRuleBlk->end = p;
			  if ( q!=NULL ) q->rulenum = NumRules;
			  $7 = r;
			>>
			<<
                /* MR23 */      CurBlockID_array[BlkLevel] = (-1);
                /* MR23 */      CurAltNum_array[BlkLevel] = (-1);                
                --BlkLevel;
            >>
            <<altFixup();leFixup();egFixup();>>                      /* MR7 */
			";" <<inAlt=0;>>
			{	Action
				<<	a = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
					require(a!=NULL, "rule rule: cannot allocate error action");
					strcpy(a, LATEXT(1));
					CurRuleBlk->erraction = a;
				>>
			}
			(	exception_group > [eg]
				<<if ( eg!=NULL ) {
					list_add(&CurExGroups, (void *)eg);
					if (eg->label == NULL || *eg->label=='\0' ) q->has_rule_exception = 1;
			    }
				>>
			)*
			<<if ( q==NULL ) $0.left = NULL; else $0 = $7;>>
			<<CurRuleBlk->exceptions = CurExGroups;>>
			<<CurRuleBlk->el_labels = CurElementLabels;>>
			<<CurRuleNode->ast_labels_in_actions = CurAstLabelsInActions;>> /* MR27 */
			<<CurRuleNode = NULL;>> /* MR27 Moved */
		;
		<<CannotContinue=TRUE;>>

/*
 * pragma	:	"{\\}#pragma" "dup\-labeled\-tokens"
 *			<<Pragma_DupLabeledTokens=1;>>
 *		;
 */

/* rule laction */

laction	:	<<char *a;>>

			"{\\}#lexaction"
			Action
			<<
			a = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
			require(a!=NULL, "rule laction: cannot allocate action");
			strcpy(a, LATEXT(1));
			list_add(&LexActions, a);
			>>
		;
		<<CannotContinue=TRUE;>>

/* MR1									    */
/* MR1  11-Apr-97	Provide mechanism for inserting code into DLG class */
/* MR1			  via #lexmember <<....>> & #lexprefix <<...>>      */
/* MR1									    */

/* rule lmember */

lmember:	<<char *a;>>					     /* MR1 */

/* MR1 */		"{\\}#lexmember"
/* MR1 */		Action
/* MR1 */		<<
/* MR1 */		if (! GenCC) {
/* MR1 */		  err("Use #lexmember only in C++ mode (to insert code in DLG class header");
/* MR1 */	        } else {
/* MR1 */		  a = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
/* MR1 */		  require(a!=NULL, "rule lmember: cannot allocate action");
/* MR1 */		  strcpy(a, LATEXT(1));
/* MR1 */		  list_add(&LexMemberActions, a);
/* MR1 */		};
/* MR1 */		>>
/* MR1 */	;
/* MR1 */	<<CannotContinue=TRUE;>>

/* rule lprefix */

lprefix:	<<char *a;>>					     /* MR1 */

/* MR1 */		"{\\}#lexprefix"
/* MR1 */		Action
/* MR1 */		<<
/* MR1 */		if (! GenCC) {
/* MR1 */		  err("Use #lexprefix only in C++ mode (to insert code in DLG class header");
/* MR1 */	        } else {
/* MR1 */		  a = (char *) calloc(strlen(LATEXT(1))+1, sizeof(char));
/* MR1 */		  require(a!=NULL, "rule lprefix: cannot allocate action");
/* MR1 */		  strcpy(a, LATEXT(1));
/* MR1 */		  list_add(&LexPrefixActions, a);
/* MR1 */		};
/* MR1 */		>>
/* MR1 */	;
/* MR1 */	<<CannotContinue=TRUE;>>

/*
 * #pred upper        <<isupper()>>?            predicate literal
 * #pred lower        <<islower()>>?            predicate literal
 * #pred up_or_low    upper || lower            predicate expression
 *                                                concealed interdependence
 * #pred up_or_low_2  <<isletter()>>?  A || B   predicate literal equals predicate expr
 *                                                analyze using lower||upper
 *                                                generate using isLetter()
 */

/* rule aPref */

aPred:  <<PredEntry     *predEntry=NULL;
          char          *name=NULL;
          Predicate     *predExpr=NULL;
          char          *predLiteral=NULL;
          int           save_file;
          int           save_line;
          int           predExprPresent=0;
        >>

        "{\\}#pred"

        <<
          MR_usingPredNames=1;      /* will need to use -mrhoist version of genPredTree */
        >>

                                    /* used to allow NonTerminal but it caused problems
                                       when a rule name immediately followed a #pred statement */

        TokenTerm     <<name=mystrdup(LATEXT(1));>>

          <<
            /* don't free - referenced in predicates */

            CurPredName=(char *)calloc(1,strlen(name) + 10);
            strcat(CurPredName,"#pred ");
            strcat(CurPredName,name);

            predEntry=(PredEntry *) hash_get(Pname,name);
            if (predEntry != NULL) {
              warnFL(eMsg1("#pred %s previously defined - ignored",name),
                                              FileStr[action_file],action_line);
              name=NULL;
            };
          >>

        (

            Pred    <<predLiteral=mystrdup(LATEXT(1));
                      save_line=action_line;
                      save_file=action_file;
                    >>

              {
                    predOrExpr>[predExpr]   <<predExprPresent=1;>>
              }

              <<if (predLiteral != NULL && name != NULL) {

                      /*
                       *  predExpr may be NULL due to syntax errors
                       *    or simply omitted by the user
                      */

                      predEntry=newPredEntry(name);
                      predEntry->file=save_file;
                      predEntry->line=save_line;
                      predExpr=MR_predFlatten(predExpr);
                      predEntry->predLiteral=predLiteral;
                      if (! predExprPresent || predExpr == NULL) {
                        predExpr=new_pred();
                        predExpr->expr=predLiteral;
                        predExpr->source=newActionNode();
                        predExpr->source->action=predExpr->expr;
                        predExpr->source->rname=CurPredName;
                        predExpr->source->line=action_line;
                        predExpr->source->file=action_file;
                        predExpr->source->is_predicate=1;
                        predExpr->k=predicateLookaheadDepth(predExpr->source);
                      };
                      predEntry->pred=predExpr;
                      hash_add(Pname,name,(Entry *)predEntry);
                      predExpr=NULL;
                };
                predicate_free(predExpr);
              >>

            |
               <<save_line=zzline; save_file=CurFile;>>

                predOrExpr>[predExpr]

              <<if (predExpr != NULL && name != NULL) {
                  predEntry=newPredEntry(name);
                  predEntry->file=CurFile;
                  predEntry->line=zzline;
                  predExpr=MR_predFlatten(predExpr);
                  predEntry->pred=predExpr;
                  hash_add(Pname,name,(Entry *)predEntry);
                  predExpr=NULL;
                };
                predicate_free(predExpr);
              >>
        )
        {";"}
;

/* fail */

<<predicate_free(predExpr);
>>

/* rule predOrExpr */

predOrExpr>[Predicate *result] :
            <<Predicate     *ORnode;
              Predicate     *predExpr;
              Predicate     **tail=NULL;
            >>
        predAndExpr>[predExpr]
            <<
                ORnode=new_pred();
                ORnode->expr=PRED_OR_LIST;
                if (predExpr != NULL) {
                    ORnode->down=predExpr;
                    tail=&predExpr->right;
                };
            >>
        ( "\|\|"  predAndExpr>[predExpr]
            <<
                if (predExpr != NULL) {
                    *tail=predExpr;
                    tail=&predExpr->right;
                };
            >>
        )*
        <<
            $result=ORnode;
            ORnode=NULL;
        >>
;

/* fail */

<<predicate_free(ORnode);>>

/* rule predAndExpr */

predAndExpr>[Predicate *result] :
            <<Predicate     *ANDnode;
              Predicate     *predExpr;
              Predicate     **tail=NULL;
            >>
        predPrimary>[predExpr]
            <<

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线播放| 欧美日本一区二区三区| 91女厕偷拍女厕偷拍高清| 日韩亚洲欧美综合| 一区二区视频免费在线观看| 国产一区二区免费在线| 在线综合视频播放| 亚洲精品免费电影| 成人app下载| 久久久久久久精| 久久精品国产精品亚洲红杏| 欧美日韩一区在线| 夜夜操天天操亚洲| 91老师片黄在线观看| 欧美激情一区二区三区全黄 | 美腿丝袜亚洲三区| 欧美在线|欧美| 中文字幕佐山爱一区二区免费| 久久9热精品视频| 欧美一区二区久久| 亚洲bt欧美bt精品| 欧美日韩在线播| 亚洲国产另类av| 欧美性淫爽ww久久久久无| 中文字幕一区三区| 不卡电影一区二区三区| 中文字幕第一区第二区| 国产盗摄女厕一区二区三区| 精品久久久久久无| 国产乱人伦偷精品视频不卡| 欧美电影免费观看高清完整版在线| 天天综合色天天综合色h| 欧美乱妇15p| 蜜臂av日日欢夜夜爽一区| 欧美一级在线观看| 国内精品视频666| 久久久www成人免费毛片麻豆| 国产一区不卡精品| 国产精品热久久久久夜色精品三区| 国产综合成人久久大片91| 久久日韩精品一区二区五区| 国产高清视频一区| 中文字幕亚洲区| 色88888久久久久久影院野外| 一区二区三区中文免费| 制服丝袜一区二区三区| 久久精品国内一区二区三区| 精品处破学生在线二十三| 丁香婷婷综合色啪| 亚洲精品videosex极品| 欧美日韩1234| 国产在线看一区| 国产精品网友自拍| 在线看日本不卡| 麻豆国产欧美一区二区三区| 久久久国产精华| 91国产丝袜在线播放| 欧美96一区二区免费视频| 久久久一区二区三区捆绑**| 92国产精品观看| 日本欧美加勒比视频| 国产日产欧美一区| 欧美丝袜丝nylons| 狠狠色丁香久久婷婷综合_中| 综合久久久久久| 91精品国产黑色紧身裤美女| 粉嫩一区二区三区在线看| 亚洲激情综合网| 精品国产麻豆免费人成网站| 91免费国产在线| 久久99九九99精品| 一区二区久久久久| 亚洲精品一区二区三区在线观看| 99精品国产视频| 蜜臀久久99精品久久久画质超高清| 国产精品素人视频| 欧美日韩国产美女| 不卡的av网站| 精品一区二区在线看| 一区二区三区国产精品| 2024国产精品视频| 欧美精品国产精品| 99久久综合狠狠综合久久| 麻豆精品一区二区综合av| 亚洲美女免费视频| 国产清纯美女被跳蛋高潮一区二区久久w | 成人一道本在线| 毛片不卡一区二区| 亚洲成av人**亚洲成av**| 国产精品久久久久影院色老大| 欧美一区二区啪啪| 欧美日韩二区三区| 欧美在线啊v一区| 97国产一区二区| 成人午夜电影久久影院| 久久99国产精品久久| 视频在线观看国产精品| 亚洲综合激情另类小说区| 亚洲欧美自拍偷拍| 国产农村妇女精品| 国产亚洲精品超碰| 精品国产精品一区二区夜夜嗨| 在线成人av影院| 欧美日韩亚洲高清一区二区| 91蜜桃免费观看视频| av中文字幕在线不卡| 成人免费毛片app| 成人晚上爱看视频| 成人在线一区二区三区| 成人性生交大片免费看在线播放| 加勒比av一区二区| 国产综合成人久久大片91| 九九国产精品视频| 国产一区二区三区在线观看免费视频 | 国产伦精品一区二区三区在线观看| 首页国产欧美久久| 免费av成人在线| 美女在线一区二区| 国产一区二区精品久久99| 国产一区二区免费视频| 国产成人精品影视| 99视频在线观看一区三区| 91在线国内视频| 91极品美女在线| 欧美丰满嫩嫩电影| www国产精品av| 久久久99精品久久| 国产精品久久99| 一区二区三区在线影院| 日本欧美在线看| 国产美女在线精品| 99精品视频在线免费观看| 91视频com| 制服丝袜亚洲色图| 久久久久综合网| 亚洲欧美在线高清| 午夜精品免费在线观看| 老司机免费视频一区二区| 国产成人综合亚洲网站| 91污在线观看| 日韩欧美一区二区久久婷婷| 国产亚洲精品超碰| 亚洲一区二区三区四区的| 日欧美一区二区| 国产福利一区在线| 色婷婷久久一区二区三区麻豆| 91精品中文字幕一区二区三区| 久久嫩草精品久久久精品一| 亚洲精品中文字幕在线观看| 日韩电影网1区2区| 成人福利视频在线看| 欧美日韩精品久久久| 国产日韩一级二级三级| 亚洲成人tv网| 国产高清久久久| 欧美日韩亚洲另类| 国产精品无码永久免费888| 日韩在线播放一区二区| 高清国产午夜精品久久久久久| 欧美久久久一区| 国产精品每日更新在线播放网址| 日本女优在线视频一区二区| 91丨九色丨黑人外教| 欧美tickling挠脚心丨vk| 一区二区三区不卡视频 | 污片在线观看一区二区| 国产精品影音先锋| 在线成人小视频| 日韩美女视频一区二区| 国产精品99久久久久久有的能看| 56国语精品自产拍在线观看| 亚洲欧美在线观看| 国产成人8x视频一区二区| 欧美福利一区二区| 亚洲精品高清视频在线观看| 成人一级片在线观看| 久久综合久久综合亚洲| 日韩电影一二三区| 欧美日韩久久久| 亚洲女子a中天字幕| 成人综合婷婷国产精品久久蜜臀| 日韩精品在线一区二区| 亚洲国产日日夜夜| 欧美在线高清视频| 亚洲欧美欧美一区二区三区| 成熟亚洲日本毛茸茸凸凹| 久久久国产精品麻豆| 久久成人综合网| 日韩小视频在线观看专区| 亚洲午夜激情网站| 欧美色爱综合网| 亚洲国产日产av| 欧美日韩视频专区在线播放| 亚洲精品国产a| 91黄视频在线观看| 亚洲电影第三页| 欧美二区在线观看| 日本欧美加勒比视频| 欧美一区二区日韩一区二区| 麻豆成人久久精品二区三区红|