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

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

?? diction.cpp

?? 計算機英漢機器翻譯系統中的英語詞性標注方法實現
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
		pszOrgPtr ++;

		ucLen = *pszCodePtr; // 規則左部
		pszCodePtr ++;
		strncpy(pszOrgPtr,pszCodePtr,ucLen);
		pszOrgPtr[ucLen] = '\0';
		pszOrgPtr += ucLen;
		pszCodePtr += ucLen;

		ucLen = *pszCodePtr; // 規則右部
		pszCodePtr ++;
		strncpy(pszOrgPtr,pszCodePtr,ucLen);
		pszOrgPtr[ucLen] = '\0';
		pszOrgPtr += ucLen;
		pszCodePtr += ucLen;
	}
}

void EncodeWordRule(LPCSTR pszSouCode,LPSTR pszTarCode,int &nTarCodeLen)
// 對詞典規則的編碼
// pszTarCode 編碼后的規則
// pszSouCode 源詞典中的原始規則
// (根據xuned于1997.10.25的要求)
// 原始規則的格式:形如:
// @1:W=chark->sdafasdf@2:W=chark->sdafasdf
// 編碼后的規則的格式:
// 規則個數(1 byte),規則左部的長度(1 byte),規則左部,
// 規則右部的長度(1 byte),規則右部,...
{
	LPSTR pszRuleRightPtr = NULL;
	LPSTR pszNextRulePtr = NULL;
	LPCSTR pszSouPtr = pszSouCode;
	nTarCodeLen = 0;
	int nRuleNum = 0; // 規則個數
	nTarCodeLen ++;// 跳過第一個字節,用于保存規則的個數
	do {
		nRuleNum ++;
		pszSouPtr ++;
		pszRuleRightPtr = strstr(pszSouPtr,"->");
		pszNextRulePtr = strchr(pszSouPtr,'@');
		if ( pszRuleRightPtr != NULL && pszNextRulePtr != NULL ) {
			if ( pszRuleRightPtr > pszNextRulePtr )
				pszRuleRightPtr = NULL;
		}
		
		if ( pszRuleRightPtr != NULL ) { // 如果有規則右部
			*(pszTarCode+nTarCodeLen) = pszRuleRightPtr - pszSouPtr;
			nTarCodeLen ++;
			strncpy(pszTarCode+nTarCodeLen,pszSouPtr,
						pszRuleRightPtr - pszSouPtr);
			nTarCodeLen += pszRuleRightPtr - pszSouPtr;
			
			pszRuleRightPtr += 2;
			if ( pszNextRulePtr != NULL ) { // 如果有下一條規則
				*(pszTarCode+nTarCodeLen) = pszNextRulePtr - pszRuleRightPtr;
				nTarCodeLen ++;
				strncpy(pszTarCode+nTarCodeLen,pszRuleRightPtr,
							pszNextRulePtr - pszRuleRightPtr);
				nTarCodeLen += pszNextRulePtr - pszRuleRightPtr;
			} else { // 如果沒有下一條規則
				*(pszTarCode+nTarCodeLen) = strlen(pszRuleRightPtr);
				nTarCodeLen ++;
				strcpy(pszTarCode+nTarCodeLen,pszRuleRightPtr);
				nTarCodeLen += strlen(pszRuleRightPtr);
			}
		} else { // 如果沒有規則右部
			if ( pszNextRulePtr != NULL ) {// 如果有下一條規則
				*(pszTarCode+nTarCodeLen) = pszNextRulePtr - pszSouPtr;
				nTarCodeLen ++;
				strncpy(pszTarCode+nTarCodeLen,pszSouPtr,
							pszNextRulePtr - pszSouPtr);
				nTarCodeLen += pszNextRulePtr - pszSouPtr;
			} else {// 如果沒有下一條規則
				*(pszTarCode+nTarCodeLen) = strlen(pszSouPtr);
				nTarCodeLen ++;
				strcpy(pszTarCode+nTarCodeLen,pszSouPtr);
				nTarCodeLen += strlen(pszSouPtr);
			}

			*(pszTarCode+nTarCodeLen) = 0;
			nTarCodeLen ++;
		}
		pszSouPtr = pszNextRulePtr;
	} while ( pszSouPtr != NULL );
	
	*pszTarCode = (UCHAR)nRuleNum;
}

int CDictIndex::EncodeSingleSlot(Slot *pSlot,LPSTR pszSingleSlot)
{
	ObWord* pObject;
	int nSingleSlotLen = 0;

	if ( pSlot->m_pszSlotValue != NULL ) {
		if ( m_mapSlotName.Lookup(pSlot->m_pszSlotName,( CObject*& )pObject) == FALSE )
			ASSERT( FALSE ); // 沒有找到Slot Name
	
		if ( pObject->m_nIndex == m_nQualfrCode ) { // 當前槽是量詞
			// 當前的槽名是AddQualfr,槽值是漢字的量詞,
			// 在SLOT的鏈表中的保存格式是:
			// offset 0: AddQualfr的編碼的低位字節
			// offset 1: AddQualfr的編碼的高位字節
			// offset 2: 量詞的長度
			// offset 3--: 量詞
			pszSingleSlot[nSingleSlotLen] = LOBYTE(ADDQUALFR); //(WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
			pszSingleSlot[nSingleSlotLen] = HIBYTE(ADDQUALFR); //(WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
			
			pszSingleSlot[nSingleSlotLen] = (BYTE)strlen(pSlot->m_pszSlotValue);
			nSingleSlotLen ++;

			strcpy(pszSingleSlot+nSingleSlotLen,pSlot->m_pszSlotValue);
			
			nSingleSlotLen += strlen(pSlot->m_pszSlotValue);
		} else {
			if ( m_mapSlotValue[pObject->m_nIndex].Lookup(pSlot->m_pszSlotValue,
								( CObject*& )pObject) == FALSE ) {
				ASSERT( FALSE ); // 沒有找到Slot Value
			}
			pszSingleSlot[nSingleSlotLen] = LOBYTE((WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
			pszSingleSlot[nSingleSlotLen] = HIBYTE((WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
		}
	} else { // 沒有槽值的槽
		if ( pSlot->m_pszSlotName[0] != '@' ) { // 不是規則
			if ( m_mapNoValueSlot.Lookup(pSlot->m_pszSlotName,( CObject*& )pObject) == FALSE )
				ASSERT( FALSE ); // 沒有找到Slot Name
		
			pszSingleSlot[nSingleSlotLen] = LOBYTE((WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
			pszSingleSlot[nSingleSlotLen] = HIBYTE((WORD)pObject->m_nIndex);
			nSingleSlotLen ++;
		} else { // 是規則
			pszSingleSlot[nSingleSlotLen] = LOBYTE(RULE_CODE);
			nSingleSlotLen ++;
			pszSingleSlot[nSingleSlotLen] = HIBYTE(RULE_CODE);
			nSingleSlotLen ++;
			
			nSingleSlotLen ++;

			int nRuleCodeLen;
			EncodeWordRule(pSlot->m_pszSlotName,
					pszSingleSlot+nSingleSlotLen,nRuleCodeLen);
			
			pszSingleSlot[nSingleSlotLen-1] = (BYTE)nRuleCodeLen;

			nSingleSlotLen += nRuleCodeLen;
		}
	}

	return nSingleSlotLen;
}

int CDictIndex::EncodeSlotLink(Slot *pFirstSlot,LPSTR pszSlotLink)
// 對槽鏈表編碼
{
	Slot *pCurrSlot = pFirstSlot;
	int nSlotLinkLen = 0;
	do {
		nSlotLinkLen += EncodeSingleSlot(pCurrSlot,
								pszSlotLink+nSlotLinkLen);

		pCurrSlot = pCurrSlot->m_pNextSlot;
	} while ( pCurrSlot != NULL );

	return nSlotLinkLen;
}

int CDictIndex::CalculateSlotNum(Slot *pFirstSlot)
// 計算鏈表中槽的數量,返回數量
{
	Slot *pCurrSlot = pFirstSlot;
	int nSlotNum = 0;				
	do {
		pCurrSlot = pCurrSlot->m_pNextSlot;
		if ( pCurrSlot != NULL )
			//if ( pCurrSlot->m_bIsTranRule == FALSE ) // 忽略翻譯規則
			nSlotNum ++;
	} while ( pCurrSlot != NULL );

	return nSlotNum+1;
}

int CDictIndex::EncodeSingleChinesePart(ChinesePart *pCurrChinese,
										LPSTR pszSinglePartInfo)
{
	int nSingleChinPartLen = 0;

	pszSinglePartInfo[nSingleChinPartLen] = pCurrChinese->m_nChineseLen;//中文譯文長度
	nSingleChinPartLen ++;
	
	memcpy(pszSinglePartInfo+nSingleChinPartLen,
			pCurrChinese->m_pszChinese,pCurrChinese->m_nChineseLen);// 中文譯文
	nSingleChinPartLen += pCurrChinese->m_nChineseLen;

	ObWord* pObject;
	if ( pCurrChinese->m_pszCate != NULL ) {
		if ( m_mapCate.Lookup(pCurrChinese->m_pszCate,( CObject*& )pObject) == FALSE ) {
			ASSERT( FALSE ); // 沒有找到Cate
		}
		pszSinglePartInfo[nSingleChinPartLen] = (UCHAR)pObject->m_nIndex;//詞性
		nSingleChinPartLen ++;
	} else {
		pszSinglePartInfo[nSingleChinPartLen] = (UCHAR)0; // No Cate
		nSingleChinPartLen ++;
	}
	
	if ( pCurrChinese->m_pszHead != NULL ) {
		if ( m_mapHead.Lookup(pCurrChinese->m_pszHead,( CObject*& )pObject) == FALSE ) {
			ASSERT( FALSE ); // 沒有找到Head
		}
		pszSinglePartInfo[nSingleChinPartLen] = (UCHAR)pObject->m_nIndex;//語義大類
		nSingleChinPartLen ++;
	} else {
		pszSinglePartInfo[nSingleChinPartLen] = (UCHAR)0; // No Head
		nSingleChinPartLen ++;
	}
	
	// Add for Debug Begin
	//if ( strcmp(pCurrChinese->m_pszChinese,"幾") == 0 ) {
	//	ASSERT(FALSE);
	//}
	// Add for Debug End

	if ( pCurrChinese->m_pFirstSlot != NULL ) {
		pszSinglePartInfo[nSingleChinPartLen] = CalculateSlotNum(pCurrChinese->m_pFirstSlot);//槽的數量
		nSingleChinPartLen ++;

		nSingleChinPartLen += EncodeSlotLink(pCurrChinese->m_pFirstSlot,
								pszSinglePartInfo+nSingleChinPartLen);
	} else {
		pszSinglePartInfo[nSingleChinPartLen] = (UCHAR)0;//槽的數量
		nSingleChinPartLen ++;
	}

	return nSingleChinPartLen;
}

int CDictIndex::EncodeChinesePartInfo(COneWord *pOneWord,
									  LPSTR pszChinesePartInfo)
// 編碼中文譯文及相關內容部分
{
	int nChinesePartInfoLen = 0;

	if ( pOneWord->m_pFirstChinese != NULL ) {
		ChinesePart *pCurrChinese = pOneWord->m_pFirstChinese;
		do {
			nChinesePartInfoLen += EncodeSingleChinesePart(pCurrChinese,
						pszChinesePartInfo+nChinesePartInfoLen);

			pCurrChinese = pCurrChinese->m_pNextPart;
		} while ( pCurrChinese != NULL );
	}
	return nChinesePartInfoLen;
}

int CDictIndex::CalcuChinPartNum(ChinesePart *pFirstChinese)
// 計算中文譯文的個數
{	
	ChinesePart *pCurrChinese = pFirstChinese;
	int nTotalNum = 0;
	do {
		nTotalNum ++;
		pCurrChinese = pCurrChinese->m_pNextPart;
	} while ( pCurrChinese != NULL );
	return nTotalNum;
}

int CDictIndex::EncodeDictRecord(COneWord *pOneWord,LPSTR pszWordInfo)
{
	int nNowSite = 0;
	// 是否存在原形 ( 1 Byte )
	pszWordInfo[nNowSite] = (UCHAR)pOneWord->m_bIsExistOrig;
	nNowSite ++;

	// 是否存在兼類
	pszWordInfo[nNowSite] = (UCHAR)pOneWord->m_bIsExistAmbig;
	nNowSite ++;

	// 下面緊跟一個標志和標志相關的其他內容,參考下面說明
	// 原形的存儲
	if ( pOneWord->m_bIsExistOrig ) {
		pszWordInfo[nNowSite] = (UCHAR)DICT_FLAG_ORIGIN; // 存儲內容的標志
		nNowSite ++;

		pszWordInfo[nNowSite] = (UCHAR)pOneWord->m_nWordStyle;// 詞的類型:過去式,進行式...(1 Byte) m_nWordStyle
		nNowSite ++;
		
		pszWordInfo[nNowSite] = (UCHAR)pOneWord->m_nOrigLen; // 原形長度 ( 1 Byte )
		nNowSite ++;

		memcpy(pszWordInfo+nNowSite,pOneWord->m_pszOrig,pOneWord->m_nOrigLen);// 原形
		nNowSite += pOneWord->m_nOrigLen;
	}

	// 兼類的存儲
	if ( pOneWord->m_bIsExistAmbig ) {
		pszWordInfo[nNowSite] = (UCHAR)DICT_FLAG_AMBIG; // 存儲內容的標志
		nNowSite ++;

		pszWordInfo[nNowSite] = (UCHAR)pOneWord->m_nAmbigLen; // 兼類長度 ( 1 Byte )
		nNowSite ++;

		memcpy(pszWordInfo+nNowSite,pOneWord->m_pszAmbig,pOneWord->m_nAmbigLen);// 原形
		nNowSite += pOneWord->m_nAmbigLen;
	}
	if ( pOneWord->m_pFirstChinese != NULL ) { // 有中文
		pszWordInfo[nNowSite] = (UCHAR)DICT_FLAG_CHINESE;
		nNowSite ++;
		pszWordInfo[nNowSite] = (UCHAR)CalcuChinPartNum(pOneWord->m_pFirstChinese);
		nNowSite ++;
	} else { // 無中文
		pszWordInfo[nNowSite] = (UCHAR)DICT_FLAG_CHINESE;
		nNowSite ++;
		pszWordInfo[nNowSite] = 0; // // 中文譯文的個數
		nNowSite ++;
	}

	nNowSite += EncodeChinesePartInfo(pOneWord,pszWordInfo+nNowSite);
	return nNowSite;
}

BOOL CDictIndex::InsertOneWordToIndex(Dictionary *pobDiction,
									  FILE *fpIndexDat,
									  CHuffman *pHuffman,
									  COneWord *pOneWord)
// 舊函數,現不使用
{
	// 如果該詞條為空,則跳過該詞條
	if ( pOneWord->m_pszEnglish == NULL )
		return TRUE;

	int  nTarBuffSize = DIC_WORD_LEN*10;
	LPSTR pszTarBuff = new char[nTarBuffSize];
	memset(pszTarBuff,nTarBuffSize,0);

	int nTarLen;
	pHuffman->CompressString(pOneWord->m_pszEnglish,
					pOneWord->m_nEnglishLen,
					pszTarBuff,nTarLen);
	if ( nTarLen > DIC_WORD_LEN ) {
		//ASSERT( FALSE );// 詞典中英文詞條太長
		// 跳過這個詞
		delete pszTarBuff;
		return TRUE;
	} else {
		m_nTotalWordsNum ++;

		int nWordInfoLen;
		nWordInfoLen = EncodeDictRecord(pOneWord,m_pszWordInfoBuff);

		long lDataSite = WriteIndexData(fpIndexDat,m_pszWordInfoBuff,
						nWordInfoLen);
		CompressIndexOffsetInfo(lDataSite,nWordInfoLen,
						pobDiction->m_pszOffset);

		memset(pobDiction->m_pszWord,0x0,DIC_WORD_LEN);
		memcpy(pobDiction->m_pszWord,pszTarBuff,nTarLen);

		pobDiction->insert();
	}

	delete pszTarBuff;
	return TRUE;
}

int EncodeChinFormatCheck(LPSTR pszWordInfo)
{
	int nNowSite = 0;

	int nChineseLen = (UCHAR)pszWordInfo[nNowSite]; // 中文譯文長度
	nNowSite ++;

	nNowSite += nChineseLen;
	// 詞性
	nNowSite ++;
	// 語義大類
	nNowSite ++;
	
	int nSlotNum = (UCHAR)pszWordInfo[nNowSite];
	nNowSite ++;
	
	WORD wTep;
	int nQualfrLen;
	int nDicRule;
	for ( int Loop=0;Loop<nSlotNum;Loop++ ) {
		wTep = MAKEWORD(pszWordInfo[nNowSite],pszWordInfo[nNowSite+1]);
		nNowSite += 2;
		if ( wTep == ADDQUALFR ) { // 量詞的解碼
			nQualfrLen = (BYTE) *(pszWordInfo+nNowSite);
			nNowSite ++;
			nNowSite += nQualfrLen;
		} else if ( wTep == RULE_CODE ) { // 規則的解碼
			nDicRule = (BYTE) *(pszWordInfo+nNowSite);
			nNowSite ++;
			nNowSite += nDicRule;
		} else { // 普通槽
		}
	}
	return nNowSite;
}

BOOL EncodeResultFormatCheck(LPSTR pszWordInfo,int nWordInfoLen)
// 編碼格式檢查
{
	int nNowSite = 0;
	nNowSite ++;
	nNowSite ++;
	
	int Loop;
	DictChin *pLastChin = NULL;
	int nOrigLen;
	int nAmbigLen;
	int nChinNum;
	do {
		switch ( (UCHAR)pszWordInfo[nNowSite] ) {
		case DICT_FLAG_ORIGIN:
			nNowSite ++;
			nNowSite ++;
			nOrigLen = (UCHAR)pszWordInfo[nNowSite];
			nNowSite ++;
			nNowSite += nOrigLen;
			break;
		case DICT_FLAG_AMBIG:
			nNowSite ++;	
			nAmbigLen = (UCHAR)pszWordInfo[nNowSite];
			nNowSite ++;
			// 兼類內容
			nNowSite += nAmbigLen;
		break;
		case DICT_FLAG_CHINESE:
			nNowSite ++;
			nChinNum = (UCHAR)pszWordInfo[nNowSite];
			nNowSite ++;
			for ( Loop=0;Loop<nChinNum;Loop++ )
				nNowSite += EncodeChinFormatCheck(pszWordInfo+nNowSite);
			break;
		default: 
			return FALSE; // 編碼格式錯誤
		}
	} while ( nNowSite < nWordInfoLen );
	return TRUE;
}

BOOL CDictIndex::OutputOneWordToTempDatFile(FILE *fpEnglishInfo,
											FILE *fpTranDat,
											COneWord *pOneWord)
// 將單詞的詞條內容輸出到中間文件fpTranDat中,
// 同時將對應的單詞的英文和詞條內容在fpTranDat中的位置輸出到fpEnglishInfo中
{
	// 如果該詞條為空,則跳過該詞條
	if ( pOneWord->m_pszEnglish == NULL )
		return TRUE;

	m_nTotalWordsNum ++;

	int nWordInfoLen;
	nWordInfoLen = EncodeDictRecord(pOneWord,m_pszWordInfoBuff);

	// 編碼格式檢查
	if ( EncodeResultFormatCheck(m_pszWordInfoBuff,nWordInfoLen) == FALSE )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色国产精品网站大全在线免费观看| 日韩电影在线免费观看| 精品久久99ma| 欧美一卡二卡三卡四卡| 69久久99精品久久久久婷婷| 在线观看视频一区二区| 色就色 综合激情| 在线免费亚洲电影| 欧美在线免费观看视频| 欧美日韩成人高清| 日韩一区二区电影在线| 日韩一区二区视频| 久久久精品影视| 国产精品欧美久久久久一区二区| 国产精品私房写真福利视频| 亚洲欧洲av在线| 亚洲二区视频在线| 久久福利视频一区二区| 国产乱码精品一区二区三| 成人午夜视频免费看| 99久久久久久| 91精品国产综合久久精品性色| 91精品国产丝袜白色高跟鞋| 欧美成人女星排行榜| 国产欧美日韩视频一区二区 | 亚洲成av人片| 蜜臀av性久久久久蜜臀aⅴ流畅| 老司机精品视频导航| 成人免费视频免费观看| 欧洲av一区二区嗯嗯嗯啊| 日韩一级大片在线| 亚洲欧洲无码一区二区三区| 亚洲成人av中文| 国产一本一道久久香蕉| 91极品美女在线| 久久亚洲春色中文字幕久久久| 中文字幕亚洲欧美在线不卡| 五月天久久比比资源色| 国产精品18久久久久久久网站| 色素色在线综合| 精品区一区二区| 一区二区三区四区亚洲| 国产乱码精品一区二区三区忘忧草 | 日韩和欧美一区二区| 国产精品夜夜嗨| 在线观看日韩电影| 亚洲国产经典视频| 蜜桃av一区二区| 日本韩国一区二区| 久久久久国产精品免费免费搜索| 一级做a爱片久久| 成人高清视频在线观看| 精品国产乱码久久久久久浪潮| 亚洲一区在线播放| 91在线播放网址| 久久久久国产成人精品亚洲午夜| 亚洲最色的网站| 91亚洲男人天堂| 中文字幕一区二区三区精华液| 免费成人深夜小野草| 欧美日韩第一区日日骚| 亚洲日本va午夜在线电影| 国产激情视频一区二区在线观看| 欧美一二三四区在线| 午夜精品久久久久久久99水蜜桃 | 国产一区欧美二区| 3d动漫精品啪啪1区2区免费| 亚洲欧美日韩国产中文在线| 成人av免费网站| 国产清纯白嫩初高生在线观看91 | 国产日产欧美一区| 国内精品嫩模私拍在线| 69p69国产精品| 日韩精品成人一区二区三区| 欧美撒尿777hd撒尿| 亚洲一区二区三区四区在线观看| 91免费在线看| 一区二区三区免费网站| 日本久久电影网| 亚洲成人自拍网| 777xxx欧美| 免费成人在线视频观看| 日韩女优av电影在线观看| 麻豆精品一区二区av白丝在线| 日韩欧美高清在线| 精品一区二区三区在线观看| 久久久99久久| 色综合久久九月婷婷色综合| 一区二区欧美视频| 欧美一区二区三区日韩视频| 激情丁香综合五月| 中文字幕成人网| 欧美在线观看一区二区| 奇米影视一区二区三区| 国产丝袜在线精品| 91捆绑美女网站| 午夜电影一区二区三区| 亚洲精品一区二区三区在线观看| 春色校园综合激情亚洲| 亚洲男人的天堂av| 日韩欧美一二三| 波多野结衣中文一区| 亚洲午夜私人影院| 国产日本欧洲亚洲| 99免费精品在线| 毛片一区二区三区| 国产精品美女久久久久高潮| 欧美性视频一区二区三区| 日本不卡123| 国产精品国产a级| 7777精品伊人久久久大香线蕉完整版 | 国产成人鲁色资源国产91色综| 国产精品国产三级国产三级人妇 | 中文字幕的久久| 亚洲精品乱码久久久久久黑人| 欧美日韩国产综合一区二区| 黄色日韩三级电影| 亚洲精品高清在线观看| 久久综合精品国产一区二区三区| 日本乱人伦一区| 国产高清在线观看免费不卡| 亚洲电影一区二区| 日本一区二区三区在线观看| 欧美日韩aaaaaa| 99精品国产视频| 国产精品一区二区视频| 人人爽香蕉精品| 亚洲国产一区二区三区青草影视| 欧美国产激情二区三区| 日韩视频一区二区三区在线播放| 色哟哟一区二区三区| 国产毛片精品国产一区二区三区| 日日夜夜精品视频天天综合网| 亚洲欧美色一区| 国产三区在线成人av| 精品日韩在线一区| 777xxx欧美| 欧美三区免费完整视频在线观看| 99久久亚洲一区二区三区青草| 国产成人在线网站| 国产综合色产在线精品| 日本不卡中文字幕| 日韩精品福利网| 石原莉奈在线亚洲二区| 亚洲成人av福利| 亚洲一区二区三区不卡国产欧美| 亚洲色图制服诱惑| 亚洲欧美日韩国产成人精品影院| 国产精品成人在线观看| 国产精品午夜电影| 国产精品国产馆在线真实露脸| 亚洲国产精品t66y| 国产精品麻豆一区二区| 国产精品护士白丝一区av| 国产精品久久久久久久久动漫| 国产精品伦理在线| 亚洲欧美日韩一区| 亚洲自拍偷拍网站| 亚洲国产日韩一级| 日本欧美韩国一区三区| 久久激情综合网| 国产成a人亚洲| 粉嫩av一区二区三区在线播放| 国产福利精品导航| 成人h动漫精品一区二区| 91色porny在线视频| 欧美羞羞免费网站| 91精品国产高清一区二区三区蜜臀| 3d动漫精品啪啪1区2区免费| 精品欧美一区二区久久| 国产三级欧美三级| 亚洲男女一区二区三区| 亚洲成人av福利| 黄色精品一二区| av电影在线不卡| 精品视频1区2区| 精品久久国产老人久久综合| 国产精品美女www爽爽爽| 一区二区三区自拍| 狂野欧美性猛交blacked| 国产成人免费xxxxxxxx| 欧美自拍偷拍一区| 欧美一区二区三区四区久久| 亚洲国产成人午夜在线一区| 亚洲一区在线视频| 国产乱理伦片在线观看夜一区| 91麻豆高清视频| 欧美va在线播放| 亚洲激情在线播放| 麻豆精品视频在线观看| 成人精品视频一区| 制服丝袜日韩国产| 成人欧美一区二区三区黑人麻豆| 香蕉乱码成人久久天堂爱免费| 国产剧情av麻豆香蕉精品| 欧美在线你懂得| 国产精品视频免费| 蜜桃久久久久久| 欧美中文字幕亚洲一区二区va在线| 久久人人爽爽爽人久久久|