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

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

?? parse.cpp

?? 編譯原理學(xué)習(xí)使用的代碼 內(nèi)容有從詞法分析到中間代碼生成的代碼 并且含有注釋
?? CPP
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):

		/*函數(shù)名的結(jié)點(diǎn)也用表達(dá)式類型結(jié)點(diǎn)*/
		TreeNode * child0 = newExpNode(VariK); 
		if(child0!=NULL)
		{
			child0->lineno = line0;
			strcpy(child0->name[0],temp_name);
			(child0->idnum)++;
			t->child[0] = child0;
		}
		t->child[1] = actParamList();
	}
	match(RPAREN);
	return t;
}

/********************************************************************/
/* 函數(shù)名 actParamList          		   	                        */
/* 功  能 函數(shù)調(diào)用實(shí)參部分的處理函數(shù)	                	        */
/* 產(chǎn)生式 < actParamList > ::=     ε |  exp actParamMore           */
/* 說(shuō)  明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語(yǔ)法樹(shù)節(jié)點(diǎn)  */
/********************************************************************/
TreeNode * actParamList(void)
{
	TreeNode * t = NULL;

	switch(token.Lex)
	{
	case RPAREN:        break;
	case ID:
	case INTC:
		t =exp();
		if(t!=NULL)
			t->sibling = actParamMore();
		break;
	default:
		ReadNextToken(&token);
		syntaxError("unexpected token is here!");
		break;
	}
	return t;
}

/********************************************************************/
/* 函數(shù)名 actParamMore          		   	                        */
/* 功  能 函數(shù)調(diào)用實(shí)參部分的處理函數(shù)	                	        */
/* 產(chǎn)生式 < actParamMore > ::=     ε |  , actParamList             */
/* 說(shuō)  明 函數(shù)根據(jù)文法產(chǎn)生式,調(diào)用相應(yīng)的遞歸處理函數(shù),生成語(yǔ)法樹(shù)節(jié)點(diǎn)  */
/********************************************************************/
TreeNode * actParamMore(void)
{
	TreeNode * t = NULL;
	switch(token.Lex)
	{
	case RPAREN:   break;
	case COMMA:
		match(COMMA);
		t = actParamList();
		break;
	default:	
		ReadNextToken(&token);
		syntaxError("unexpected token is here!");
		break;
	}
	return t;
}



/*************************表達(dá)式部分********************************/
/****************************************************************************/
/* 函數(shù)名 exp																*/
/* 功  能 表達(dá)式處理函數(shù)													*/
/* 產(chǎn)生式 < 表達(dá)式 > ::= < 簡(jiǎn)單表達(dá)式 > [< 關(guān)系運(yùn)算符 > < 簡(jiǎn)單表達(dá)式 > ]	*/
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)遞歸處理函數(shù),生成表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)		*/
/****************************************************************************/
TreeNode * exp(void)

{
  /* 調(diào)用簡(jiǎn)單表達(dá)式處理函數(shù)simple_exp(),返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t */
  TreeNode * t = simple_exp();

  /* 當(dāng)前單詞token為邏輯運(yùn)算單詞LT或者EQ */
  if ((token.Lex==LT)||(token.Lex==EQ)) 
  {
    /* 創(chuàng)建新的OpK類型語(yǔ)法樹(shù)節(jié)點(diǎn),新語(yǔ)法樹(shù)節(jié)點(diǎn)指針賦給p */
    TreeNode * p = newExpNode(OpK);

	/* 新語(yǔ)法樹(shù)節(jié)點(diǎn)p創(chuàng)建成功,初始化p第一個(gè)子節(jié)點(diǎn)成員child[0]
	 * 并將當(dāng)前單詞token(為EQ或者LT)賦給語(yǔ)法樹(shù)節(jié)點(diǎn)p的運(yùn)算符成員attr.op*/
    if (p!=NULL) 
	{
      p->lineno = line0;
	  p->child[0] = t;
      p->attr.ExpAttr.op = token.Lex;

	  /* 將新的表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)p作為函數(shù)返回值t */
      t = p;
    }

	/* 當(dāng)前單詞token與指定邏輯運(yùn)算符單詞(為EQ或者LT)匹配 */
    match(token.Lex);

	/* 語(yǔ)法樹(shù)節(jié)點(diǎn)t非空,調(diào)用簡(jiǎn)單表達(dá)式處理函數(shù)simple_exp()	*
	 * 函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t的第二子節(jié)點(diǎn)成員child[1]	*/
    if (t!=NULL)
      t->child[1] = simple_exp();
  }
  
  /* 函數(shù)返回表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)t */
  return t;
}


/************************************************************************/
/* 函數(shù)名 simple_exp													*/
/* 功  能 簡(jiǎn)單表達(dá)式處理函數(shù)											*/
/* 產(chǎn)生式 < 簡(jiǎn)單表達(dá)式 >::=	< 項(xiàng) > { < 加法運(yùn)算符 > < 項(xiàng) > }			*/
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)遞歸處理函數(shù),生成表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)	*/
/************************************************************************/
TreeNode * simple_exp(void)

{
  /* 調(diào)用元處理函數(shù)term(),函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t */
  TreeNode * t = term();

  /* 當(dāng)前單詞token為加法運(yùn)算符單詞PLUS或MINUS */
  while ((token.Lex==PLUS)||(token.Lex==MINUS))

  {
    /* 創(chuàng)建新OpK表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn),新語(yǔ)法樹(shù)節(jié)點(diǎn)指針賦給p */
	TreeNode * p = newExpNode(OpK);

 	/* 語(yǔ)法樹(shù)節(jié)點(diǎn)p創(chuàng)建成功,初始化p第一子節(jié)點(diǎn)成員child[0]	*
	 * 返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給p的運(yùn)算符成員attr.op				*/
    if (p!=NULL) 
	{
      p->lineno = line0;
	  p->child[0] = t;
      p->attr.ExpAttr.op = token.Lex;

	  /* 將函數(shù)返回值t賦成語(yǔ)法樹(shù)節(jié)點(diǎn)p */
      t = p;

	  /* 當(dāng)前單詞token與指定加法運(yùn)算單詞(為PLUS或MINUS)匹配 */
      match(token.Lex);

	  /* 調(diào)用元處理函數(shù)term(),函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t的第二子節(jié)點(diǎn)成員child[1] */
      t->child[1] = term();
    }
  }
  /* 函數(shù)返回表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)t */
  return t;
}



/****************************************************************************/
/* 函數(shù)名 term																*/
/* 功  能 項(xiàng)處理函數(shù)														*/
/* 產(chǎn)生式 < 項(xiàng) > ::= < 因子 > { < 乘法運(yùn)算符 > < 因子 > }					*/
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)遞歸處理函數(shù),生成表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)		*/
/****************************************************************************/
TreeNode * term(void)

{
  /* 調(diào)用因子處理函數(shù)factor(),函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t */
  TreeNode * t = factor();

  /* 當(dāng)前單詞token為乘法運(yùn)算符單詞TIMES或OVER */
  while ((token.Lex==TIMES)||(token.Lex==OVER))

  {
    /* 創(chuàng)建新的OpK表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn),新節(jié)點(diǎn)指針賦給p */
	treeNode * p = newExpNode(OpK);

	/* 新語(yǔ)法樹(shù)節(jié)點(diǎn)p創(chuàng)建成功,初始化第一個(gè)子節(jié)點(diǎn)成員child[0]為t	*
	 * 將當(dāng)前單詞token賦值給語(yǔ)法樹(shù)節(jié)點(diǎn)p的運(yùn)算符成員attr.op		*/
    if (p!=NULL) 
	{
      p->lineno= line0;
	  p->child[0] = t;
      p->attr.ExpAttr.op = token.Lex;
      t = p;
	}
	
	/* 當(dāng)前單詞token與指定乘法運(yùn)算符單詞(為TIMES或OVER)匹配 */
    match(token.Lex);

	/* 調(diào)用因子處理函數(shù)factor(),函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針賦給p第二個(gè)子節(jié)點(diǎn)成員child[1] */
    p->child[1] = factor();
    
  }
  /* 函數(shù)返回表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)t */
  return t;
}


/****************************************************************************/
/* 函數(shù)名 factor															*/
/* 功  能 因子處理函數(shù)														*/
/* 產(chǎn)生式 factor ::= ( exp ) | INTC | variable                  			*/
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)的遞歸處理函數(shù),生成表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)	*/
/****************************************************************************/
TreeNode * factor(void)

{
  /* 函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針t初始為為NULL */
  TreeNode * t = NULL;

  switch (token.Lex) 
  {
    case INTC :									

	  /* 創(chuàng)建新的ConstK表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn),賦值給t */
      t = newExpNode(ConstK);

	  /* 新語(yǔ)法樹(shù)節(jié)點(diǎn)t創(chuàng)建成功,當(dāng)前單詞token為數(shù)字單詞NUM						*
	   * 將當(dāng)前單詞名tokenString轉(zhuǎn)換為整數(shù)并賦給語(yǔ)法樹(shù)節(jié)點(diǎn)t的數(shù)值成員attr.val	*/
      if ((t!=NULL) && (token.Lex==INTC))
	  {
		  t->lineno = line0;
		  t->attr.ExpAttr.val = atoi(token.Sem);
	  }

	  /* 當(dāng)前單詞token與數(shù)字單詞NUM匹配 */
      match(INTC);
      break;

	/* 當(dāng)前單詞token為標(biāo)識(shí)符單詞ID */
    case ID :
	  
	  /* 創(chuàng)建新的IdK表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)t */	  
	  t = variable();
      break;

	/* 當(dāng)前單詞token為左括號(hào)單詞LPAREN */
    case LPAREN :		

	  /* 當(dāng)前單詞token與左括號(hào)單詞LPAREN匹配 */
      match(LPAREN);					

	  /* 調(diào)用表達(dá)式處理函數(shù)exp(),函數(shù)返回語(yǔ)法樹(shù)節(jié)點(diǎn)指針給t */
      t = exp();

	  /* 當(dāng)前單詞token與右括號(hào)單詞RPAREN匹配 */
      match(RPAREN);					

      break;

	/* 當(dāng)前單詞token為其它單詞 */
    default:			
      ReadNextToken(&token);
	  syntaxError("unexpected token is here!");
	  break;
    }
  /* 函數(shù)返回表達(dá)式類型語(yǔ)法樹(shù)節(jié)點(diǎn)t */
  return t;
}

/********************************************************************/
/* 函數(shù)名 variable													*/
/* 功  能 變量處理函數(shù)												*/
/* 產(chǎn)生式 variable   ::=   id variMore                   			*/
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式,	處理變量,生成其語(yǔ)法樹(shù)節(jié)點(diǎn)              */
/********************************************************************/
TreeNode * variable(void)
{
	TreeNode * t = newExpNode(VariK);

	if ((t!=NULL) && (token.Lex==ID))
	{
		t->lineno = line0;
		strcpy(t->name[0] ,token.Sem);
        (t->idnum)++;
	}
	
	match(ID);
	variMore(t);
	return t;
}


/********************************************************************/
/* 函數(shù)名 variMore													*/
/* 功  能 變量處理函數(shù)												*/
/* 產(chǎn)生式 variMore   ::=  ε                             			*/
/*                       | [exp]            {[}                     */
/*                       | . fieldvar       {DOT}                   */ 
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)的遞歸處理變量中的幾種不同類型	*/
/********************************************************************/		
void variMore(TreeNode * t)
{
	switch(token.Lex)
	{	
	case ASSIGN:
	case TIMES:
	case EQ:
	case LT:
	case PLUS:
	case MINUS:
	case OVER:
	case RPAREN:
	case RMIDPAREN:
	case SEMI:
	case COMMA:
	case THEN:
	case ELSE:
	case FI:
	case DO:
	case ENDWH:
	case END:
		break;
	case LMIDPAREN:
		match(LMIDPAREN);
		
		/*用來(lái)以后求出其表達(dá)式的值,送入用于數(shù)組下標(biāo)計(jì)算*/
		t->child[0] = exp();

		t->attr.ExpAttr.varkind = ArrayMembV;

		/*此表達(dá)式為數(shù)組成員變量類型*/
		t->child[0]->attr.ExpAttr.varkind = IdV;
		match(RMIDPAREN);
		break;
	case DOT:
		match(DOT);
		/*第一個(gè)兒子指向域成員變量結(jié)點(diǎn)*/
		t->child[0] = fieldvar();

		t->attr.ExpAttr.varkind = FieldMembV;

		t->child[0]->attr.ExpAttr.varkind = IdV;
		break;
	default:
		ReadNextToken(&token);
		syntaxError("unexpected token is here!");
		break;
	}
}


/********************************************************************/
/* 函數(shù)名 fieldvar													*/
/* 功  能 變量處理函數(shù)												*/
/* 產(chǎn)生式 fieldvar   ::=  id  fieldvarMore                          */ 
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式,處理域變量,并生成其語(yǔ)法樹(shù)節(jié)點(diǎn)       	*/
/********************************************************************/
TreeNode * fieldvar(void)
{
	/*注意,可否將此處的IdEK改為一個(gè)新的標(biāo)識(shí),用來(lái)記錄記錄類型的域*/
	TreeNode * t = newExpNode(VariK);

	if ((t!=NULL) && (token.Lex==ID))
	  {
		  t->lineno = line0;
		  strcpy(t->name[0] ,token.Sem);
          (t->idnum)++;
	  }	
	match(ID);
	
	fieldvarMore(t);

	return t;
}

/********************************************************************/
/* 函數(shù)名 fieldvarMore  											*/
/* 功  能 變量處理函數(shù)												*/
/* 產(chǎn)生式 fieldvarMore   ::=  ε                             		*/
/*                           | [exp]            {[}                 */ 
/* 說(shuō)  明 該函數(shù)根據(jù)產(chǎn)生式調(diào)用相應(yīng)的遞歸處理域變量為數(shù)組類型的情況	*/
/********************************************************************/
void fieldvarMore(TreeNode * t )
{
	switch(token.Lex)
	{
	case ASSIGN:
	case TIMES:
	case EQ:
	case LT:
	case PLUS:
	case MINUS:
	case OVER:
	case RPAREN:
	case SEMI:
	case COMMA:
	case THEN:
	case ELSE:
	case FI:
	case DO:
	case ENDWH:
	case END:
		break;
	case LMIDPAREN:
		match(LMIDPAREN);
		
		/*用來(lái)以后求出其表達(dá)式的值,送入用于數(shù)組下標(biāo)計(jì)算*/
		t->child[0] = exp();
		t->child[0]->attr.ExpAttr.varkind = ArrayMembV;
		match(RMIDPAREN);
		break;
	default:
		ReadNextToken(&token);
		syntaxError("unexpected token is here!");
		break;
	}
}
	

/********************************************************************/
/* 函數(shù)名 parse														*/
/* 功  能 語(yǔ)法分析函數(shù)												*/
/* 說(shuō)  明 該函數(shù)把詞法分析程序作為子程序調(diào)用,采用遞歸下降法			*/
/*		  根據(jù)產(chǎn)生式調(diào)用遞歸處理函數(shù),函數(shù)為源程序創(chuàng)建語(yǔ)法分析樹(shù)		*/
/********************************************************************/
TreeNode * parse(void)

{ 
  TreeNode * t=NULL;

  /* 從文件Tokenlist中取得第一個(gè)單詞,將詞法信息送給token */
  
  ReadNextToken(&token);

  /* 開(kāi)始調(diào)用基本語(yǔ)法分析處理函數(shù),遞歸下降處理 */
  t = program();
  
  /* 當(dāng)前單詞token不是ENDFILE,報(bào)代碼在文件結(jié)束前提前結(jié)束錯(cuò)誤 */
  if (token.Lex!=ENDFILE)
	  syntaxError("Code ends before file\n");
 
  /* 函數(shù)返回語(yǔ)法樹(shù)根節(jié)點(diǎn)t */
  return t;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久影音资源网| 欧美美女bb生活片| 欧美成va人片在线观看| 一区在线中文字幕| 久久er99热精品一区二区| 91久久精品一区二区三| 欧美激情一区二区在线| 极品销魂美女一区二区三区| 欧美群妇大交群的观看方式| 亚洲女同ⅹxx女同tv| 国产一区二区h| 日韩欧美自拍偷拍| 午夜精品123| 91九色02白丝porn| 中文字幕一区二区三区蜜月| 免费成人在线播放| 欧美日韩国产大片| 亚洲一区二区三区四区的| av在线综合网| 久久夜色精品国产噜噜av| 一级女性全黄久久生活片免费| 波多野结衣中文字幕一区| 久久综合给合久久狠狠狠97色69| 日韩成人免费电影| 欧美日韩国产综合一区二区三区| 玉米视频成人免费看| 99久久免费视频.com| 国产精品国产三级国产aⅴ中文 | 国产精品麻豆视频| 国产老肥熟一区二区三区| 精品国产免费久久| 久久精品国产色蜜蜜麻豆| 日韩欧美国产综合在线一区二区三区 | 91丝袜高跟美女视频| 久久久久久久综合| 国产精品一卡二卡| 国产婷婷色一区二区三区在线| 国产另类ts人妖一区二区| 久久九九国产精品| 国产91精品露脸国语对白| 亚洲国产精品传媒在线观看| 成人精品视频一区二区三区 | 欧美一区日韩一区| 蜜臀91精品一区二区三区| 欧美一级午夜免费电影| 精品一区二区三区欧美| 亚洲精品一区二区三区蜜桃下载 | 丝袜a∨在线一区二区三区不卡| 欧美三级电影网站| 日本不卡一区二区三区| 欧美日韩成人在线一区| 日日夜夜一区二区| 91精品国产福利在线观看| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人一区二区| 国产精品99久久久久久似苏梦涵| 久久久久亚洲蜜桃| 成人理论电影网| 国产精品网站导航| 99精品一区二区三区| 一区二区三区四区高清精品免费观看| 欧美亚洲禁片免费| 日本成人中文字幕| 久久中文字幕电影| 成人av资源站| 亚洲电影一级片| 日韩午夜小视频| 丰满亚洲少妇av| 亚洲精品美国一| 欧美一级欧美一级在线播放| 国产美女视频一区| 国内精品伊人久久久久av一坑 | 欧美精选一区二区| 久草精品在线观看| 中文字幕一区二区在线观看| 欧美日韩精品二区第二页| 免费成人小视频| 欧美高清在线一区| 欧美在线你懂的| 国产一区二区0| 亚洲美女屁股眼交| 91精品国产欧美日韩| 国产精品主播直播| 亚洲精品欧美二区三区中文字幕| 91精品国产乱码| 不卡视频一二三四| 日韩电影在线观看电影| 国产精品网站在线| 91精品综合久久久久久| 成人黄色免费短视频| 亚洲欧美另类在线| 欧美一级国产精品| 成人免费毛片aaaaa**| 日韩福利视频网| 久久午夜免费电影| 在线免费亚洲电影| 精品亚洲国产成人av制服丝袜| 中文字幕一区二区三中文字幕| 7777精品伊人久久久大香线蕉| 国产电影精品久久禁18| 亚洲国产精品一区二区www| 在线综合+亚洲+欧美中文字幕| 成人性生交大片免费看中文| 日韩综合在线视频| 国产精品萝li| 日韩美女视频在线| 在线一区二区三区| 国产二区国产一区在线观看| 午夜精品久久久久久久久久久| 国产精品毛片久久久久久久| 日韩欧美视频在线| 91久久人澡人人添人人爽欧美| 国产东北露脸精品视频| 日韩高清在线不卡| 国产精品理论在线观看| 91精品综合久久久久久| 成人h动漫精品一区二| 黄色小说综合网站| 五月婷婷另类国产| 亚洲欧洲色图综合| 精品国产一区二区在线观看| 欧美日韩国产a| 99天天综合性| 国产ts人妖一区二区| 精久久久久久久久久久| 午夜久久久久久电影| 亚洲免费av观看| 中文字幕一区日韩精品欧美| 欧美国产日韩a欧美在线观看| 欧美成人精品3d动漫h| 欧美精品在线观看一区二区| 一本久久a久久精品亚洲| 国产99久久久国产精品| 国产在线看一区| 久久精品国内一区二区三区| 丝袜亚洲精品中文字幕一区| 一区二区三区精品| 成人欧美一区二区三区视频网页| 国产亚洲自拍一区| 久久综合网色—综合色88| 欧美成人vps| 精品国产a毛片| 精品奇米国产一区二区三区| 日韩欧美第一区| 精品日韩在线一区| 精品久久久久香蕉网| 欧美成人福利视频| 精品国产欧美一区二区| 欧美精品一区二区三区四区| 精品电影一区二区三区| 久久综合色天天久久综合图片| 精品久久国产字幕高潮| 欧美精品一区男女天堂| 久久综合九色综合欧美就去吻| 26uuu国产日韩综合| 欧美精品一区二区三区蜜臀 | 欧美综合一区二区三区| 91国产视频在线观看| 在线观看视频一区| 欧美日韩中文一区| 欧美乱熟臀69xxxxxx| 3atv在线一区二区三区| 日韩欧美国产综合一区| 久久久久久麻豆| 国产精品青草久久| 中文字幕在线播放不卡一区| 亚洲男人的天堂在线aⅴ视频| 亚洲综合免费观看高清完整版| 亚洲成人久久影院| 蜜臀久久99精品久久久久久9| 久草在线在线精品观看| 国产成人综合在线观看| 粉嫩蜜臀av国产精品网站| 99vv1com这只有精品| 欧美在线|欧美| 91精品国产综合久久蜜臀| 欧美电影免费提供在线观看| 久久精品视频一区| 亚洲欧美怡红院| 亚洲h动漫在线| 精品一区二区免费在线观看| 国产suv精品一区二区三区| 97久久久精品综合88久久| 欧美嫩在线观看| 久久中文娱乐网| 亚洲欧美日韩综合aⅴ视频| 五月婷婷综合激情| 国产精品资源网| 色女孩综合影院| 91精品国产欧美日韩| 欧美激情资源网| 亚洲最新视频在线播放| 捆绑调教美女网站视频一区| 成人在线一区二区三区| 欧美系列亚洲系列| 精品福利av导航| 亚洲欧美日韩中文播放| 免费国产亚洲视频| 成人av网址在线| 在线播放中文一区|