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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? fenxi.cpp

?? 一個(gè)成功的編譯器
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/************************************************************************ 
* 文件名:    FenXi.cpp 
* 文件描述:  詞法語(yǔ)法分析的實(shí)現(xiàn)文件
* 創(chuàng)建人:    程紅秀, 2005年06月15日 
************************************************************************/ 
#include "stdafx.h"
#include "fenxi.h"


/*================================================================ 
* 函數(shù)名:    CiFaFenXi
* 功能描述:   詞法分析 (public)
* 返回值:    void
================================================================*/
void CFenXi::CiFaFenXi()
{
	BOOL flag=false;
	char token[20];
	int k,v;
	
	init();

	for (int i=0;i<m_n;i++)  //當(dāng)?shù)?次調(diào)用該函數(shù)時(shí),就要釋放前1次的資源
		delete m_cifa[i];
	
	int n=0;		//用于指示當(dāng)前的字符
	m_n=0;			//詞法結(jié)果的個(gè)數(shù)
	
	while (m_str[n])
	{
		if (flag)
		{
			while (!((m_str[n]=='*')&&(m_str[n+1]=='/')))
			{
				if (m_str[n]) 
					n++;
				else 
					break;
			}
			
			if (m_str[n])
			{
				n++;
				n++;
				flag=false;
			}
		}
		while (1)
		{
			while ((m_str[n]==32) || (m_str[n]==9))
				n++;
			
			if (!((m_str[n]==13) && (m_str[n+1]==10)))
				break;
			
			n++;
			n++;
		}

		
		if (isalpha(m_str[n]))		//字母
		{
			k=0;
			while (1)
			{
				if (k<19)				//標(biāo)志符的長(zhǎng)度為20
					token[k++]=m_str[n++];
				else 
					n++;
				
				if (!isalnum(m_str[n])) //如果不是數(shù)字或字母就退出
					break;
			}
			
			token[k]=0;
			v=FindInKWTab(token);	//查找關(guān)鍵詞表
			if (v)	//如果是關(guān)鍵詞
			{
				m_cifa[m_n]=new CIFA;
				m_cifa[m_n]->nValue=0;
				m_cifa[m_n]->nType=v;
				strcpy(m_cifa[m_n]->szText,token);
				m_cifa[m_n]->nAddr=n-k;
				m_n++;
			}
			else   //普通標(biāo)志符
			{
				m_cifa[m_n]=new CIFA;
				
			    /*----------在詞法分析結(jié)果中查找-----------*/
				int vv=1;
				for (int i=0;i<m_n;i++)
				{
					if (m_cifa[i]->nType==1)
					{
						vv++;
						if (!::stricmp(m_cifa[i]->szText,token))
							m_cifa[m_n]->nValue= m_cifa[i]->nValue;
					}
				}
				m_cifa[m_n]->nValue=vv;
			    /*---------------------------------------*/

				m_cifa[m_n]->nType=1;
				strcpy(m_cifa[m_n]->szText,token);
				m_cifa[m_n]->nAddr=n-k;
				m_n++;
			}
		}
		else if (isdigit(m_str[n]))	//數(shù)字
		{
			k=0;
			BOOL error=false;
			while (1)
			{
				if (k<=8) 
					token[k++]=m_str[n++];
				else
				{
					error=true;
					n++;
				}
				if (!isdigit(m_str[n])) 
					break;
			}
			token[k]=0;
			v=::strtol(token,NULL,10);
			if (error)
			{
				m_cifa[m_n]=new CIFA;
				m_cifa[m_n]->nValue=1;
				m_cifa[m_n]->nType=0;
				strcpy(m_cifa[m_n]->szText,token);
				m_cifa[m_n]->nAddr=n-k;
				m_n++;
			}
			else
			{
				m_cifa[m_n]=new CIFA;
				m_cifa[m_n]->nValue=v;
				m_cifa[m_n]->nType=2;
				strcpy(m_cifa[m_n]->szText,token);
				m_cifa[m_n]->nAddr=n-k;
				m_n++;
			}
		}
		else
			switch (m_str[n])	//其他符號(hào)
			{
			case '+':
			case '-':
			case '*':
			case '~':
			case '&':
			case '|':
			case '=':
			case ';':
			case '.':
			case ',':
			case '(':
			case ')':
				token[0]=m_str[n];
				token[1]=0;
				v=FindInKWTab(token);

				m_cifa[m_n]=new CIFA;
				m_cifa[m_n]->nValue=0;
				m_cifa[m_n]->nType=v;
				strcpy(m_cifa[m_n]->szText,token);
				m_cifa[m_n]->nAddr=n;

				m_n++;
				n++;
				break;

			case '\0':
				break;

			case '/':
				switch (m_str[n+1])
				{
				case '*':
					n++;
					n++;
					flag=true;
					break;
				default:
					token[0]=m_str[n];
					token[1]=0;
					v=FindInKWTab(token);
					m_cifa[m_n]=new CIFA;
					m_cifa[m_n]->nValue=0;
					m_cifa[m_n]->nType=v;
					strcpy(m_cifa[m_n]->szText,token);
					m_cifa[m_n]->nAddr=n;
					m_n++;
					n++;
				}
				break;

				case '<':
					switch (m_str[n+1])
					{
					case '=':
						token[0]=m_str[n];
						token[1]=m_str[n+1];
						token[2]=0;
						v=FindInKWTab(token);
						m_cifa[m_n]=new CIFA;
						m_cifa[m_n]->nValue=0;
						m_cifa[m_n]->nType=v;
						strcpy(m_cifa[m_n]->szText,token);
						m_cifa[m_n]->nAddr=n;
						m_n++;
						n++;
						n++;
						break;
					case '>':
						token[0]=m_str[n];
						token[1]=m_str[n+1];
						token[2]=0;
						v=FindInKWTab(token);
						m_cifa[m_n]=new CIFA;
						m_cifa[m_n]->nValue=0;
						m_cifa[m_n]->nType=v;
						strcpy(m_cifa[m_n]->szText,token);
						m_cifa[m_n]->nAddr=n;
						m_n++;
						n++;
						n++;
						break;

					default:
						token[0]=m_str[n];
						token[1]=0;
						v=FindInKWTab(token);
						m_cifa[m_n]=new CIFA;
						m_cifa[m_n]->nValue=0;
						m_cifa[m_n]->nType=v;
						strcpy(m_cifa[m_n]->szText,token);
						m_cifa[m_n]->nAddr=n;
						m_n++;
						n++;
					}
					break;

					case '>':
						switch (m_str[n+1])
						{
						case '=':
							token[0]=m_str[n];
							token[1]=m_str[n+1];
							token[2]=0;
							v=FindInKWTab(token);
							m_cifa[m_n]=new CIFA;
							m_cifa[m_n]->nValue=0;
							m_cifa[m_n]->nType=v;
							strcpy(m_cifa[m_n]->szText,token);
							m_cifa[m_n]->nAddr=n;
							m_n++;
							n++;
							n++;
							break;

						default:
							token[0]=m_str[n];
							token[1]=0;
							v=FindInKWTab(token);
							m_cifa[m_n]=new CIFA;
							m_cifa[m_n]->nValue=0;
							m_cifa[m_n]->nType=v;
							strcpy(m_cifa[m_n]->szText,token);
							m_cifa[m_n]->nAddr=n;
							m_n++;
							n++;
						}
						break;

						case ':':
							switch (m_str[n+1])
							{
							case '=':
								token[0]=m_str[n];
								token[1]=m_str[n+1];
								token[2]=0;
								v=FindInKWTab(token);
								m_cifa[m_n]=new CIFA;
								m_cifa[m_n]->nValue=0;
								m_cifa[m_n]->nType=v;
								strcpy(m_cifa[m_n]->szText,token);
								m_cifa[m_n]->nAddr=n;
								m_n++;
								n++;
								n++;
								break;

							default:
								token[0]=m_str[n];
								token[1]=0;
								v=FindInKWTab(token);
								m_cifa[m_n]=new CIFA;
								m_cifa[m_n]->nValue=0;
								m_cifa[m_n]->nType=v;
								strcpy(m_cifa[m_n]->szText,token);
								m_cifa[m_n]->nAddr=n;
								m_n++;
								n++;
							}
							break;

							default:
								token[0]=m_str[n];
								token[1]=0;
								m_cifa[m_n]=new CIFA;
								m_cifa[m_n]->nValue=2;
								m_cifa[m_n]->nType=0;
								strcpy(m_cifa[m_n]->szText,token);
								m_cifa[m_n]->nAddr=n;
								m_n++;
								n++;
			} 

		if (m_n==10000-2)	//詞法分析的結(jié)果的個(gè)數(shù)規(guī)定為10000
		{
			m_cifa[m_n]=new CIFA;
			m_cifa[m_n]->nValue=99;
			m_cifa[m_n]->nType=0;
			strcpy(m_cifa[m_n]->szText,"");
			m_cifa[m_n]->nAddr=n-1;
			m_n++;
			break;
		}
	} 

	m_cifa[m_n]=new CIFA;
	m_cifa[m_n]->nValue=0;
	m_cifa[m_n]->nType=-1;	//結(jié)束符
	strcpy(m_cifa[m_n]->szText,"");
	m_cifa[m_n]->nAddr=0;
	m_n++;

	return;
}




/*================================================================ 
* 函數(shù)名:    FindInKWTab(char * a)
* 功能描述:   在關(guān)鍵字表中查找  (protected)
* 返回值:    int (如果找到返回在表中的位置,否則返回0)
================================================================*/
int CFenXi::FindInKWTab(char * a)
{
	for (int i=0;i<50;i++)
		if (!::stricmp(m_szKW[i],a))   //找到
			return i;

		return 0; //未找到
}



/*================================================================ 
* 函數(shù)名:    YuFaFenXi
* 功能描述:   語(yǔ)法分析 (public)
* 返回值:    void
* 作 者:     程紅秀 2005年6月15日
================================================================*/
void CFenXi::YuFaFenXi()
{
	if (m_n==0) 
		return;		//未進(jìn)行詞法分析
	
	m_nCur=0;		//m_nCur用語(yǔ)指示詞法分析結(jié)果表中單詞的位置

	y_ChengXu();	//從 程序 開(kāi)始
 
	return;
}


/*================================================================ 
* 函數(shù)名:    y_ChengXu
* 功能描述:   分析整個(gè)程序 (protected)
* 返回值:    bool
* 示例:
			Program abc;
				這里是程序體	
			.
================================================================*/
bool CFenXi::y_ChengXu()			//程序
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 3:				//從program開(kāi)始
		break;

	default:
		m_nErrNo=3;		//缺少關(guān)鍵字“ program ”!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;			//分析下一個(gè)單詞


	switch (m_cifa[m_nCur]->nType)
	{
	case 1:				//標(biāo)志符
		break;

	default:
		m_nErrNo=4;		//program 后缺少標(biāo)識(shí)符!
		m_nErrAddr=m_nCur;
		return false;
	}


	m_nCur++;

	switch (m_cifa[m_nCur]->nType)
	{
	case 30:			//;
		break;
	default:
		m_nErrNo=5;		//缺少“ ; ”符號(hào)!
		m_nErrAddr=m_nCur;
		return false;
	}


	m_nCur++;

	if (!y_ChengXuTi())  //分析程序體
		return false;

	switch (m_cifa[m_nCur]->nType)
	{
	case 31:			//. (程序的最后一個(gè)符號(hào))
		break;
	default:
		m_nErrNo=6;		//缺少程序結(jié)束符“ . ”符號(hào)!
		m_nErrAddr=m_nCur;
		return false;
	}


	m_nCur++;
	switch (m_cifa[m_nCur]->nType)
	{
	case -1:	//end of cifa
		break;
	default:
		m_nErrNo=96;	//源程序結(jié)束符 end. 后還有多余內(nèi)容!
		m_nErrAddr=m_nCur;
		return false;
	}


	m_nErrNo=0;		//語(yǔ)法分析成功
	m_nErrAddr=m_nCur;
	return true;
}


/*================================================================ 
* 函數(shù)名:    y_ChengXuTi
* 功能描述:   分析程序體 (protected)
* 返回值:    bool
* 示例:
		  Integer x,y,z;   
		  Real a,b;        //變量聲明

		  Procedure ab(Var m,n:Integer; t:Real);  //過(guò)程聲明
		  Begin
			  t:=n+m;
			  If m>n then n:=m else t:=m;
			  While n<m do
				Begin
				  n:=n+1
				End
		  End;

		  Begin
			這里是語(yǔ)句串
		  End
================================================================*/
bool CFenXi::y_ChengXuTi()
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 5:			//procedure		
	case 14:		//booleger
	case 15:		//real

		if (!y_ShengMingChuan())   //聲明串(用;隔開(kāi)的多個(gè)變量或過(guò)程聲明)
			return false;

		switch (m_cifa[m_nCur]->nType)
		{
		case 30:	//;
			break;

		default:
			m_nErrNo=5;	//缺少“ ; ”符號(hào)!"
			m_nErrAddr=m_nCur;
			return false;
		}
		m_nCur++;
		break;

		case 6:		//begin
			break;

		default:
			m_nErrNo=7;		//缺少《程序體》,應(yīng)為 begin,integer,real,procedure"
			m_nErrAddr=m_nCur;
			return false;
	}

	switch (m_cifa[m_nCur]->nType)
	{
	case 6:		//begin
		break;
	default:
		m_nErrNo=8;		//缺少保留字“ begin ”!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;
	if (!y_YuJuChuan())  //語(yǔ)句串
		return false;

	switch (m_cifa[m_nCur]->nType)
	{
	case 7:			//end
		break;
	default:
		m_nErrNo=10;	//缺少保留字“ end ”!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	return true;
}


/*================================================================ 
* 函數(shù)名:    y_ShengMingChuan
* 功能描述:   聲明串 用;隔開(kāi)的多個(gè)聲明(protected)
* 返回值:    void
================================================================*/
bool CFenXi::y_ShengMingChuan()
{
	if (!y_ShengMing()) 		
		return false;

	while (m_cifa[m_nCur]->nType==30 && m_cifa[m_nCur+1]->nType!=6)	//是; 不是begin
	{
		m_nCur++;
		if (!y_ShengMing()) //遞歸調(diào)用
			return false;
	}
	return true;
}

/*================================================================ 
* 函數(shù)名:    y_ShengMing
* 功能描述:   聲明 (protected)
* 返回值:    void
================================================================*/
bool CFenXi::y_ShengMing()
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 14:		//booleger
	case 15:		//real
		if (!y_BianliangShengMing())	//變量聲明
			return false;
		break;

	case 5:			//procedure
		if (!y_GuoChengShengMing()) //過(guò)程聲明
			return false;
		break;

	default:
		m_nErrNo=11;		//缺少聲明(integer,real,procedure)
		m_nErrAddr=m_nCur;
		return false;
	}
	return true;
}


/*================================================================ 
* 函數(shù)名:    y_BianliangShengMing
* 功能描述:   變量聲明	(protected)
* 返回值:    void
* 示例:	 Integer x,y,z;
================================================================*/
bool CFenXi::y_BianliangShengMing()
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 14:	//booleger
	case 15:	//real
		break;

	default:
		m_nErrNo=12;	//缺少變量類(lèi)型 integer 或 real!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	switch (m_cifa[m_nCur]->nType)
	{
	case 1:		//id
		break;

	default:		
		m_nErrNo=14;	//變量聲明后缺少標(biāo)識(shí)符!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	while (m_cifa[m_nCur]->nType==32)  //32 , 分析用逗號(hào)隔開(kāi)的連續(xù)聲明的幾個(gè)變量
	{
		m_nCur++;

		switch (m_cifa[m_nCur]->nType)
		{
		case 1:		//id
			break;

		default:
			m_nErrNo=14;  	//變量聲明后缺少標(biāo)識(shí)符
			m_nErrAddr=m_nCur;
			return false;
		}
		m_nCur++;
	}
	return true;
}

/*================================================================ 
* 函數(shù)名:    y_GuoChengShengMing
* 功能描述:   過(guò)程聲明 (protected)
* 返回值:    void
* 示例:
			  Procedure ab(形參);
					這里是程序體
			
================================================================*/
bool CFenXi::y_GuoChengShengMing()
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 5:		//procedure
		break;

	default:
		m_nErrNo=15;		//缺少保留字“ procedure ”!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	switch (m_cifa[m_nCur]->nType)
	{
	case 1:			//id
		break;

	default:
		m_nErrNo=13;		//procedure 后缺少標(biāo)識(shí)符!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	switch (m_cifa[m_nCur]->nType)
	{
	case 33:	//(
		if (!y_XingCanBuFeng())  //形參
			return false;
		break;
	}

	switch (m_cifa[m_nCur]->nType)
	{
	case 30:	//;
		break;
	default:
		m_nErrNo=5;			//缺少“ ; ”符號(hào)!
		m_nErrAddr=m_nCur;
		return false;
	}

	m_nCur++;

	if (!y_ChengXuTi())		//程序體 
		return false;

	return true;
}


/*================================================================ 
* 函數(shù)名:    y_XingChan
* 功能描述:   形參部分(protected)
* 返回值:    void
* 示例:		(Var m,n:Integer; t:Real)
================================================================*/
bool CFenXi::y_XingCanBuFeng()
{
	switch (m_cifa[m_nCur]->nType)
	{
	case 33:	//(
		break;
	default:

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美国产| 九九久久精品视频| 亚洲免费观看高清完整版在线观看| 精品国产sm最大网站免费看| 在线成人av网站| 欧美午夜片在线观看| 欧美午夜精品电影| 欧美在线不卡一区| 欧美又粗又大又爽| 欧美性一级生活| 欧美夫妻性生活| 欧美成人video| 精品成人私密视频| 国产婷婷精品av在线| 国产精品污污网站在线观看| 欧美—级在线免费片| 久久伊99综合婷婷久久伊| 久久综合99re88久久爱| 中文字幕欧美激情| 亚洲免费在线电影| 亚洲综合色丁香婷婷六月图片| 亚瑟在线精品视频| 美女免费视频一区二区| 久久精品国产99| 国产一区二三区| 99精品欧美一区二区蜜桃免费| 色综合网色综合| 欧美日韩mp4| 日韩美一区二区三区| 国产三级欧美三级| 亚洲三级在线免费观看| 亚洲国产日日夜夜| 看片网站欧美日韩| 成人av手机在线观看| 色av一区二区| 欧美成人精品福利| 亚洲欧洲在线观看av| 亚洲一区二三区| 久久99久久99小草精品免视看| 丰满少妇久久久久久久| 欧洲激情一区二区| 久久这里只有精品视频网| 中文字幕一区二区三| 五月天激情小说综合| 国产不卡高清在线观看视频| 色一情一乱一乱一91av| 91麻豆精品国产91| 国产精品理伦片| 日韩电影一区二区三区四区| 国产成人在线视频免费播放| 在线中文字幕不卡| 精品久久久久久久久久久久包黑料| 中文字幕国产一区| 日本不卡高清视频| www.亚洲色图| 日韩一区二区麻豆国产| 亚洲婷婷综合色高清在线| 男女视频一区二区| 91香蕉视频在线| 26uuu另类欧美亚洲曰本| 亚洲精品一卡二卡| 国产最新精品精品你懂的| 日本韩国一区二区三区| 精品久久久久久久一区二区蜜臀| 亚洲精品第一国产综合野| 韩国精品久久久| 精品视频在线免费观看| 国产精品伦理在线| 激情综合色播激情啊| 欧美在线一二三| 中国色在线观看另类| 免费精品99久久国产综合精品| 99综合影院在线| 久久综合色婷婷| 午夜不卡在线视频| 在线观看视频一区二区欧美日韩| 国产日韩欧美a| 久久99精品久久久| 欧美人与z0zoxxxx视频| 亚洲男人的天堂网| 成人午夜电影小说| 26uuu另类欧美亚洲曰本| 日韩精品国产精品| 欧美性生活久久| 亚洲欧洲中文日韩久久av乱码| 国产精品小仙女| 欧美精品精品一区| 亚洲在线观看免费视频| eeuss影院一区二区三区| 久久伊99综合婷婷久久伊| 免费一级欧美片在线观看| 欧美丝袜丝交足nylons图片| 亚洲乱码精品一二三四区日韩在线| 国产成人综合在线观看| 久久综合九色欧美综合狠狠| 久久精品国产精品青草| 欧美精品日日鲁夜夜添| 亚洲一区二区视频在线| 91免费在线看| 综合色中文字幕| 95精品视频在线| 国产精品嫩草影院av蜜臀| 成人夜色视频网站在线观看| 久久久www成人免费无遮挡大片| 日韩国产在线观看| 欧美一区二区三区不卡| 人人精品人人爱| 日韩亚洲欧美在线| 蜜桃久久久久久久| 日韩欧美区一区二| 国产一区欧美日韩| 国产女人18毛片水真多成人如厕| 国产suv精品一区二区6| 国产精品免费av| 91麻豆6部合集magnet| 亚洲免费观看在线观看| 欧美在线短视频| 日韩av一区二区三区| 日韩一区二区电影在线| 国产一区二区三区四区五区美女 | 国产福利不卡视频| 久久精品一区二区三区四区| 风间由美一区二区三区在线观看| 国产精品污www在线观看| 成人网在线免费视频| 综合久久久久综合| 欧美体内she精视频| 婷婷成人激情在线网| 日韩精品一区在线| 国产成人免费视频网站| 成人欧美一区二区三区1314| 91成人在线观看喷潮| 日韩成人精品在线| 国产亚洲精久久久久久| 成人黄色在线视频| 亚洲激情五月婷婷| 日韩亚洲欧美一区| 99在线精品观看| 视频一区二区欧美| 久久久蜜桃精品| 日本高清无吗v一区| 麻豆91精品视频| 中文字幕一区二区三区不卡| 欧美猛男超大videosgay| 国内精品国产三级国产a久久| 国产精品国产a| 欧美日韩国产一级片| 国产乱子轮精品视频| 一区二区三区av电影| 精品国产乱码久久久久久蜜臀| 色综合天天性综合| 另类小说视频一区二区| 亚洲精品中文字幕乱码三区| 欧美不卡123| 色婷婷久久99综合精品jk白丝| 另类小说综合欧美亚洲| 伊人性伊人情综合网| 欧美大片顶级少妇| 色天使久久综合网天天| 蜜桃一区二区三区在线| 中文字幕成人在线观看| 国产盗摄一区二区| 免费看日韩a级影片| 亚洲国产精品ⅴa在线观看| 日本道精品一区二区三区| 日韩在线播放一区二区| 国产欧美一区二区精品仙草咪| 91免费视频网址| 美日韩黄色大片| 亚洲香肠在线观看| 国产调教视频一区| 欧美日韩精品二区第二页| 日韩av午夜在线观看| 亚洲伦理在线精品| 亚洲精品一区二区三区蜜桃下载| 成人av影视在线观看| 亚洲国产综合91精品麻豆| 国产性色一区二区| 日韩一区国产二区欧美三区| 91原创在线视频| 久久99久久精品欧美| 亚洲精品中文在线影院| 国产亚洲美州欧州综合国| 欧美精品一二三区| 国产福利91精品| 极品少妇xxxx精品少妇偷拍| 一区二区高清视频在线观看| 久久美女高清视频| 日韩免费视频一区二区| 欧美日韩一本到| av在线不卡免费看| 日本美女视频一区二区| 亚洲福利一区二区三区| 中文字幕在线不卡视频| 欧美电影精品一区二区| 欧美videos中文字幕| 欧美老肥妇做.爰bbww视频| 一本一道综合狠狠老| 菠萝蜜视频在线观看一区| 精品综合免费视频观看|