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

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

?? parse.cpp

?? 用LL(1)方法分析四則運算
?? CPP
字號:

#include <iostream>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <stack>
#include "word_analysis.h"

using namespace std;

/*四則運算的語法規則
0	E->TP   1	P->ATP  2   P->$
3	T->FQ	4	Q->MFQ	5	Q->$
6	F->(E)	7	F->i	8	A->+
9	A->-	10	M->*	11	M->/
	$表示空串
*/


void error(char *err){
	printf("Error: %s",err);
}

//顯示棧中元素
void dump(stack< char > st)
{
	int i,j;
	char ch[100];
	j=st.size();
	for(i=0;i<j;i++)
	{
		ch[i]=st.top();
		st.pop();
	}
    for(i=j-1;i>=0;i--)
	{
	 printf("%c",ch[i]);
	 st.push(ch[i]);
	}
}



//檢查是否在非終結符數組VN中
//如果在返回位置,否則返回-1
int checkVN(char x,char VN[7]){
	int k=0;
	for(;k<7;k++)
		if(VN[k] == x)
			return k;
	return -1;
}

//檢查是否在終結符數組VT中
//如果在返回位置,否則返回-1
int checkVT(char x,char VT[8]){
	int k=0;
	for(;k<8;k++)
		if(VT[k] == x)
			return k;
	return -1;
}


void init_E_M(char Expression[12][7],int M[7][8]){
	int i,j;
	strcpy(Expression[0],"TP");		strcpy(Expression[1],"ATP");
	strcpy(Expression[2],"$");		strcpy(Expression[3],"FQ");
	strcpy(Expression[4],"MFQ");	strcpy(Expression[5],"$");
	strcpy(Expression[6],"(E)");	strcpy(Expression[7],"i");
	strcpy(Expression[8],"+");		strcpy(Expression[9],"-");
	strcpy(Expression[10],"*");		strcpy(Expression[11],"/");
	for(i=0;i<7;i++)
		for(j=0;j<8;j++)
			M[i][j] = -1;
	M[0][0]=0;	M[0][2]=0;	M[1][1]=2;	M[1][3]=1;	M[1][4]=1;	M[1][7]=2;	M[2][0]=3;
	M[2][2]=3;	M[3][1]=5;	M[3][3]=5;	M[3][4]=5;	M[3][7]=5;	M[3][5]=4;	M[3][6]=4;
	M[4][0]=6;	M[4][2]=7;	M[5][3]=8;	M[5][4]=9;	M[6][5]=10;	M[6][6]=11;
}


int syntax(char* input){
	char Expression[12][7];
	char VN[8],VT[9];//vt=" ()i+-*/# "
	int  M_VN_VT[7][8];
	unsigned int step=0;

	
	bool flag = false;
	stack< char > st;
	char X;//目前棧頂
	int xv=-1;//棧頂若為非終結符則為它在非終結符數組的位置
	int av=-1;//目前終結符在終結符數組的位置
	int expr;//表達式的標號
	int i=0;
	char* buff;
    int place=0;
	
	//初始化 終結符、非終結符數組
	strcpy(VT,"()i+-*/#");
	VT[8] = '\0';
	strcpy(VN,"EPTQFAM");
	VN[7] = '\0';

	//初始化表達式,初始化預測分析表
	init_E_M(Expression,M_VN_VT);
	

	//將#和起始非終結符壓入棧
	st.push('#');
	st.push('E');

	//得到詞法翻譯后的輸入串,以#結尾
	buff = read_sym(input);
	if(buff == NULL)
		return 0;//詞法分析錯誤
	av= checkVT(buff[place],VT);
	
	//屏幕顯示提示
	printf("Step:\tStack\tResidual inputString\n");


	while(!flag)//循環條件:沒有文法匹配成功
	{
		X = st.top();
		st.pop();
		xv = checkVN(X,VN);

		if(xv < 0 && X != '#') //如果是終結符
		{	
			if(X == buff[place])
			{
				place++;
				if(buff[place]== '$')
					return 0;
				av= checkVT(buff[place],VT);
			}//if X==a
			else{
				printf("%c,%c,syntax analysis error!\n",buff[place],X);
				printf("\t\tSomething Wrong!\n");
				puts("Syntax analysis Failed!");
				return 0;
			}
		}//if symvalid(x)

		else if(X == '#')
		{
			if(X == buff[place])
			{
				flag = true;//Success!
//				printf("\t\tMatch!\n");
				break;
			}
			else 
			{
				printf("%c,%c,syntax analysis error!\n",buff[place],X);
				printf("\t\tSomething Wrong!\n");
				puts("Syntax analysis Failed!");
				return 0;
			}
		}//if(x == '#')

		else if(M_VN_VT[xv][av] != -1)
		{
			expr = M_VN_VT[xv][av];
			
			//如果產生式有部是空串
			if(Expression[expr][0] == '$')
			{
				printf("%4d:\t",step++);
				dump(st);
				printf("\t\t%10s",&buff[place]);
				printf("\n");
				continue;
			}//$

			//產生式有部所有符號逆序進棧
			for(i = strlen(Expression[expr])-1; i >= 0 ;i--)
				st.push(Expression[expr][i]);

		}//ifM_VN_VT[][]

		else{
			//出錯
			error("Not Match character!");
			puts("Syntax analysis Failed!");
			return 0;
		}

		printf("%4d:\t",step++);
		dump(st);
		printf("\t\t%10s",&buff[place]);
		printf("\n");
	}
	
	if(flag = true)
		printf("Syntax analysis Succeed!\n");
	return 1; 
}


int main(){
	unsigned int len;
	char temp;
	char input[BUFSIZE];

	do{
		printf("請輸入四則運算表達式,用于檢測真偽:\n");
		gets(input);
	
		//初始化輸入串,使之以#結尾
		len=strlen(input);
		input[len]='#';
		input[len+1]='\0';

		//語法分析
		syntax(input);


		printf("是否想繼續查詢?\n");
		scanf("%c",&temp);
		getchar();
	}while(temp == 'y' || temp == 'Y');
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜在线免费| 美国十次了思思久久精品导航| 久久综合网色—综合色88| 欧美一区二区三区公司| 欧美一区午夜视频在线观看| 日韩一区二区三区观看| 在线成人高清不卡| 亚洲精品在线免费播放| 精品乱人伦小说| 亚洲免费电影在线| 天天操天天色综合| 成人毛片老司机大片| 91久久精品一区二区| 777欧美精品| 亚洲欧美自拍偷拍| 美腿丝袜亚洲综合| 在线观看91精品国产入口| 久久久高清一区二区三区| 中文字幕一区二区日韩精品绯色| 亚洲综合一区二区三区| 国产成人av一区二区三区在线 | 国产伦精品一区二区三区在线观看 | 亚洲欧美综合在线精品| 日韩精品电影一区亚洲| 99久久伊人网影院| 久久精品视频免费| 爽爽淫人综合网网站| 成人av免费观看| 精品av久久707| 麻豆视频观看网址久久| 欧美人与性动xxxx| 亚洲精品国久久99热| 北条麻妃国产九九精品视频| 26uuu精品一区二区三区四区在线| 亚洲精品一二三四区| 91网站黄www| 亚洲人成精品久久久久久| av一区二区三区| 一区二区视频免费在线观看| 91在线观看污| 亚洲视频香蕉人妖| 欧美在线999| 午夜a成v人精品| 日韩丝袜美女视频| 国产综合久久久久影院| 久久久国产综合精品女国产盗摄| 美国一区二区三区在线播放| 欧美成人精品高清在线播放| 蜜桃视频一区二区| 国产日韩精品一区| 欧美中文字幕久久| 色欧美乱欧美15图片| 依依成人综合视频| 国产不卡免费视频| 91精品国产综合久久久久| 国产精品情趣视频| 亚洲福利一区二区三区| 亚洲成人av资源| 欧美性受xxxx黑人xyx性爽| 日本视频在线一区| 国产精品福利电影一区二区三区四区| 成人国产一区二区三区精品| 一区二区三区免费网站| 日韩精品在线一区二区| 91在线观看一区二区| 老司机午夜精品| 一区二区三区在线免费| 欧美一区二区啪啪| 国产一区美女在线| 亚洲尤物视频在线| www国产成人| 日韩亚洲欧美在线观看| 色狠狠色狠狠综合| 成人国产精品免费网站| 麻豆一区二区99久久久久| 亚洲午夜免费电影| 1区2区3区精品视频| www日韩大片| 日韩欧美中文字幕一区| 欧美电影影音先锋| 欧美日韩国产免费| 色综合天天做天天爱| 丁香五精品蜜臀久久久久99网站| 三级不卡在线观看| 青青草一区二区三区| 日韩精品1区2区3区| 日韩高清不卡在线| 美女视频网站黄色亚洲| 免费在线视频一区| 国产乱码精品一区二区三区忘忧草 | 欧美人体做爰大胆视频| 色婷婷国产精品综合在线观看| 福利电影一区二区| 成人一道本在线| 91蜜桃网址入口| 91免费国产视频网站| 99精品视频一区二区三区| 91在线视频免费91| 欧美一卡在线观看| 中文av一区特黄| 亚洲丰满少妇videoshd| 另类欧美日韩国产在线| 精品一区二区三区在线观看| 国产一区美女在线| 99国内精品久久| 3751色影院一区二区三区| 久久日韩粉嫩一区二区三区| 国产精品成人一区二区艾草 | 亚洲免费在线视频| 亚洲精品免费播放| 亚洲精品水蜜桃| 国产在线观看一区二区| gogo大胆日本视频一区| 日韩视频一区在线观看| 一区二区三区在线观看国产| 国产在线国偷精品免费看| 欧美无砖砖区免费| 国产精品午夜久久| 久久精品国产亚洲a| 欧美三级电影一区| 亚洲精选视频在线| 精品一区二区三区视频| 蜜桃av一区二区在线观看| 99久久夜色精品国产网站| 中文字幕av一区二区三区高| 日韩av中文在线观看| 欧美三级资源在线| 日韩国产在线观看| 欧美一区二区三区的| 麻豆国产一区二区| 欧美tk—视频vk| 九色综合狠狠综合久久| 日韩精品一区在线观看| 精品无人码麻豆乱码1区2区 | 蜜臀久久99精品久久久久宅男| 欧美日韩视频在线第一区| 石原莉奈在线亚洲二区| 欧美成人三级在线| 在线影院国内精品| 亚洲国产综合在线| 99riav久久精品riav| 日韩一区二区精品在线观看| 亚洲欧洲日韩在线| 一区二区三区在线看| 高清不卡在线观看av| 91国在线观看| 久久精品网站免费观看| 国产精品一区免费在线观看| 久久免费偷拍视频| 精品亚洲欧美一区| 依依成人综合视频| 精品久久久久久久人人人人传媒| 成人丝袜18视频在线观看| 樱桃国产成人精品视频| 日韩一级黄色大片| 欧美性猛片xxxx免费看久爱| 麻豆精品视频在线| 亚洲男同性恋视频| 久久久久免费观看| 欧美少妇一区二区| 国内精品国产成人国产三级粉色| 亚洲精品国产精华液| 国产亚洲短视频| 久久众筹精品私拍模特| 91偷拍与自偷拍精品| 成年人午夜久久久| 国产在线不卡一区| 日韩国产精品久久久| 亚洲狠狠爱一区二区三区| 中文字幕日韩精品一区| 国产日韩视频一区二区三区| 精品久久五月天| 精品国产一区二区三区久久久蜜月| 在线观看免费亚洲| 国产福利精品一区二区| 韩国在线一区二区| 高清久久久久久| 99精品久久免费看蜜臀剧情介绍| 极品美女销魂一区二区三区| 另类小说欧美激情| 国产精品1024| 不卡在线观看av| 91黄视频在线| 3atv一区二区三区| 久久久亚洲国产美女国产盗摄| 精品蜜桃在线看| 国产目拍亚洲精品99久久精品| 国产精品日产欧美久久久久| 国产精品热久久久久夜色精品三区| 亚洲国产精品国自产拍av| 国产精品久久久久久户外露出 | 欧美sm美女调教| 中文欧美字幕免费| 亚洲国产精品一区二区久久| 国产在线精品一区二区夜色| 国产丶欧美丶日本不卡视频| 欧美日韩在线不卡| 日韩亚洲电影在线| 亚洲精品中文在线影院| 免费人成精品欧美精品|