• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    C語言詞法語法分析工具CParser的設(shè)計與實(shí)現(xiàn)

    2014-04-29 13:45:14楊劭君蘇小紅王甜甜馬培軍
    智能計算機(jī)與應(yīng)用 2014年5期
    關(guān)鍵詞:編譯原理

    楊劭君 蘇小紅 王甜甜 馬培軍

    摘要:程序分析技術(shù)包括控制流分析、數(shù)據(jù)流分析、別名分析、程序切片和程序插樁等技術(shù),在程序理解,代碼重構(gòu)、代碼優(yōu)化和軟件自動化調(diào)試等方面有著重要的應(yīng)用,而詞法分析和語法分析技術(shù)是程序分析技術(shù)的基礎(chǔ)。本文設(shè)計與實(shí)現(xiàn)了一個輕量級的C語言詞法語法分析工具CParser,通過詞法分析、預(yù)處理和語法分析三個步驟,實(shí)現(xiàn)了根據(jù)源代碼建立相應(yīng)的抽象語法樹的功能。工具使用簡單方便,而且能夠完整支持C99標(biāo)準(zhǔn),可用于克隆代碼檢測、軟件錯誤定位等后續(xù)研究工作。

    關(guān)鍵詞:詞法分析;語法分析;抽象語法樹;編譯原理

    中圖分類號:TP311 文獻(xiàn)標(biāo)識號:A 文章編號:2095-2163(2014)05-

    Design and Implementation of Lexical and Syntax Analysis Tool CParser for C Language

    YANG Shaojun, SU Xiaohong, WANG Tiantian, MA Peijun

    (School of Computer Science and Technology, Harbin Institute of Technology, Harbin, 150001, China)

    Abstract:Program analysis techniques contains control flow analysis, data flow analysis, alias analysis, program slicing techniques and program instrumentation, and has important applications in program comprehension, code refactoring, code optimization, automated software debugging and other aspects, and the lexical analysis and syntax analysis technology is the basis for program analysis techniques. This paper designs and implements a new C language syntax analysis tool named CParser, through three steps which are lexical analysis, preprocessing and syntax analysis to achieve the establishment of the abstract syntax tree based on the source code. This tool is easy to use, and can fully support the C99 standard, furtherly can be used to code clone detection and fault localization.

    Keywords:Lexical Analysis; Syntax Analysis; Abstract Syntax Tree; Compiler Principles

    0 引言

    程序分析技術(shù)可以分為靜態(tài)分析技術(shù)和動態(tài)分析技術(shù)兩大類,具體來說則包括控制流分析、數(shù)據(jù)流分析、別名分析、程序切片和程序插樁等諸多技術(shù)[1],并在程序理解,代碼重構(gòu)、代碼優(yōu)化和軟件自動化調(diào)試等方面有著重要的應(yīng)用。

    程序分析技術(shù)中,詞法分析和語法分析是其實(shí)現(xiàn)基礎(chǔ)。具體地,詞法分析是對程序的源代碼進(jìn)行分析,并從中提取詞法單元(Token)的過程。語法分析則是按照編程語言的語法規(guī)則,對詞法分析得到的Token串進(jìn)行深度解析,并建立抽象語法樹的過程。

    目前針對C語言的研究工作,大多都使用GCC或者基于LLVM[2]的Clang來分析源代碼,還有一些則使用一些其它較為簡單的C語言詞法語法分析工具。但是,這些方法或多或少都存在一些缺陷。具體分析如下。

    GCC和Clang都是完整的C、C++語言的編譯器,而C語言的詞法語法分析,僅僅用到了這些工具的很小一部分功能。而且,GCC并未提供方便的接口來提取根據(jù)源文件建立的抽象語法樹,需要使用者能夠解析GCC的AST中間文件,這一過程難度較大,尤其是其中包含了很多冗余信息,造成了很大不便。Clang則更為龐大、復(fù)雜,同時缺少相關(guān)的文檔和示例,學(xué)習(xí)和使用都較為困難,需要經(jīng)過較長時間的摸索和嘗試。

    而一些其他的C語言詞法語法分析工具,則未能完整支持必要的C語言標(biāo)準(zhǔn),也未能很好地支持宏定義、頭文件引入和類型聲明等特性,而是只能解析部分比較簡單的C語言程序。

    因此,本文使用C#語言設(shè)計了一個C語言詞法語法分析工具CParser,采用Visual Studio 2012 集成開發(fā)環(huán)境提供管理運(yùn)行,主要實(shí)現(xiàn)了C99 (ISO/IEC 9899:1999)標(biāo)準(zhǔn)的全部特性,包括完整的預(yù)處理功能,以及對引入頭文件和類型聲明的支持,已足夠用于常見的C語言程序分析。

    1 詞法語法分析工具的整體設(shè)計

    本文的目標(biāo)是實(shí)現(xiàn)簡單易用的C語言的詞法語法分析工具,以C語言源文件作為輸入,以相應(yīng)的抽象語法樹作為輸出。具體地,采用了如圖1所示的架構(gòu),其中主要包括詞法分析、預(yù)處理、語法分析、符號表和錯誤處理五大模塊。

    其基本原理是:首先輸入需要分析的C語言源程序,由詞法分析模塊對其進(jìn)行詞法分析,生成Token串。然后由預(yù)處理模塊對Token串執(zhí)行預(yù)處理,解析并處理其中的預(yù)處理指令。最后由語法分析模塊根據(jù)預(yù)處理后的結(jié)果建立抽象語法樹,再將其返回給用戶。各個模塊之間使用符號表交換必要的數(shù)據(jù),如果任何模塊出現(xiàn)了錯誤,則統(tǒng)一由錯誤處理模塊向用戶提交報告。

    圖1 詞法語法分析工具框架圖

    Fig.1 Frame diagram of lexical and syntax analysis tool

    2 詞法語法分析工具的具體實(shí)現(xiàn)

    2.1 詞法分析的實(shí)現(xiàn)

    要實(shí)現(xiàn)C語言的詞法分析,首先需要定義C語言的基本組成單元的實(shí)現(xiàn)模式,用于之后的文本匹配。通常使用正則表達(dá)式來進(jìn)行模式定義,本文定義了8個模式,分別是注釋(匹配單行或多行注釋)、標(biāo)識符(匹配C語言的關(guān)鍵字和合法的標(biāo)識符)、數(shù)字常量(匹配整數(shù)、浮點(diǎn)數(shù)和科學(xué)記數(shù)法)、字符常量(匹配C語言的字符常量)、字符串常量(匹配C語言的字符串常量)、符號(匹配C語言的運(yùn)算符和分隔符)、換行符和空白。

    詞法分析的原理,就是按照一定順序掃描給出的C語言源代碼,不斷的將讀入的源代碼與預(yù)先定義的模式進(jìn)行匹配。如果匹配成功,就表示成功地找到了一個Token,接下來繼續(xù)匹配剩余的源代碼直至到達(dá)文件結(jié)尾,源代碼即可成功轉(zhuǎn)換為Token串。如果匹配失敗,則直接終止掃描,并向錯誤處理模塊報告錯誤信息。

    模式的匹配過程,是建立可以識別模式的自動機(jī),來判斷源代碼與哪個模式相匹配。這樣雖然需要消耗一些時間來建立自動機(jī),但自動機(jī)只需建立一次,就可以在O(n)的時間復(fù)雜度內(nèi)完成源代碼的掃描,其中n為源代碼的長度。自動機(jī)的建立程是利用Thompson 算法[3],即將模式轉(zhuǎn)換為與其等價的不確定有窮自動機(jī)(Nondeterministic Finite Automata, NFA),再利用子集構(gòu)造法[4],構(gòu)造出與NFA等價的確定有窮自動機(jī)(Deterministic Finite Automata, DFA),由此而實(shí)現(xiàn)穩(wěn)定高效的模式匹配。

    在得到與源代碼對應(yīng)的Token串之后,會將其中表示注釋和空白的Token刪去,因為這些內(nèi)容僅用于幫助開發(fā)者理解程序,在程序分析時并不會起到任何作用。而表示換行符的Token卻必須保留,因為C語言的預(yù)處理指令是以換行符為結(jié)尾的,在接下來的預(yù)處理過程中即將會用到這一信息。

    2.2 預(yù)處理的實(shí)現(xiàn)

    C語言的預(yù)處理指令,主要包括文件包含指令(#include),宏定義指令(#define和#undef)、條件編譯指令(#if、#ifdef、#ifndef、#elif、#else和#endif),以及一些輔助指令(#line、#error和#pragma)。這些預(yù)處理指令的執(zhí)行,都是由預(yù)處理模塊完成的。

    預(yù)處理模塊的功能就是遍歷詞法分析得到的Token串,找到并執(zhí)行其中的預(yù)處理指令。執(zhí)行完畢的預(yù)處理指令,即會從Token串中移除。下面介紹這些預(yù)處理指令的具體實(shí)現(xiàn)。

    (1)文件包含指令,用于將指定文件的內(nèi)容包含到當(dāng)前源文件中。

    如果指令中包含的文件名形式是 “fileName”,就會在當(dāng)前文件路徑中搜索該文件名;如果形式是,則會在用戶指定的標(biāo)準(zhǔn)頭文件目錄中搜索該文件名,失敗后還要在當(dāng)前文件路徑中再次搜索。如果搜索成功,即讀取文件的內(nèi)容,利用詞法分析模塊對其進(jìn)行詞法分析,并將得到的Token串插入到當(dāng)前Token串中。

    (2)宏定義指令,用于定義或取消定義指定名稱的宏。

    對于#define命令,則將定義的宏的名稱、內(nèi)容和當(dāng)前位置記錄下來;對于#undef宏,亦同樣會將宏的名稱和當(dāng)前位置記錄下來。宏的替換過程將在最后來進(jìn)行研究和處理。

    一個宏的作用范圍是從#define的位置開始,到相應(yīng)的#undef位置結(jié)束,在該范圍外,這個宏則不存在。而按照內(nèi)容的不同,可以將宏分為對象宏(無參數(shù))和函數(shù)宏(有參數(shù))兩類。

    (3)條件編譯指令,用于根據(jù)條件,選擇某些代碼進(jìn)行編譯,而忽略另外一些代碼。

    首先需要找到#if、#elif、#else、#endif這些指令間的對應(yīng)關(guān)系(因條件編譯允許相互嵌套),然后按從上到下的順序依次計算指令中的條件,只有第一個結(jié)果不為0的指令所對應(yīng)的Token串會被保留,其余的Token都將被刪去。

    在計算相應(yīng)條件時,需要將條件中的所有宏展開,再將所有標(biāo)識符替換為整數(shù)0,最后就是計算這個僅由整數(shù)和整數(shù)運(yùn)算符組成的表達(dá)式的結(jié)果即可。

    (4)輔助指令,提供一些輔助功能,這些指令對詞法語法分析過程均不產(chǎn)生影響,

    經(jīng)過以上步驟,Token串中的預(yù)處理指令已經(jīng)全部移除,接下去就是執(zhí)行宏替換,也就是依次遍歷Token串中的每個Token,假設(shè)當(dāng)前遍歷到第i個Token,若:

    ① 該Token的類型不是標(biāo)識符,或者標(biāo)識符不是已定義的宏名稱,還或者當(dāng)前位置不在宏的作用范圍內(nèi),那么跳過當(dāng)前Token。

    ②該Token對應(yīng)的宏是對象宏,則將對象宏的內(nèi)容替換該Token,下次仍需從位置i重新開始遍歷。

    ③該Token對應(yīng)的宏是函數(shù)宏,則從位置i+1開始搜索實(shí)參,再使用函數(shù)宏的內(nèi)容替換該Token和實(shí)參,而下次仍需從位置i遍歷。在使用實(shí)參替換形參之前,還需要對實(shí)參進(jìn)行一次宏替換。

    需要注意的是,如果在替換宏M時,將一個標(biāo)識符D插入到了Token串,那么其后D是不會再被宏M替換的。因為上述的宏替換過程,同一個標(biāo)識符可能會經(jīng)歷多次掃描,隨之就需要保證不會出現(xiàn)無限的宏替換。

    例如,對于以下代碼:

    #define a a+b

    a;

    宏替換的結(jié)果是a+b;,宏a只會被替換一次,而不會出現(xiàn)無限替換的情況。

    2.3 語法分析的實(shí)現(xiàn)

    基于上述工作,其后就要開展語法分析研究。這里同樣需要定義一系列規(guī)則,這些規(guī)則使用上下文無關(guān)文法,描述了C語言的語法。語法分析就是根據(jù)這些規(guī)則,構(gòu)造出LALR[5]語法分析表,再利用這個表格,嘗試將預(yù)處理得到的Token串與規(guī)則進(jìn)行匹配。如果匹配成功,就可以將Token串歸約為節(jié)點(diǎn),并最終形成抽象語法樹。如果匹配失敗,說明出現(xiàn)了語法錯誤,同樣會終止匹配,并向錯誤處理模塊報告錯誤信息。

    語法分析部分的規(guī)則定義非常復(fù)雜,本文共定義了220條規(guī)則,描述了63種抽象語法結(jié)構(gòu)。每種抽象語法結(jié)構(gòu)都對應(yīng)一種抽象語法樹節(jié)點(diǎn),可以分為聲明、語句、表達(dá)式和類型四大類。這四類結(jié)構(gòu)相互嵌套,就可以描述任意復(fù)雜的C語言源代碼。

    所有的抽象語法樹節(jié)點(diǎn)都繼承自SyntaxNode類,對其定義如下:

    class SyntaxNode {

    SyntaxKind Kind;

    SourceRange Range;

    IList ChildNodes;

    }

    所有節(jié)點(diǎn)都具有節(jié)點(diǎn)類型、對應(yīng)的源文件位置,以及子節(jié)點(diǎn)這些屬性。不同類型的節(jié)點(diǎn),具體包含的子節(jié)點(diǎn)數(shù)是不同的,例如IfStatement類表示if語句,可能包含Condition(條件表達(dá)式)、TrueStatements(條件為真時要執(zhí)行語句)和FalseStatements(條件為假時要執(zhí)行的語句)三個子節(jié)點(diǎn)。而BinaryExpression類表示二元表達(dá)式,卻只會包含Left(左操作數(shù))和Right(右操作數(shù))兩個子節(jié)點(diǎn)。

    本文使用的抽象語法樹,還實(shí)現(xiàn)了一個較為少見卻很實(shí)用的功能,能夠?qū)⒊橄笳Z法樹反向生成相應(yīng)的C語言源代碼。該功能有利于程序?qū)υ创a進(jìn)行修改,即首先通過詞法語法分析,建立源代碼的抽象語法樹。再用程序修改抽象語法樹,由于抽象語法樹中包含源代碼的所有結(jié)構(gòu)信息,因此程序的操作會極為便捷。最后再反向生成相應(yīng)的C語言源代碼,進(jìn)而實(shí)現(xiàn)源代碼的修改。

    2.4 用戶界面的設(shè)計和實(shí)現(xiàn)

    本文基于CParser工具,實(shí)現(xiàn)了一個語法樹建立與展示的程序,具體如圖2所示。點(diǎn)擊分析按鈕,選擇要分析的C語言源代碼,就會對源代碼進(jìn)行詞法語法分析,建立相應(yīng)的抽象語法樹,并在界面右邊顯示出來。

    界面左邊列出了被分析的源文件、包含的頭文件以及診斷信息(分析時產(chǎn)生的錯誤信息),界面右邊是相應(yīng)的抽象語法樹。選擇一個抽象語法樹節(jié)點(diǎn),與其對應(yīng)的源代碼會高亮顯示,便于根據(jù)抽象語法樹找到相應(yīng)的源代碼。圖2左側(cè)高亮的if語句塊,對應(yīng)的抽象語法樹即如圖3所示,每一個橢圓表示一個抽象語法樹節(jié)點(diǎn),其中的文字是節(jié)點(diǎn)的類型,第二行加粗的文本是該節(jié)點(diǎn)附加的屬性。

    可以看到,抽象語法樹中只包括了源代碼的抽象結(jié)構(gòu),源代碼的很多不影響程序結(jié)構(gòu)的細(xì)節(jié)信息(空白、注釋、花括號等分隔符)都已移除,而關(guān)鍵信息(如變量名、常量等)則全部保留下來。

    if語句的條件表達(dá)式,語句塊內(nèi)的fprintf函數(shù)和exit函數(shù)調(diào)用,很容易就能夠在抽象語法樹中找到相應(yīng)的節(jié)點(diǎn),關(guān)鍵的變量名稱、函數(shù)名稱等信息也全部保存在節(jié)點(diǎn)屬性中。將圖3所示的抽象語法樹顯示在界面上,即如圖2右邊所示,而且同樣也是以樹狀結(jié)構(gòu)來實(shí)現(xiàn)可視顯示的。

    圖2 語法樹建立與展示程序的界面

    Fig.2 Interface of syntax tree build and display program

    圖3 條件語句的抽象語法樹

    Fig.3 Abstract syntax tree of condition statement

    3 結(jié)束語

    本文實(shí)現(xiàn)了一個C語言詞法語法分析工具CParser。該工具首先使用DFA實(shí)現(xiàn)Token的匹配,繼而完整地實(shí)現(xiàn)了預(yù)處理過程,最后基于LALR語法分析技術(shù)將Token串建立為抽象語法樹。

    本文成果的優(yōu)勢在于能夠完整地支持C99標(biāo)準(zhǔn),而且無需復(fù)雜的配置,使用簡單,開發(fā)效率高,且只要給出即將分析的源代碼,就能夠自動建立抽象語法樹。本文設(shè)計的C語言詞法語法分析工具CParser是一種非常實(shí)用的輕量級的C語言分析工具,并且對于克隆代碼檢測、軟件錯誤定位等后續(xù)研究工作具有良好的適用性。

    參考文獻(xiàn)

    [1] 梅宏,王千祥,張路等.軟件分析技術(shù)進(jìn)展[J].計算機(jī)學(xué)報,2009,32(9):1697-1710. DOI:10.3724/SP.J.1016.2009.01697.

    [2] LATTNER C, ADVE V. LLVM: A compilation framework for lifelong program analysis & transformation[C]//Code Generation and Optimization, 2004. CGO 2004. International Symposium on. IEEE, 2004: 75-86.

    [3] CHANG C H, PAIGE R. From regular expressions to dfa's using compressed nfa's[C]//Combinatorial Pattern Matching. Springer Berlin Heidelberg, 1992: 90-110.

    [4] RABIN M O, SCOTT D. Finite automata and their decision problems[J]. IBM journal of research and development, 1959, 3(2): 114-125.

    [5] De REMER F L. Practical translators for LR (k) languages[D]. Massachusetts Institute of Technology, 1969.

    猜你喜歡
    編譯原理
    編譯原理教學(xué)現(xiàn)狀與創(chuàng)新研究
    “項目驅(qū)動”在編譯原理教學(xué)中的應(yīng)用探究
    考試周刊(2017年33期)2017-12-27 11:05:39
    《編譯原理》教學(xué)內(nèi)容選擇探討
    計算機(jī)專業(yè)師范生編譯原理教學(xué)和實(shí)驗改革
    編譯原理立體化教學(xué)體系建設(shè)探索
    編譯原理教學(xué)方法研討與實(shí)踐考核改革
    《編譯原理》教學(xué)方法初探
    基于專業(yè)規(guī)范的編譯原理混合式教學(xué)改革
    軟件學(xué)院編譯原理實(shí)踐課程的教學(xué)探索
    基于MOOC的編譯原理分階段課程教學(xué)研究
    av在线老鸭窝| 国产精品国产三级国产专区5o| 国产免费视频播放在线视频| kizo精华| 建设人人有责人人尽责人人享有的| 成人影院久久| 国产 一区精品| 亚洲成色77777| 国产成人精品婷婷| 国产高清国产精品国产三级| 新久久久久国产一级毛片| 亚洲精品日本国产第一区| 极品人妻少妇av视频| 亚洲精品乱码久久久久久按摩| 在线观看人妻少妇| 丝袜在线中文字幕| 国产精品女同一区二区软件| 大码成人一级视频| 日本av免费视频播放| 男的添女的下面高潮视频| 亚洲人成网站在线观看播放| 极品少妇高潮喷水抽搐| 美女福利国产在线| 国产精品免费大片| 精品国产一区二区久久| 亚洲美女黄色视频免费看| 精品人妻偷拍中文字幕| 高清黄色对白视频在线免费看| 欧美最新免费一区二区三区| 国产探花极品一区二区| 亚洲丝袜综合中文字幕| 中文字幕制服av| 国产黄色视频一区二区在线观看| 国产综合精华液| 在现免费观看毛片| 多毛熟女@视频| 最新中文字幕久久久久| 亚洲成国产人片在线观看| av片东京热男人的天堂| 亚洲国产精品专区欧美| 亚洲国产av影院在线观看| 中文字幕精品免费在线观看视频 | 成人黄色视频免费在线看| 亚洲,欧美,日韩| 老熟女久久久| 欧美日韩视频高清一区二区三区二| 草草在线视频免费看| 久久精品国产亚洲av涩爱| 尾随美女入室| 伦精品一区二区三区| 老司机影院毛片| 久久国产精品男人的天堂亚洲 | 久久久国产精品麻豆| 久久鲁丝午夜福利片| a级片在线免费高清观看视频| 午夜福利,免费看| 国产淫语在线视频| 十八禁网站网址无遮挡| 中文字幕另类日韩欧美亚洲嫩草| 亚洲精品久久久久久婷婷小说| 少妇人妻 视频| 国产黄频视频在线观看| 91精品伊人久久大香线蕉| 多毛熟女@视频| 亚洲成人手机| 性色av一级| 在线观看一区二区三区激情| 乱码一卡2卡4卡精品| 2021少妇久久久久久久久久久| 亚洲av免费高清在线观看| 美女福利国产在线| 如何舔出高潮| 夜夜爽夜夜爽视频| 国产日韩欧美在线精品| 国产成人精品一,二区| 丝袜喷水一区| 中文字幕制服av| 亚洲国产欧美在线一区| 99re6热这里在线精品视频| 国产爽快片一区二区三区| 婷婷成人精品国产| 9色porny在线观看| 亚洲美女视频黄频| 日韩不卡一区二区三区视频在线| 亚洲精品美女久久久久99蜜臀 | 蜜桃在线观看..| 国产免费现黄频在线看| 交换朋友夫妻互换小说| 26uuu在线亚洲综合色| 久久久国产一区二区| 亚洲色图综合在线观看| 女性被躁到高潮视频| 中文字幕亚洲精品专区| 国产xxxxx性猛交| 欧美+日韩+精品| 亚洲av中文av极速乱| 国产视频首页在线观看| 飞空精品影院首页| 香蕉丝袜av| 国产男女内射视频| 丰满饥渴人妻一区二区三| 国产精品国产av在线观看| 婷婷色麻豆天堂久久| 在线观看国产h片| 国产精品久久久久久精品古装| 一区二区日韩欧美中文字幕 | 国产在线视频一区二区| h视频一区二区三区| 午夜福利,免费看| 久久精品人人爽人人爽视色| 一级片免费观看大全| 亚洲国产欧美日韩在线播放| 国产xxxxx性猛交| 午夜福利视频在线观看免费| 国产一区有黄有色的免费视频| 国产不卡av网站在线观看| 国产免费现黄频在线看| 满18在线观看网站| 成人免费观看视频高清| 日韩在线高清观看一区二区三区| 久久久久久人人人人人| 黄色视频在线播放观看不卡| 少妇 在线观看| 黄网站色视频无遮挡免费观看| 高清毛片免费看| 午夜影院在线不卡| 在线观看人妻少妇| 久久av网站| 国产成人精品无人区| 亚洲熟女精品中文字幕| 99热网站在线观看| 免费久久久久久久精品成人欧美视频 | 免费高清在线观看日韩| 伦理电影大哥的女人| 亚洲人成77777在线视频| 满18在线观看网站| 哪个播放器可以免费观看大片| 亚洲内射少妇av| 91精品国产国语对白视频| 午夜福利视频精品| 少妇 在线观看| 午夜激情av网站| 高清毛片免费看| 久久久久久久国产电影| 黄网站色视频无遮挡免费观看| 国产乱来视频区| 美女国产高潮福利片在线看| 国产片特级美女逼逼视频| 男男h啪啪无遮挡| 国产成人精品婷婷| 国产精品三级大全| 国产精品欧美亚洲77777| 丰满少妇做爰视频| 性色av一级| av在线老鸭窝| 夜夜爽夜夜爽视频| 男女无遮挡免费网站观看| 日韩欧美一区视频在线观看| 18禁国产床啪视频网站| 日韩在线高清观看一区二区三区| 18禁国产床啪视频网站| 欧美老熟妇乱子伦牲交| 成人综合一区亚洲| 免费少妇av软件| 在线观看人妻少妇| av在线老鸭窝| 久久亚洲国产成人精品v| 亚洲在久久综合| 午夜影院在线不卡| 国产精品久久久久久精品古装| 美女福利国产在线| 国产视频首页在线观看| 亚洲国产精品一区三区| 一级片'在线观看视频| 久久人人爽人人爽人人片va| 啦啦啦在线观看免费高清www| 观看av在线不卡| 国产精品一国产av| 五月玫瑰六月丁香| 一区二区三区四区激情视频| 2021少妇久久久久久久久久久| 天天躁夜夜躁狠狠躁躁| kizo精华| av.在线天堂| 欧美日韩精品成人综合77777| 2018国产大陆天天弄谢| 春色校园在线视频观看| 熟妇人妻不卡中文字幕| 亚洲精品美女久久久久99蜜臀 | tube8黄色片| 国产日韩欧美视频二区| 午夜激情av网站| 人妻系列 视频| 激情视频va一区二区三区| 久久精品夜色国产| 色婷婷久久久亚洲欧美| 久久午夜福利片| 美女内射精品一级片tv| 久久精品国产综合久久久 | 在线亚洲精品国产二区图片欧美| 中文乱码字字幕精品一区二区三区| 又黄又粗又硬又大视频| 99久国产av精品国产电影| 我要看黄色一级片免费的| 久久人人爽av亚洲精品天堂| 国产精品偷伦视频观看了| av免费观看日本| 成人国产麻豆网| 亚洲国产欧美在线一区| 一级片'在线观看视频| 国产激情久久老熟女| 久久午夜综合久久蜜桃| 国产成人av激情在线播放| 高清不卡的av网站| 久久精品国产综合久久久 | 亚洲精品一二三| 欧美激情 高清一区二区三区| 久久精品国产亚洲av涩爱| 捣出白浆h1v1| 成人亚洲欧美一区二区av| 国产熟女欧美一区二区| 午夜福利在线观看免费完整高清在| 精品国产一区二区三区久久久樱花| 大话2 男鬼变身卡| 亚洲精品乱码久久久久久按摩| 男女边摸边吃奶| 日产精品乱码卡一卡2卡三| 视频区图区小说| 久久青草综合色| 97人妻天天添夜夜摸| 女的被弄到高潮叫床怎么办| av在线播放精品| 啦啦啦视频在线资源免费观看| 日日爽夜夜爽网站| 久久99热6这里只有精品| 国产色婷婷99| 黄色配什么色好看| 亚洲精品视频女| av福利片在线| 黑人高潮一二区| 亚洲国产精品一区三区| 久久午夜福利片| 国产69精品久久久久777片| 精品亚洲成国产av| 久久精品aⅴ一区二区三区四区 | 多毛熟女@视频| 亚洲精品国产av成人精品| 亚洲精品成人av观看孕妇| 亚洲伊人色综图| 日本黄色日本黄色录像| 九九在线视频观看精品| 大香蕉久久成人网| av片东京热男人的天堂| 亚洲国产精品一区三区| 国产精品嫩草影院av在线观看| 国产一区有黄有色的免费视频| 精品酒店卫生间| 亚洲av国产av综合av卡| 人人妻人人澡人人看| 免费大片18禁| 日韩免费高清中文字幕av| 97精品久久久久久久久久精品| 丝袜在线中文字幕| 久久精品国产鲁丝片午夜精品| 美女视频免费永久观看网站| 亚洲欧美一区二区三区国产| 丝瓜视频免费看黄片| 熟女人妻精品中文字幕| 欧美3d第一页| 中文字幕制服av| 国产成人精品一,二区| 蜜桃在线观看..| 男女啪啪激烈高潮av片| 中国三级夫妇交换| 成人18禁高潮啪啪吃奶动态图| 高清欧美精品videossex| 女人被躁到高潮嗷嗷叫费观| 久久久国产精品麻豆| 亚洲一区二区三区欧美精品| 少妇的逼好多水| 亚洲av电影在线观看一区二区三区| 热99国产精品久久久久久7| 欧美日韩亚洲高清精品| 亚洲av电影在线进入| 免费观看a级毛片全部| 一二三四中文在线观看免费高清| 水蜜桃什么品种好| 亚洲少妇的诱惑av| av.在线天堂| 国产欧美另类精品又又久久亚洲欧美| 亚洲av电影在线观看一区二区三区| 国语对白做爰xxxⅹ性视频网站| 美女视频免费永久观看网站| www.av在线官网国产| 搡女人真爽免费视频火全软件| 国产精品一区二区在线不卡| 国产乱来视频区| 亚洲经典国产精华液单| 青青草视频在线视频观看| 久久久精品免费免费高清| 日本vs欧美在线观看视频| 欧美 日韩 精品 国产| 亚洲精品视频女| 女性被躁到高潮视频| 国产精品一区二区在线观看99| 9色porny在线观看| 精品人妻在线不人妻| xxx大片免费视频| 亚洲精品国产av蜜桃| 国产精品国产三级专区第一集| 久久国内精品自在自线图片| 人体艺术视频欧美日本| 亚洲欧美日韩卡通动漫| 精品酒店卫生间| 久久热在线av| 欧美+日韩+精品| 一级毛片电影观看| 久热这里只有精品99| 少妇的丰满在线观看| 熟妇人妻不卡中文字幕| 看非洲黑人一级黄片| 亚洲精品中文字幕在线视频| 国产永久视频网站| 国产1区2区3区精品| 又黄又爽又刺激的免费视频.| 在线天堂最新版资源| 中文字幕人妻熟女乱码| 久久ye,这里只有精品| 人妻系列 视频| 国产成人午夜福利电影在线观看| 国产成人精品久久久久久| 美女国产视频在线观看| 青青草视频在线视频观看| 下体分泌物呈黄色| 国产成人精品一,二区| 国产在线视频一区二区| 欧美最新免费一区二区三区| 亚洲成国产人片在线观看| 人妻人人澡人人爽人人| 巨乳人妻的诱惑在线观看| 日本黄大片高清| 日韩伦理黄色片| 亚洲欧洲精品一区二区精品久久久 | 捣出白浆h1v1| 免费人妻精品一区二区三区视频| 九色成人免费人妻av| 日韩一区二区三区影片| 成年人免费黄色播放视频| 啦啦啦在线观看免费高清www| 久久久精品区二区三区| 成人亚洲欧美一区二区av| 国产精品三级大全| 在线亚洲精品国产二区图片欧美| 亚洲,欧美精品.| 2018国产大陆天天弄谢| 亚洲精品久久成人aⅴ小说| 高清av免费在线| 亚洲五月色婷婷综合| 午夜福利在线观看免费完整高清在| 一本久久精品| 日本-黄色视频高清免费观看| 在线观看美女被高潮喷水网站| 亚洲精品一二三| 久久ye,这里只有精品| 久热这里只有精品99| 国产精品欧美亚洲77777| 在线观看一区二区三区激情| 中文精品一卡2卡3卡4更新| 亚洲国产毛片av蜜桃av| 少妇的逼好多水| 精品一区二区三卡| www.熟女人妻精品国产 | 成人漫画全彩无遮挡| 熟女av电影| av一本久久久久| 国产av一区二区精品久久| xxx大片免费视频| 夜夜爽夜夜爽视频| 日本猛色少妇xxxxx猛交久久| 午夜福利乱码中文字幕| 国产精品三级大全| 欧美激情 高清一区二区三区| 狂野欧美激情性xxxx在线观看| 日韩在线高清观看一区二区三区| 久久久久人妻精品一区果冻| 欧美人与善性xxx| 亚洲精品久久午夜乱码| 亚洲中文av在线| 亚洲成人手机| 老司机影院毛片| 美国免费a级毛片| av有码第一页| 亚洲国产欧美在线一区| 欧美xxxx性猛交bbbb| 欧美国产精品va在线观看不卡| 日本欧美视频一区| 婷婷色麻豆天堂久久| 亚洲高清免费不卡视频| 午夜福利视频在线观看免费| 欧美成人午夜免费资源| 全区人妻精品视频| 激情五月婷婷亚洲| 丝瓜视频免费看黄片| 亚洲一区二区三区欧美精品| 99九九在线精品视频| 久久av网站| 久久久国产一区二区| 欧美成人午夜免费资源| 免费高清在线观看视频在线观看| 精品国产国语对白av| 国产伦理片在线播放av一区| 日韩一本色道免费dvd| 一级毛片电影观看| 99热这里只有是精品在线观看| 午夜免费观看性视频| 日韩av不卡免费在线播放| 99久久中文字幕三级久久日本| 老司机亚洲免费影院| 欧美精品高潮呻吟av久久| 国产福利在线免费观看视频| av免费在线看不卡| 97人妻天天添夜夜摸| 国产在线免费精品| 自拍欧美九色日韩亚洲蝌蚪91| 欧美3d第一页| 熟女电影av网| 极品人妻少妇av视频| 最后的刺客免费高清国语| 国产淫语在线视频| 精品久久久久久电影网| 9热在线视频观看99| 高清视频免费观看一区二区| 久久久久视频综合| 亚洲精品第二区| 中文字幕人妻丝袜制服| 久久人人爽av亚洲精品天堂| 男人添女人高潮全过程视频| 久久精品国产自在天天线| 最后的刺客免费高清国语| 亚洲精品美女久久久久99蜜臀 | 亚洲精品乱码久久久久久按摩| 免费大片18禁| 美女中出高潮动态图| 色婷婷av一区二区三区视频| 欧美成人午夜免费资源| 欧美日韩成人在线一区二区| 国产在视频线精品| 亚洲性久久影院| 少妇被粗大猛烈的视频| 国产免费一区二区三区四区乱码| 纯流量卡能插随身wifi吗| 国产白丝娇喘喷水9色精品| 女人精品久久久久毛片| 欧美日韩国产mv在线观看视频| 国产深夜福利视频在线观看| 久久久久久久久久久免费av| 国产精品国产三级国产av玫瑰| 春色校园在线视频观看| 热99久久久久精品小说推荐| 午夜久久久在线观看| 97在线视频观看| 欧美丝袜亚洲另类| 不卡视频在线观看欧美| 国产精品国产三级专区第一集| 啦啦啦视频在线资源免费观看| 国产有黄有色有爽视频| 人妻一区二区av| av天堂久久9| 日韩视频在线欧美| 91aial.com中文字幕在线观看| 亚洲婷婷狠狠爱综合网| 精品一品国产午夜福利视频| 亚洲精品乱码久久久久久按摩| 国产激情久久老熟女| 亚洲五月色婷婷综合| 久久精品aⅴ一区二区三区四区 | 久久99热6这里只有精品| 看免费成人av毛片| 精品一区二区免费观看| 亚洲综合精品二区| 国产又爽黄色视频| 男女免费视频国产| 中文字幕最新亚洲高清| 九九爱精品视频在线观看| 人人妻人人澡人人爽人人夜夜| 亚洲av男天堂| 精品久久蜜臀av无| 午夜精品国产一区二区电影| 欧美精品一区二区免费开放| 久久精品国产综合久久久 | 亚洲美女黄色视频免费看| 国产日韩一区二区三区精品不卡| 久久久精品区二区三区| 九草在线视频观看| 亚洲欧美成人综合另类久久久| 国产精品久久久久久av不卡| 新久久久久国产一级毛片| 亚洲激情五月婷婷啪啪| 一区二区三区四区激情视频| 极品少妇高潮喷水抽搐| 国产成人精品无人区| 亚洲欧美日韩卡通动漫| 午夜影院在线不卡| 黄片无遮挡物在线观看| 成人无遮挡网站| 久久精品aⅴ一区二区三区四区 | 国产色爽女视频免费观看| 蜜臀久久99精品久久宅男| 一区二区三区四区激情视频| av视频免费观看在线观看| 制服诱惑二区| 亚洲高清免费不卡视频| 在线观看免费视频网站a站| 又大又黄又爽视频免费| 最近2019中文字幕mv第一页| 国产免费福利视频在线观看| 亚洲精品国产av成人精品| 尾随美女入室| 亚洲欧洲国产日韩| 在现免费观看毛片| 两个人免费观看高清视频| 免费观看a级毛片全部| 国产亚洲一区二区精品| 国产极品天堂在线| 女性被躁到高潮视频| 免费看不卡的av| 久久久国产一区二区| 久久精品国产鲁丝片午夜精品| 黄片无遮挡物在线观看| 99热全是精品| 大香蕉久久成人网| 欧美国产精品va在线观看不卡| 99国产综合亚洲精品| 丰满迷人的少妇在线观看| 国产淫语在线视频| 日韩中字成人| 国产乱来视频区| 大香蕉久久成人网| 精品久久久精品久久久| 国产一区二区三区综合在线观看 | 亚洲国产看品久久| 夫妻午夜视频| 精品一品国产午夜福利视频| 在线观看三级黄色| 91成人精品电影| 桃花免费在线播放| 日本欧美视频一区| 国产一区亚洲一区在线观看| 免费人成在线观看视频色| 色哟哟·www| 80岁老熟妇乱子伦牲交| 久久久久视频综合| 国产乱人偷精品视频| 如日韩欧美国产精品一区二区三区| 少妇人妻精品综合一区二区| 伊人亚洲综合成人网| 咕卡用的链子| 国产白丝娇喘喷水9色精品| 天堂8中文在线网| 亚洲欧美成人精品一区二区| 午夜激情久久久久久久| 在线观看人妻少妇| 免费播放大片免费观看视频在线观看| 蜜桃国产av成人99| 中文字幕人妻熟女乱码| 久久精品久久久久久久性| 国产精品 国内视频| 欧美日韩av久久| 大话2 男鬼变身卡| 欧美日韩国产mv在线观看视频| 伦精品一区二区三区| 久久久精品94久久精品| 欧美精品高潮呻吟av久久| 国产成人免费观看mmmm| 男人舔女人的私密视频| 五月伊人婷婷丁香| 国产精品久久久久久久久免| 蜜臀久久99精品久久宅男| 99热6这里只有精品| 永久免费av网站大全| 我要看黄色一级片免费的| 国产男女超爽视频在线观看| 久久精品久久精品一区二区三区| 国产伦理片在线播放av一区| 丰满乱子伦码专区| 80岁老熟妇乱子伦牲交| 久久久国产一区二区| 精品国产一区二区三区四区第35| 少妇人妻 视频| 999精品在线视频| 日本与韩国留学比较| 久久精品夜色国产| 久久久亚洲精品成人影院| 亚洲精品日本国产第一区| 制服丝袜香蕉在线| 我要看黄色一级片免费的| 最近中文字幕2019免费版| 亚洲国产最新在线播放| 亚洲中文av在线| 美女福利国产在线| 国产成人精品福利久久| 黄色毛片三级朝国网站| 欧美+日韩+精品| 两个人看的免费小视频| 国产伦理片在线播放av一区| 久久ye,这里只有精品| 尾随美女入室| 中文字幕最新亚洲高清| 久久久欧美国产精品| 青春草亚洲视频在线观看| 国产毛片在线视频| 国产高清国产精品国产三级| 97超碰精品成人国产| 亚洲av电影在线观看一区二区三区| 国产av一区二区精品久久|