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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 說明.txt

?? 一個(gè)成功的編譯器
?? TXT
?? 第 1 頁 / 共 2 頁
字號(hào):
詞法語法分析類: 
/************************************************************************ 
* 文件名:    FenXi.h 
* 文件描述:  詞法語法分析的頭文件
* 創(chuàng)建人:    程紅秀, 2005年06月15日 
* 版本號(hào):    1.0 
************************************************************************/ 

#if !defined _FENXI_H
#define _FENXI_H


struct CIFA //保存詞法分析結(jié)果
{
int nType; //0:錯(cuò)誤, 1:標(biāo)志符, 2:數(shù)字, 3-:關(guān)鍵字和操作符, -1:結(jié)束符
int nValue; //二元式中的值
char szText[20]; //單詞
int nAddr; //源文件緩沖區(qū)中地址
};

class CFenXi  
{ 

public:
void YuFaFenXi();  //語法分析
void CiFaFenXi();  //詞法分析

int m_nErrAddr; //語法錯(cuò)誤對(duì)應(yīng)單詞的地址
int m_nErrNo; //語法錯(cuò)誤代碼
char m_str[20000]; //源程序緩沖區(qū)
char m_szErrMsg[100][100]; //錯(cuò)誤信息表
CIFA * m_cifa[10000]; //詞法分析結(jié)果

protected:
void init();

int m_nCur; //用于語法分析中,指示詞法分析結(jié)果表中當(dāng)前的位置
int m_n; //用于詞法分析中,用于指示詞法分析結(jié)果的個(gè)數(shù)
char m_szKW[50][20]; //關(guān)鍵詞表

int FindInKWTab(char *);

/*----------------語法分析函數(shù)-----------------------*/
bool y_GuanXi(); //關(guān)系
bool y_GuanXiBiaoDaShi(); //關(guān)系表達(dá)式
bool y_BuErBiaoDaShi(); //布爾表達(dá)式
bool y_YinZi(); //因子
bool y_Xiang(); //項(xiàng)
bool y_BiaoDaShi(); //表達(dá)式
bool y_ShiCanBiao(); //實(shí)參表
bool y_GuoChengYuJu(); //過程語句
bool y_XunHuanYuJu(); //循環(huán)語句
bool y_TiaoJianYuJu(); //條件語句
bool y_FuZhiYuJu(); //賦值語句
bool y_FuHeYuJu(); //復(fù)合語句
bool y_YuJu(); //語句
bool y_YuJuChuan(); //語句串
bool y_XingCan(); //形參
bool y_XingCanBuFeng(); //形參部分
bool y_GuoChengShengMing(); //過程說明
bool y_BianliangShengMing();//簡便說明
bool y_ShengMing(); //說明 
bool y_ShengMingChuan(); //說明串
bool y_ChengXuTi(); //程序體
bool y_ChengXu(); //程序
/*-----------------------------------------------------*/
};

#endif 


 

/************************************************************************ 
* 文件名:    FenXi.cpp 
* 文件描述:  詞法語法分析的實(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)志符的長度為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
* 功能描述:   語法分析 (public)
* 返回值:    void
* 作 者:     程紅秀 2005年6月15日
================================================================*/
void CFenXi::YuFaFenXi()
{
if (m_n==0) 
return; //未進(jìn)行詞法分析

m_nCur=0; //m_nCur用語指示詞法分析結(jié)果表中單詞的位置

y_ChengXu(); //從 程序 開始

return;
}


/*================================================================ 
* 函數(shù)名:    y_ChengXu
* 功能描述:   分析整個(gè)程序 (protected)
* 返回值:    bool
* 示例:
Program abc;
這里是程序體 
.
================================================================*/
bool CFenXi::y_ChengXu() //程序
{
switch (m_cifa[m_nCur]->nType)
{
case 3: //從program開始
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; //語法分析成功
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);  //過程聲明
  Begin
  t:=n+m;
  If m>n then n:=m else t:=m;
  While nbool CFenXi::y_ChengXuTi()
{
switch (m_cifa[m_nCur]->nType)
{
case 5: //procedure 
case 14: //booleger
case 15: //real

if (!y_ShengMingChuan())   //聲明串(用;隔開的多個(gè)變量或過程聲明)
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())  //語句串
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
* 功能描述:   聲明串 用;隔開的多個(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()) //過程聲明
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; //缺少變量類型 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)隔開的連續(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
* 功能描述:   過程聲明 (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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品亚洲专区无| 国产福利精品一区| 欧美韩国一区二区| 欧美人体做爰大胆视频| 99久久婷婷国产综合精品| 六月丁香婷婷色狠狠久久| 亚洲精品少妇30p| 久久久久久久国产精品影院| 欧美网站大全在线观看| 风流少妇一区二区| 蜜桃传媒麻豆第一区在线观看| 亚洲激情图片小说视频| 久久久精品综合| 日韩一区二区精品葵司在线| 欧美日韩一卡二卡三卡 | 成人黄色a**站在线观看| 日本美女一区二区三区视频| 亚洲人xxxx| 国产精品乱人伦中文| 久久午夜国产精品| 久久众筹精品私拍模特| 91麻豆精品国产91久久久资源速度 | 国产欧美一区二区精品婷婷| 日韩欧美激情在线| 欧美一级生活片| 欧美日本国产视频| 欧美日韩精品一区二区三区| 色偷偷88欧美精品久久久| 99热这里都是精品| jlzzjlzz欧美大全| 不卡欧美aaaaa| 丁香婷婷综合色啪| 懂色av噜噜一区二区三区av| 高清国产一区二区| 成人久久视频在线观看| 国产成人一区二区精品非洲| 国产精品一色哟哟哟| 国产精品系列在线播放| 国产寡妇亲子伦一区二区| 国产乱妇无码大片在线观看| 国产成人免费视频| 99精品国产91久久久久久| 99久久久国产精品| 色美美综合视频| 欧美视频中文一区二区三区在线观看| 在线免费不卡电影| 91精品国产综合久久蜜臀| 91精品国产一区二区三区蜜臀| 日韩一区二区视频在线观看| 亚洲精品一区在线观看| 欧美精品一区二区精品网| 久久精品视频免费| 1024成人网| 亚洲宅男天堂在线观看无病毒| 亚洲第一成人在线| 日本不卡一二三| 国产成人自拍网| 色婷婷综合五月| 欧美一级生活片| 中文字幕精品一区二区精品绿巨人 | 色播五月激情综合网| 欧美日韩另类一区| 久久综合国产精品| 国产精品成人免费| 舔着乳尖日韩一区| 国产一区二区不卡| 色婷婷综合五月| 日韩欧美aaaaaa| 亚洲日穴在线视频| 日本大胆欧美人术艺术动态 | 97久久精品人人做人人爽50路| 在线观看视频欧美| 亚洲精品在线免费观看视频| 国产精品卡一卡二| 日本欧美一区二区三区| 成人18视频日本| 欧美精品自拍偷拍动漫精品| 国产偷国产偷精品高清尤物 | 美女视频免费一区| www.亚洲激情.com| 欧美日韩一区二区欧美激情| 337p日本欧洲亚洲大胆精品| 一区二区三国产精华液| 精品一区二区三区的国产在线播放 | 精品国产sm最大网站| 国产精品灌醉下药二区| 麻豆91免费观看| 91美女在线看| 久久久无码精品亚洲日韩按摩| 亚洲最大的成人av| 国产精品一区2区| 欧美男男青年gay1069videost | 成人欧美一区二区三区黑人麻豆| 午夜成人免费视频| 99精品久久99久久久久| 久久品道一品道久久精品| 亚洲一区二区三区视频在线| 国产乱子伦一区二区三区国色天香 | 天堂在线一区二区| 成人av免费网站| 久久久影视传媒| 日韩—二三区免费观看av| a亚洲天堂av| 国产日韩成人精品| 蜜臀久久99精品久久久画质超高清 | 亚洲精品免费视频| 成人高清视频在线| 久久先锋影音av鲁色资源| 轻轻草成人在线| 欧美日本在线播放| 亚洲自拍另类综合| 91小视频免费观看| 中文字幕一区二区三| 国产成人亚洲综合a∨猫咪| 日韩女优毛片在线| 日本视频免费一区| 欧美精品一卡二卡| 一区二区三区四区五区视频在线观看| 丁香亚洲综合激情啪啪综合| 久久夜色精品一区| 国产精选一区二区三区 | 亚洲成年人网站在线观看| 色综合久久综合中文综合网| 国产精品久久久久一区二区三区共| 激情图区综合网| 精品裸体舞一区二区三区| 免费视频最近日韩| 欧美大度的电影原声| 麻豆精品一区二区综合av| 欧美日本国产视频| 喷白浆一区二区| 欧美一级午夜免费电影| 久久精品国产99久久6| 精品乱人伦一区二区三区| 久久av老司机精品网站导航| 精品国产91亚洲一区二区三区婷婷| 午夜精品视频在线观看| 91精品国产综合久久久久久久| 日韩综合一区二区| 日韩一区二区麻豆国产| 久久国产生活片100| 精品国产污污免费网站入口| 国产一二三精品| 国产精品日韩成人| 91丝袜高跟美女视频| 亚洲精品水蜜桃| 欧美日韩免费一区二区三区| 日本在线观看不卡视频| 久久久综合网站| 成人黄色在线网站| 一二三四社区欧美黄| 欧美亚洲愉拍一区二区| 日本系列欧美系列| 久久人人爽人人爽| 色综合欧美在线视频区| 天天色综合成人网| 精品国产百合女同互慰| 不卡的av网站| 亚洲国产综合在线| 精品动漫一区二区三区在线观看| 国产91高潮流白浆在线麻豆 | 亚洲欧美区自拍先锋| 欧美欧美欧美欧美首页| 精品一区二区三区日韩| 国产精品久99| 欧美在线免费观看亚洲| 韩国视频一区二区| 日韩码欧中文字| 日韩免费一区二区| 成人h动漫精品一区二| 午夜久久久久久久久久一区二区| 欧美mv日韩mv国产| 色婷婷av一区二区三区大白胸| 全国精品久久少妇| 成人免费在线观看入口| 91精品在线观看入口| 国产mv日韩mv欧美| 午夜婷婷国产麻豆精品| 国产午夜精品美女毛片视频| 欧洲精品一区二区| 激情图片小说一区| 亚洲妇女屁股眼交7| 国产亚洲综合色| 91精品国产综合久久精品性色| 国产成人在线免费| 麻豆一区二区三| 亚洲最新在线观看| 中文欧美字幕免费| 日韩一级大片在线观看| 91成人在线精品| 国产凹凸在线观看一区二区| 日本欧美加勒比视频| 亚洲精品日韩一| 中文字幕高清不卡| 日韩免费视频一区二区| 欧美日韩国产在线播放网站| av在线不卡免费看| 国产福利一区二区三区视频在线| 日韩va欧美va亚洲va久久| 亚洲精选一二三|