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

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

?? scpascal.cpp

?? pascal編譯器
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		
		gofrom(i);
		i++;
	}
}

void InitparseTable(){				//初始化編譯表
	int i,j;
	for (i = 0; i<MAXSTATES; i++){
		for (j = 0; j<NUMOFSYMBOLS; j++){
			actionTable[i][j].typ = error;
		}
	}
	for (i = 0; i<MAXSTATES; i++){
		for (j = 0; j<NUMOFSYMBOLS; j++){
			gotoTable[i][j].typ = error;
		}
	}
	//遍歷goTable,此時actionTable和gotoTable已在gofrom(I)中被設置了一部分
}
void showLR1(){					//顯示LR1分析表
	int i;
	transnodePtr p;
	for (i = 0; i<numofLR1; i++){
		printf("%d ",LR1[i].length);
		p = LR1[i].tp;
		while(p != NULL){
			printf("%d%d%d ",p->formula,p->dot,p->forward);
			p = p->next;
		}
		printf("\n");

	}
}


void showActionTable(){				//顯示action表的動作
	int i,j;
	for (i = 0; i<numofLR1; i++){
		for (j = T1; j<=T2; j++){
			if (actionTable[i][j].typ == shift) {
				printf("s%d ",actionTable[i][j].ai.state);
			}else if(actionTable[i][j].typ== reduce){
				printf("r%d ",actionTable[i][j].ai.ri.formula);
			}else if(actionTable[i][j].typ == acc){
				printf("ac ");
			}else if (actionTable[i][j].typ == error){
				printf("   ");
			}
		}
		printf("\n");
	}
}
void showGotoTable(){				//顯示goto表的動作
	int i,j;
	for (i = 0; i<numofLR1; i++){
		for (j = NT1; j<=NT2; j++){
			if(gotoTable[i][j].typ == ok){
				printf("%d ",gotoTable[i][j].gi.state);
			}else{
				printf("  ");
			}
		}
		printf("\n");
	}
}
void testTable(){			//打印goto表與action表
	printf("actionTable:\n");
	showActionTable();
	printf("gotoTable:\n");
	showGotoTable();

}
void InitTable(){			//初始化所有的表
	Init();
	InitparseTable();
	InitLR1();
}


//S_ListNodePtr label_property;
//L_ListNodePtr currentNode;
int isKeyword(int x){
	return 1;
}


L_ListNodePtr currentPtr;
struct symbol_table* property;
int getLabel(){				//從記號流獲取記號類型.
	currentPtr = currentPtr->next;
	property = currentPtr->enter;
	int x = currentPtr->label_type;
    switch (x)
	{
	case op_equ:
		{
			x = rw_relop;
			break;
		}
	case op_nequ:
		{
			x = rw_relop;
			break;
		}
	case op_ls:
		{
			x = rw_relop;
			break;
		}
	case op_le:
		{
			x = rw_relop;
			break;
		}
	case op_gr:
		{
			x = rw_relop;
			break;
		}
	case op_ge:
		{
			x = rw_relop;
			break;
		}
	case op_add:
		{
			x = rw_addop;
			break;
		}
	case op_sub:
		{
			x = rw_addop;
			break;
		}
	case rw_or:
		{
			x = rw_addop;
			break;
		}
	case op_mul:
		{
			x = rw_mulop;
			break;
		}
	case op_div:
		{
			x = rw_mulop;
			break;
		}
	case rw_divv:
		{
			x = rw_mulop;
			break;
		}
	case rw_mod:
		{
			x = rw_mulop;
			break;
		}
	case rw_and:
		{
			x = rw_mulop;
			break;
		}
	}
	return (x);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////weilei////////////////////////////////////////////////////////////////////////////////////////////////

//移進歸約共用體的定義
union	action_types
{
	struct	label_stream *shift_type;		//移進,記號流指針
	int     production_num;					//歸約,產生式號
};

//id鏈表的定義
struct  id_list
{
	struct symbol_table *nodes;
	struct  id_list *next;
};

struct  id_list *head, *ps;

//parameter鏈表定義
struct para_list
{
	struct id_list *nodes;
	struct para_list *next;
};

struct  para_list *para_head,*para_ps;

//expression_list定義
int expr_list,expr_num;

//類型棧所保存的結構體定義
struct	type_stack_element{
			int		type_type;						//0基本類型,1復合類型(即數組類型)
			int		type_num;						//基本(或數組元素)類型號:1整型,2實型,3BOOL
			struct label_stream	*type_nodes;			//終結符的記號流指針
};
//類型棧的定義
struct type_stack_element *type_stack[MAX];
int type_point = 0;

int type_push(struct type_stack_element* x){			//壓入類型棧
	if (type_point == MAX){
		return 0;
	}else{
		type_point++;
		type_stack[type_point] = x;
		return 1;
	}
}

struct type_stack_element* type_pop(){				//彈出類型棧
		type_point--;
		return type_stack[type_point+1];
}


void type_check(int action_type,union action_types action_director)   //action_type==0移進,==1歸約
{					//類型檢查函數
	int i,j;
	struct type_stack_element * temp_element1,* temp_element2;
	
	if	(action_type==0)													//移進
		{
		  switch (action_director.shift_type->label_type)
			{
			
			case 0:														//id
				temp_element1=new struct type_stack_element;
				temp_element1->type_nodes=action_director.shift_type;
				temp_element1->type_type=temp_element1->type_nodes->enter->id_type_type;	
				temp_element1->type_num=temp_element1->type_nodes->enter->id_type;								
				
				type_push(temp_element1);
				break;

			case 1:							//num
				temp_element1= new struct type_stack_element;
				temp_element1->type_nodes=action_director.shift_type;
				temp_element1->type_type=0;	
				temp_element1->type_nodes->enter->id_type_type=0;
				temp_element1->type_num=1;									//int
				temp_element1->type_nodes->enter->id_type=1;
				for(i=0;i<63;i++)
					{
						if (action_director.shift_type->enter->name[i]=='.')
						{
							temp_element1->type_num=2;						//real						
							temp_element1->type_nodes->enter->id_type=2;
						}
					}
				
				type_push(temp_element1);
				break;

			case 6:														//boolean
				temp_element1=new struct type_stack_element;
				temp_element1->type_type=0;	
				temp_element1->type_num=3;								//bool
				temp_element1->type_nodes=action_director.shift_type;
				
				type_push(temp_element1);
				break;

			case 10:													//false
				temp_element1=new struct type_stack_element;
				temp_element1->type_type=0;	
				temp_element1->type_num=3;								//bool
				temp_element1->type_nodes=action_director.shift_type;
				
				type_push(temp_element1);
				break;

			case 13:													//integer
				temp_element1=new struct type_stack_element;
				temp_element1->type_type=0;	
				temp_element1->type_num=1;								//int
				temp_element1->type_nodes=action_director.shift_type;
				
				type_push(temp_element1);
				break;

			case 20:													//real
				temp_element1=new struct type_stack_element;
				temp_element1->type_type=0;	
				temp_element1->type_num=2;								//real
				temp_element1->type_nodes=action_director.shift_type;
				
				type_push(temp_element1);
				break;

			case 23:													//true
				temp_element1=new struct type_stack_element;
				temp_element1->type_type=0;	
				temp_element1->type_num=3;								//bool
				temp_element1->type_nodes=action_director.shift_type;
				
				type_push(temp_element1);
				break;
			case 47:							//id
				temp_element1= new struct type_stack_element;
				temp_element1->type_nodes=action_director.shift_type;
				temp_element1->type_type=0;	
				temp_element1->type_nodes->enter->id_type_type=0;
				temp_element1->type_num=1;									//int
				temp_element1->type_nodes->enter->id_type=1;
				type_push(temp_element1);
				break;

			}
		}else															//歸約
		{
		  switch  (action_director.production_num)
		  {
			case 2:
				type_pop();
				type_pop();
				break;

			case 4:
				temp_element1=type_pop();
				ps=head;
				head=new struct  id_list;
				head->next=ps;
				head->nodes=temp_element1->type_nodes->enter;
				
				
				break;

			case 5:
				temp_element1=type_pop();
				head=new struct  id_list;
				head->next=NULL;
				head->nodes=temp_element1->type_nodes->enter;

		//		para_head=new struct para_list;
		//		para_head->nodes=head;
		//		para_head->next=NULL;
				
				type_push(temp_element1);
				break;
			
			case 8:
				temp_element1=type_pop();
				while (!(head->next==NULL))
					{
						head->nodes->id_type=temp_element1->type_num;
						head->nodes->id_type_type=temp_element1->type_type;
						head->nodes->function_type=0;
						head=head->next;
					} 
				if ((head->nodes->id_type==1)||(head->nodes->id_type==2)||(head->nodes->id_type==3))
				{printf("Redirection error!\n");} else {
				head->nodes->id_type=temp_element1->type_num;
				head->nodes->id_type_type=temp_element1->type_type;
				head->nodes->function_type=0;}

				type_pop();
				break;

			case 9:
				temp_element1=type_pop();
				while (!(head->next==NULL))
					{
						head->nodes->id_type=temp_element1->type_num;
						head->nodes->id_type_type=temp_element1->type_type;
						head->nodes->function_type=0;
						head=head->next;
					} 
				if ((head->nodes->id_type==1)||(head->nodes->id_type==2)||(head->nodes->id_type==3))
				{printf("Redirection error!\n");} else {
				head->nodes->id_type=temp_element1->type_num;
				head->nodes->id_type_type=temp_element1->type_type;
				head->nodes->function_type=0;}
	//			head->nodes->id_type=temp_element1->type_num;
	//			head->nodes->id_type_type=temp_element1->type_type;
	//			head->nodes->function_type=0;

				type_pop();
				break;

			case 11:
				temp_element1=type_pop();
				temp_element1->type_type=1;
				type_pop();
				type_pop();
				type_push(temp_element1);
				break;

			case 16:
				temp_element1=type_pop();
				type_pop();
				type_push(temp_element1);
				break;
/////////////////////////////////////////////////////////////////////////////////////////
			case 20:

				temp_element1=type_pop();
				temp_element2=type_pop();
				temp_element2->type_nodes->enter->id_type=temp_element1->type_num;
				temp_element2->type_nodes->enter->function_type=1;
				temp_element2->type_nodes->enter->function_para=0;
//////////////////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@			
				while (!(para_head==NULL))
				{
					while (!(para_head->nodes==NULL))
					{
						temp_element2->type_nodes->enter->function_para=
							temp_element2->type_nodes->enter->function_para*10+para_head->nodes->nodes->id_type;
						para_head->nodes=para_head->nodes->next;
					}
					para_head=para_head->next;
				}
//////////////////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
				
				break;

			case 21:
				temp_element2=type_pop();
				temp_element2->type_nodes->enter->id_type=0;
				temp_element2->type_nodes->enter->function_type=1;
				break;

			case 23:
				para_head=NULL;
				break;

			case 24:
				temp_element1=type_pop();
				
				para_ps=para_head;
				para_head=new struct para_list;
				para_head->nodes=head;
				para_head->next=para_ps;

				while (!(head->next==NULL))
					{
						head->nodes->id_type=temp_element1->type_num;
						head->nodes->id_type_type=temp_element1->type_type;
						head->nodes->function_type=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区免费看| 欧美日韩极品在线观看一区| 亚洲另类春色国产| 日韩亚洲欧美成人一区| caoporen国产精品视频| 麻豆视频观看网址久久| 一区二区三区欧美激情| 精品国产第一区二区三区观看体验| 91在线观看免费视频| 国内精品国产成人国产三级粉色 | 一区二区三区成人| 精品捆绑美女sm三区| 欧美亚洲图片小说| 99久久久无码国产精品| 极品尤物av久久免费看| 亚洲综合一区二区三区| 国产精品天美传媒| 欧美videossexotv100| 欧美日韩卡一卡二| 色婷婷久久久综合中文字幕| 韩国av一区二区三区四区| 天天影视网天天综合色在线播放| 中文字幕一区二区三区不卡在线| 欧美精品一区二区高清在线观看| 欧美日韩成人在线一区| 91色|porny| 白白色亚洲国产精品| 国产精一区二区三区| 理论电影国产精品| 青青国产91久久久久久| 亚洲一区免费在线观看| 亚洲欧美电影院| 亚洲男女一区二区三区| 一区在线观看视频| 国产精品成人免费在线| 中文成人综合网| 中国av一区二区三区| 久久久亚洲精品石原莉奈| xnxx国产精品| 久久综合网色—综合色88| 91精品啪在线观看国产60岁| 欧美精品777| 91精品婷婷国产综合久久性色 | 日韩欧美国产wwwww| 欧美军同video69gay| 欧美日韩国产综合一区二区| 欧美性生活大片视频| 欧美日韩国产bt| 4438x成人网最大色成网站| 欧美日韩国产经典色站一区二区三区| 欧美视频在线一区二区三区| 欧美日韩欧美一区二区| 欧美日韩精品欧美日韩精品一综合| 欧美区一区二区三区| 日韩一级片在线观看| www国产成人免费观看视频 深夜成人网| 久久先锋影音av鲁色资源网| 国产欧美一区二区三区网站| 日本一区二区三区四区在线视频| 亚洲欧洲av另类| 亚洲国产aⅴ天堂久久| 美女尤物国产一区| 国产91色综合久久免费分享| 成人av网站免费| 欧美视频自拍偷拍| 精品国产凹凸成av人网站| 久久精品亚洲精品国产欧美| 国产精品美女久久福利网站| 一区二区三区欧美日韩| 裸体一区二区三区| 成人精品鲁一区一区二区| 欧美性猛交一区二区三区精品| 欧美一区二区在线观看| 国产欧美日韩精品一区| 亚洲精品久久嫩草网站秘色| 亚洲亚洲精品在线观看| 久久99精品久久久久久| 丰满少妇在线播放bd日韩电影| 一本大道综合伊人精品热热 | 亚洲人成精品久久久久| 偷拍日韩校园综合在线| 国产自产高清不卡| 欧洲一区在线观看| www久久精品| 亚洲国产精品久久久久秋霞影院| 精品一区精品二区高清| 欧美亚洲另类激情小说| 国产日产欧美精品一区二区三区| 伊人婷婷欧美激情| 韩国女主播一区二区三区| 91成人网在线| 国产亚洲精品aa| 亚洲高清视频中文字幕| 国产成人在线网站| 69堂亚洲精品首页| 国产精品你懂的| 蜜乳av一区二区| 色哟哟一区二区三区| 精品伦理精品一区| 亚洲韩国一区二区三区| 成人小视频免费在线观看| 欧美精品v日韩精品v韩国精品v| 国产精品女人毛片| 国产露脸91国语对白| 欧美精品一卡二卡| 一二三区精品福利视频| 懂色av噜噜一区二区三区av| 欧美久久久久久久久中文字幕| 国产精品久久久久久久久免费桃花| 美女免费视频一区二区| 欧美亚男人的天堂| 亚洲精品国产视频| 高清不卡一区二区| 欧美精品一区二区三区四区 | 国产成人精品免费一区二区| 欧美日韩国产中文| 亚洲尤物在线视频观看| 波多野结衣中文一区| 亚洲国产精品av| 国产一区二区免费看| 日韩视频免费直播| 日韩电影免费一区| 欧美日韩三级一区二区| 亚洲国产日韩精品| 在线中文字幕一区二区| 一区精品在线播放| 成人国产精品免费观看| 欧美国产精品中文字幕| 国产伦精品一区二区三区在线观看 | 国产成人综合亚洲91猫咪| 精品欧美一区二区在线观看| 奇米影视在线99精品| 欧美一区二区三区电影| 亚洲高清一区二区三区| 欧美日韩免费一区二区三区视频| 亚洲精品日韩综合观看成人91| 99久久99久久久精品齐齐| 中文字幕五月欧美| 91免费在线视频观看| 亚洲毛片av在线| 欧美亚洲高清一区| 午夜精品久久久久久久久| 欧美日本免费一区二区三区| 亚洲成人午夜电影| 91精品在线免费| 韩国v欧美v日本v亚洲v| 久久久www免费人成精品| 国产夫妻精品视频| 最近中文字幕一区二区三区| 91丝袜美女网| 亚洲va国产天堂va久久en| 欧美日本韩国一区| 韩国女主播一区二区三区| 日本一区二区三区国色天香| 97成人超碰视| 亚洲第一精品在线| 日韩欧美国产高清| 成人短视频下载 | 精品一区二区成人精品| 久久久午夜电影| 99re66热这里只有精品3直播| 亚洲另类春色国产| 91精品国产综合久久精品麻豆| 捆绑紧缚一区二区三区视频| 欧美极品美女视频| 欧美少妇bbb| 狠狠久久亚洲欧美| 亚洲色图都市小说| 91精品视频网| 国产iv一区二区三区| 一区二区三区日本| 2019国产精品| 色婷婷综合久久久久中文一区二区| 调教+趴+乳夹+国产+精品| 久久欧美中文字幕| 91久久国产综合久久| 麻豆视频观看网址久久| 亚洲丝袜自拍清纯另类| 日韩视频一区二区三区在线播放| fc2成人免费人成在线观看播放| 亚洲影院理伦片| 久久久久久久国产精品影院| 在线亚洲免费视频| 久久 天天综合| 亚洲综合激情小说| 国产三级一区二区| 精品视频一区三区九区| 国产suv精品一区二区6| 日韩激情视频网站| 日韩毛片视频在线看| 日韩欧美在线123| 色94色欧美sute亚洲线路一ni| 久久91精品国产91久久小草| 亚洲人成网站色在线观看| 久久综合狠狠综合久久综合88| 欧美性大战xxxxx久久久| 国产成人三级在线观看| 青青草原综合久久大伊人精品优势| 亚洲欧美另类久久久精品| 欧美精品一区二区三区一线天视频 |