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

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

?? 說明.txt

?? 用mfc編的一個(gè)mini pascal compiler
?? 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();//簡(jiǎn)便說明
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一区二区三区免费野_久草精品视频
成人亚洲精品久久久久软件| 亚洲国产精品二十页| 欧美主播一区二区三区美女| 97久久精品人人做人人爽| 成人99免费视频| 白白色亚洲国产精品| 不卡视频一二三| 972aa.com艺术欧美| 色久综合一二码| 日本丶国产丶欧美色综合| 91影视在线播放| 在线观看视频91| 欧美男生操女生| 日韩亚洲欧美高清| 欧美成人bangbros| 久久精品一级爱片| 国产精品伦理一区二区| 中文字幕在线观看一区| 亚洲激情第一区| 亚洲v中文字幕| 蜜臀av一区二区在线观看| 麻豆精品在线观看| 国产91在线观看| 97精品国产露脸对白| 精品视频在线视频| 欧美mv和日韩mv国产网站| 国产午夜精品一区二区三区视频 | 国产亚洲成aⅴ人片在线观看| 国产校园另类小说区| 亚洲色图视频网站| 午夜精品在线看| 六月丁香婷婷久久| 高清不卡在线观看av| 色综合久久天天| 91精品婷婷国产综合久久性色| 日韩欧美视频一区| 国产精品福利一区二区| 亚洲第一狼人社区| 国产一区二区看久久| 一本色道亚洲精品aⅴ| 欧美人妇做爰xxxⅹ性高电影| 日韩欧美精品在线| 专区另类欧美日韩| 老司机精品视频在线| 国产91对白在线观看九色| 91精彩视频在线| 精品国产91洋老外米糕| 亚洲色图.com| 久久99精品国产.久久久久久| 99国产欧美另类久久久精品| 91精品欧美久久久久久动漫 | 玉米视频成人免费看| 美女看a上一区| 91麻豆成人久久精品二区三区| 91精品福利在线一区二区三区| 中文字幕精品三区| 图片区小说区区亚洲影院| 国产精品1区2区3区在线观看| 欧美性xxxxxx少妇| 国产亚洲一本大道中文在线| 亚洲成人av资源| 成人精品免费网站| 91精品国产综合久久久久久久 | 日韩一区二区三区在线| 亚洲猫色日本管| 国内精品国产三级国产a久久| 欧美婷婷六月丁香综合色| 国产亚洲一区二区三区| 男女视频一区二区| 在线视频一区二区三区| 国产精品蜜臀在线观看| 精品一区二区免费在线观看| 欧美女孩性生活视频| 亚洲天堂成人在线观看| 国产精品91xxx| 欧美大胆一级视频| 性做久久久久久免费观看| 99久久er热在这里只有精品66| 精品久久久久久久久久久久久久久| 一区二区三区中文字幕电影 | 激情文学综合网| 在线不卡a资源高清| 国产精品九色蝌蚪自拍| 美脚の诱脚舐め脚责91 | 成人av电影在线观看| 精品美女一区二区| 一区二区三区 在线观看视频| 波多野结衣欧美| 精品动漫一区二区三区在线观看| 亚洲色图20p| 国产成人精品免费| 日韩欧美一区二区在线视频| 亚洲免费在线观看| 国产一区二区日韩精品| 精品精品国产高清a毛片牛牛| 亚洲一区视频在线观看视频| 成人国产免费视频| 久久综合色之久久综合| 美国精品在线观看| 在线不卡欧美精品一区二区三区| 一区二区三区中文字幕| 99这里都是精品| 国产清纯在线一区二区www| 美女免费视频一区| 91精品国产综合久久精品图片 | 亚洲男人的天堂在线aⅴ视频| 成人av影视在线观看| 国产色综合一区| 狠狠色2019综合网| 欧美不卡一区二区三区| 日韩av午夜在线观看| 欧美精品亚洲一区二区在线播放| 最新不卡av在线| 日本二三区不卡| 亚洲综合久久久| 欧美性一区二区| 亚洲超碰精品一区二区| 欧美日韩精品一区二区三区| 亚洲五码中文字幕| 91高清视频在线| 五月天精品一区二区三区| 在线观看日韩一区| 偷窥少妇高潮呻吟av久久免费| 色综合天天综合色综合av| 亚洲成a人片在线观看中文| 欧美日韩一卡二卡三卡| 日韩中文字幕不卡| 欧美电视剧免费全集观看| 美日韩一区二区三区| 欧美不卡在线视频| 狠狠色狠狠色综合| 国产精品剧情在线亚洲| 91丨九色porny丨蝌蚪| 亚洲欧美日韩小说| 色94色欧美sute亚洲13| 亚洲精品乱码久久久久久| 色综合中文综合网| 岛国精品在线播放| 成人欧美一区二区三区小说 | 亚洲高清免费在线| 欧美精品在线观看一区二区| 麻豆国产精品官网| 欧美激情在线一区二区三区| 国产成人av网站| 亚洲第一精品在线| 欧美精品一区二区三区蜜桃视频| 韩国欧美一区二区| 国产精品丝袜黑色高跟| 色婷婷精品久久二区二区蜜臀av| 午夜a成v人精品| 欧美日韩免费高清一区色橹橹| 精品一区二区免费看| 国产精品久久久久久久久搜平片 | 日韩欧美亚洲国产精品字幕久久久| 国产乱理伦片在线观看夜一区| 国产精品国产三级国产| 在线观看网站黄不卡| 韩国成人精品a∨在线观看| 国产精品久久毛片av大全日韩| 欧美少妇一区二区| 韩国成人精品a∨在线观看| 亚洲色欲色欲www| 日韩欧美激情一区| 一本色道久久综合亚洲精品按摩| 日韩av电影免费观看高清完整版| 国产日韩三级在线| 欧美在线观看视频一区二区| 美国十次了思思久久精品导航| 亚洲国产高清在线观看视频| 在线播放日韩导航| 成人久久18免费网站麻豆| 亚洲精品久久久蜜桃| 国产亚洲人成网站| 欧美日韩情趣电影| 成人免费视频app| 日本vs亚洲vs韩国一区三区二区| 中文字幕精品一区二区三区精品| 欧美日韩免费电影| 日本高清免费不卡视频| 国产一区二区免费看| 午夜不卡av免费| 亚洲日本va午夜在线影院| 欧美白人最猛性xxxxx69交| 在线一区二区视频| 成人av免费在线观看| 久久99国内精品| 午夜亚洲福利老司机| 国产精品不卡一区二区三区| 久久精品一区二区三区不卡牛牛 | 99久久精品情趣| 九九精品一区二区| 亚洲一区二区三区中文字幕在线| 日韩免费高清av| 日韩三级av在线播放| 欧美日韩免费观看一区二区三区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 自拍偷拍欧美激情| 欧美激情一区二区三区不卡| 欧美成人猛片aaaaaaa| 欧洲另类一二三四区|