3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎样写一个解释器

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样写一个解释器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載: 怎樣寫一個解釋器

寫一個解釋器,通常是設計和實現程序語言的第一步。解釋器是簡單卻又深奧的東西,以至于好多人都不會寫,所以我決定寫一篇這方面的入門讀物。

雖然我試圖從最基本的原理講起,盡量不依賴于其它知識,但這并不是一本編程入門教材。我假設你已經理解 Scheme 語言,以及基本的編程技巧(比如遞歸)。如果你完全不了解這些,那我建議你讀一下 SICP 的第一,二章,或者 HtDP 的前幾章,習題可以不做。注意不要讀太多書,否則你就回不來了 ;-) 當然你也可以直接讀這篇文章,有不懂的地方再去查資料。

實現語言容易犯的一個錯誤,就是一開頭就試圖去實現很復雜的語言(比如 JavaScript 或者 Python)。這樣你很快就會因為這些語言的復雜性,以及各種歷史遺留的設計問題而受到挫折,最后不了了之。學習實現語言,最好是從最簡單,最干凈的語言開始,迅速寫出一個可用的解釋器。之后再逐步往里面添加特性,同時保持正確。這樣你才能有條不紊地構造出復雜的解釋器。

因為這個原因,這篇文章只針對一個很簡單的語言,名叫“R2”。它可以作為一個簡單的計算器用,還具有變量定義,函數定義和調用等功能。

我們的工具:Racket


本文的解釋器是用 Scheme 語言實現的。Scheme 有很多的“實現”,這里我用的實現叫做 Racket,它可以在這里免費下載。為了讓程序簡潔,我用了一點點 Racket 的模式匹配(pattern matching)功能。我對 Scheme 的實現沒有特別的偏好,但 Racket 方便易用,適合教學。如果你用其它的 Scheme 實現,可能得自己做一些調整。

Racket 具有宏(macro),所以它其實可以變成很多種語言。如果你之前用過 DrRacket,那它的“語言設置”可能被你改成了 R5RS 之類的。所以如果下面的程序不能運行,你可能需要檢查一下 DrRacket 的“語言設置”,把 Language 設置成 “Racket”。


Racket 允許使用方括號而不只是圓括號,所以你可以寫這樣的代碼:

(let ([x 1][y 2])(+ x y))

方括號跟圓括號可以互換,唯一的要求是方括號必須和方括號匹配。通常我喜歡用方括號來表示“無動作”的數據(比如上面的 [x 1], [y 2]),這樣可以跟函數調用和其它具有“動作”的代碼,產生“視覺差”。這對于代碼的可讀性是一個改善,因為到處都是圓括號的話,確實有點太單調。

另外,Racket 程序的最上面都需要加上像 #lang racket 這樣的語言選擇標記,這樣 Racket 才可以知道你想用哪個語言變種。

解釋器是什么


準備工作就到這里。現在我來談一下,解釋器到底是什么。說白了,解釋器跟計算器差不多。解釋器是一個函數,你輸入一個“表達式”,它就輸出一個 “值”,像這樣:

比如,你輸入表達式 ‘(+ 1 2) ,它就輸出值,整數3。表達式是一種“表象”或者“符號”,而值卻更加接近“本質”或者“意義”。解釋器從符號出發,得到它的意義,這也許就是它為什么叫做“解釋器”。

需要注意的是,表達式是一個數據結構,而不是一個字符串。我們用一種叫“S表達式”(S-expression)的結構來存儲表達式。比如表達式 ‘(+ 1 2) 其實是一個鏈表(list),它里面的內容是三個符號(symbol):+, 1 和 2,而不是字符串”(+ 1 2)”。

從S表達式這樣的“結構化數據”里提取信息,方便又可靠,而從字符串里提取信息,麻煩而且容易出錯。Scheme(Lisp)語言里面大量使用結構化數據,少用字符串,這就是 Lisp 系統比 Unix 系統先進的地方之一。

從計算理論的角度講,每個程序都是一臺機器的“描述”,而解釋器就是在“模擬”這臺機器的運轉,也就是在進行“計算”。所以從某種意義上講,解釋器就是計算的本質。當然,不同的解釋器就會帶來不同的計算。你可能沒有想到,CPU 也是一個解釋器,它專門解釋執行機器語言。

抽象語法樹(Abstract Syntax Tree)


我們用S表達式所表示的代碼,本質上是一種叫做“樹”(tree)的數據結構。更具體一點,這叫做“抽象語法樹”(Abstract Syntax Tree,簡稱 AST)。下文為了簡潔,我們省略掉“抽象”兩個字,就叫它“語法樹”。

跟普通的樹結構一樣,語法樹里的節點,要么是一個“葉節點”,要么是一顆“子樹”。葉節點是不能再細分的“原子”,比如數字,字符串,操作符,變量名。而子樹是可以再細分的“結構”,比如算術表達式,函數定義,函數調用,等等。

舉個簡單的例子,表達式 ‘(* (+ 1 2) (+ 3 4)),就對應如下的語法樹結構:

其中,,兩個+,1,2,3,4 都是葉節點,而那三個紅色節點,都表示子樹結構:’(+ 1 2),’(+ 3 4),’( (+ 1 2) (+ 3 4))。

樹遍歷算法


在基礎的數據結構課程里,我們都學過二叉樹的遍歷操作,也就是所謂先序遍歷,中序遍歷和后序遍歷。語法樹跟二叉樹,其實沒有很大區別,所以你也可以在它上面進行遍歷。解釋器的算法,就是在語法樹上的一種遍歷操作。由于這個淵源關系,我們先來做一個遍歷二叉樹的練習。做好了之后,我們就可以把這段代碼擴展成一個解釋器。

這個練習是這樣:寫出一個函數,名叫tree-sum,它對二叉樹進行“求和”,把所有節點里的數加在一起,返回它們的和。舉個例子,(tree-sum ‘((1 2) (3 4))),執行后應該返回 10。注意:這是一顆二叉樹,所以不會含有長度超過2的子樹,你不需要考慮像 ((1 2) (3 4 5)) 這類情況。需要考慮的例子是像這樣:(1 2),(1 (2 3)), ((1 2) 3) ((1 2) (3 4)),……

(為了達到最好的學習效果,你最好試一下寫出這個函數再繼續往下看。)

好了,希望你得到了跟我差不多的結果。我的代碼是這個樣子:

#lang racket(define tree-sum(lambda (exp)(match exp ; 對輸入exp進行模式匹配[(? number? x) x] ; exp是一個數x嗎?如果是,那么返回這個數x[`(,e1 ,e2) ; exp是一個含有兩棵子樹的中間節點嗎?(let ([v1 (tree-sum e1)] ; 遞歸調用tree-sum自己,對左子樹e1求值 [v2 (tree-sum e2)]) ; 遞歸調用tree-sum自己,對右子樹e2求值(+ v1 v2))]))) ; 返回左右子樹結果v1和v2的和

你可以通過以下的例子來測試它的正確性:

(tree-sum '(1 2)) ;; => 3 (tree-sum '(1 (2 3))) ;; => 6 (tree-sum '((1 2) 3)) ;; => 6 (tree-sum '((1 2) (3 4))) ;; => 10

這個算法很簡單,我們可以把它用文字描述如下:

如果輸入 exp 是一個數,那就返回這個數。
否則如果 exp 是像 (,e1 ,e2) 這樣的子樹,那么分別對 e1 和 e2 遞歸調用 tree-sum,進行求和,得到 v1 和 v2,然后返回 v1 + v2 的和。
你自己寫出來的代碼,也許用了 if 或者 cond 語句來進行分支,而我的代碼里面使用的是 Racket 的模式匹配(match)。這個例子用 if 或者 cond 其實也可以,但我之后要把這代碼擴展成一個解釋器,所以提前使用了 match。這樣跟后面的代碼對比的時候,就更容易看出規律來。接下來,我就簡單講一下這個 match 表達式的工作原理。

模式匹配


現在不得不插入一點 Racket 的技術細節,如果你已經學會使用 Racket 的模式匹配,可以跳過這一節。你也可以通過閱讀 Racket 模式匹配的文檔來代替這一節。但我建議你不要讀太多文檔,因為我接下去只用到很少的模式匹配功能,我把它們都解釋如下。

模式匹配的形式一般是這樣:

(match x[模式 結果][模式 結果]... ... )

它先對 x 求值,然后根據值的結構來進行分支。每個分支由兩部分組成,左邊是一個模式,右邊是一個結果。整個 match 語句的語義是這樣:從上到下依次考慮,找到第一個可以匹配 x 的值的模式,返回它右邊的結果。左邊的模式在匹配之后,可能會綁定一些變量,這些變量可以在右邊的表達式里使用。

模式匹配是一種分支語句,它在邏輯上就是 Scheme(Lisp) 的 cond 表達式,或者 Java 的嵌套條件語句 if … else if … else …。然而跟條件語句里的“條件”不同,每條 match 語句左邊的模式,可以準確而形象地描述數據結構的形狀,而且可以在匹配的同時,對結構里的成員進行“綁定”。這樣我們可以在右邊方便的訪問結構成員,而不需要使用訪問函數(accessor)或者 foo.x 這樣的屬性語法(attribute)。而且模式可以有嵌套的子結構,所以它能夠一次性的表示復雜的數據結構。

舉個實在點的例子。我的代碼里用了這樣一個 match 表達式:

(match exp[(? number? x) x][`(,e1 ,e2)(let ([v1 (tree-sum e1)][v2 (tree-sum e2)])(+ v1 v2))])

第二行里面的 ‘(,e1 ,e2) 是一個模式(pattern),它被用來匹配 exp 的值。如果 exp 是 ‘(1 2),那么它與’(,e1 ,e2)匹配的時候,就會把 e1 綁定到 ‘1,把 e2 綁定到 ‘2。這是因為它們結構相同:

`(,e1 ,e2) '( 1 2)

說白了,模式就是一個可以含有“名字”(像 e1 和 e2)的結構,像 ‘(,e1 ,e2)。我們拿這個帶有名字的結構,去匹配實際數據,像 ‘(1 2)。當它們一一對應之后,這些名字就被綁定到數據里對應位置的值。

第一行的“模式”比較特殊,(? number? x) 表示的,其實是一個普通的條件判斷,相當于 (number? exp),如果這個條件成立,那么它把 exp 的值綁定到 x,這樣右邊就可以用 x 來指代 exp。對于無法細分的結構(比如數字,布爾值),你只能用這種方式來“匹配”。看起來有點奇怪,不過習慣了就好了。

模式匹配對解釋器和編譯器的書寫相當有用,因為程序的語法樹往往具有嵌套的結構。不用模式匹配的話,往往要寫冗長,復雜,不直觀的代碼,才能描述出期望的結構。而且由于結構的嵌套比較深,很容易漏掉邊界情況,造成錯誤。模式匹配可以直觀的描述期望的結構,避免漏掉邊界情況,而且可以方便的訪問結構成員。

由于這個原因,很多源于 ML 的語言(比如 OCaml,Haskell)都有模式匹配的功能。因為 ML(Meta-Language)原來設計的用途,就是用來實現程序語言的。Racket 的模式匹配也是部分受了 ML 的啟發,實際上它們的原理是一模一樣的。

好了,樹遍歷的練習就做到這里。然而這跟解釋器有什么關系呢?下面我們只把它改一下,就可以得到一個簡單的解釋器。

一個計算器


計算器也是一種解釋器,只不過它只能處理算術表達式。我們的下一個目標,就是寫出一個計算器。如果你給它 ‘(* (+ 1 2) (+ 3 4)),它就輸出 21。可不要小看這個計算器,稍后我們把它稍加改造,就可以得到一個更多功能的解釋器。

上面的代碼里,我們利用遞歸遍歷,對樹里的數字求和。那段代碼里,其實已經隱藏了一個解釋器的框架。你觀察一下,一個算術表達式 ‘(* (+ 1 2) (+ 3 4)),跟二叉樹 ‘((1 2) (3 4)) 有什么不同?發現沒有,這個算術表達式比起二叉樹,只不過在每個子樹結構里多出了一個操作符:一個 * 和兩個 + 。它不再是一棵二叉樹,而是一種更通用的樹結構。

這點區別,也就帶來了二叉樹求和與解釋器算法的區別。對二叉樹進行求和的時候,在每個子樹節點,我們都做加法。而對表達式進行解釋的時候,在每一個子樹節點,我們不一定進行加法。根據子樹的“操作符”不同,我們可能會選擇加,減,乘,除四種操作。

好了,下面就是這個計算器的代碼。它接受一個表達式,輸出一個數字作為結果。

#lang racket ; 聲明用 Racket 語言(define calc(lambda (exp)(match exp ; 分支匹配:表達式的兩種情況[(? number? x) x] ; 是數字,直接返回[`(,op ,e1 ,e2) ; 匹配提取操作符op和兩個操作數e1,e2(let ([v1 (calc e1)] ; 遞歸調用 calc 自己,得到 e1 的值 [v2 (calc e2)]) ; 遞歸調用 calc 自己,得到 e2 的值(match op ; 分支匹配:操作符 op 的 4 種情況 ['+ (+ v1 v2)] ; 如果是加號,輸出結果為 (+ v1 v2) ['- (- v1 v2)] ; 如果是減號,乘號,除號,相似的處理 ['* (* v1 v2)]['/ (/ v1 v2)]))])))

你可以得到如下的結果:

(calc '(+ 1 2)) ;; => 3 (calc '(* 2 3)) ;; => 6 (calc '(* (+ 1 2) (+ 3 4))) ;; => 21

跟之前的二叉樹求和代碼比較一下,你會發現它們驚人的相似,因為解釋器本來就是一個樹遍歷算法。不過你發現它們有什么不同嗎?它們的不同點在于:

算術表達式的模式里面,多出了一個“操作符”(op)葉節點:(,op ,e1 ,e2)

對子樹 e1 和 e2 分別求值之后,我們不是返回 (+ v1 v2),而是根據 op 的不同,返回不同的結果:

(match op['+ (+ v1 v2)]['- (- v1 v2)]['* (* v1 v2)]['/ (/ v1 v2)])

最后你發現,一個算術表達式的解釋器,不過是一個稍加擴展的樹遍歷算法。

R2:一個很小的程序語言


實現了一個計算器,現在讓我們過渡到一種更強大的語言。為了方便稱呼,我給它起了一個萌萌噠名字,叫 R2。R2 比起之前的計算器,只多出四個元素,它們分別是:變量,函數,綁定,調用。再加上之前介紹的算術操作,我們就得到一個很簡單的程序語言,它只有5種不同的構造。用 Scheme 的語法,這5種構造看起來就像這樣:

變量:x
函數:(lambda (x) e)
綁定:(let ([x e1]) e2)
調用:(e1 e2)
算術:(? e2 e2)
(其中,? 是一個算術操作符,可以選擇 +, -, *, / 其中之一)

一般程序語言還有很多其它構造,可是一開頭就試圖去實現所有那些,只會讓人糊涂。最好是把這少數幾個東西搞清楚,確保它們正確之后,才慢慢加入其它元素。

這些構造的語義,跟 Scheme 里面的同名構造幾乎一模一樣。如果你不清楚什么是”綁定“,那你可以把它看成是普通語言里的”變量聲明“。

需要注意的是,跟一般語言不同,我們的函數只接受一個參數。這不是一個嚴重的限制,因為在我們的語言里,函數可以被作為值傳遞,也就是所謂“first-class function”。所以你可以用嵌套的函數定義來表示有兩個以上參數的函數。

舉個例子, (lambda (x) (lambda (y) (+ x y))) 是個嵌套的函數定義,它也可以被看成是有兩個參數(x 和 y)的函數,這個函數返回 x 和 y 的和。當這樣的函數被調用的時候,需要兩層調用,就像這樣:

(((lambda (x) (lambda (y) (+ x y))) 1) 2) ;; => 3

這種做法在PL術語里面,叫做咖喱(currying)。看起來啰嗦,但這樣我們的解釋器可以很簡單。等我們理解了基本的解釋器,再實現真正的多參數函數也不遲。

另外,我們的綁定語法 (let ([x e1]) e2),比起 Scheme 的綁定也有一些局限。我們的 let 只能綁定一個變量,而 Scheme 可以綁定多個,像這樣 (let ([x 1] [y 2]) (+ x y))。這也不是一個嚴重的限制,因為我們可以啰嗦一點,用嵌套的 let 綁定:

(let ([x 1])(let ([y 2])(+ x y)))

R2 的解釋器


下面是我們今天要完成的解釋器,它可以運行一個 R2 程序。你可以先留意一下各部分的注釋。

#lang racket;;; 以下三個定義 env0, ext-env, lookup 是對環境(environment)的基本操作:;; 空環境 (define env0 '());; 擴展。對環境 env 進行擴展,把 x 映射到 v,得到一個新的環境 (define ext-env(lambda (x v env)(cons `(,x . ,v) env)));; 查找。在環境中 env 中查找 x 的值。如果沒找到就返回 #f (define lookup(lambda (x env)(let ([p (assq x env)])(cond[(not p) #f][else (cdr p)]))));; 閉包的數據結構定義,包含一個函數定義 f 和它定義時所在的環境 (struct Closure (f env));; 解釋器的遞歸定義(接受兩個參數,表達式 exp 和環境 env) ;; 共 5 種情況(變量,函數,綁定,調用,數字,算術表達式) (define interp(lambda (exp env)(match exp ; 對exp進行模式匹配[(? symbol? x) ; 變量(let ([v (lookup x env)])(cond [(not v) (error "undefined variable" x)] [else v]))] [(? number? x) x] ; 數字[`(lambda (,x) ,e) ; 函數(Closure exp env)][`(let ([,x ,e1]) ,e2) ; 綁定(let ([v1 (interp e1 env)])(interp e2 (ext-env x v1 env)))][`(,e1 ,e2) ; 調用(let ([v1 (interp e1 env)] [v2 (interp e2 env)])(match v1 [(Closure `(lambda (,x) ,e) env-save) (interp e (ext-env x v2 env-save))]))][`(,op ,e1 ,e2) ; 算術表達式(let ([v1 (interp e1 env)] [v2 (interp e2 env)])(match op ['+ (+ v1 v2)] ['- (- v1 v2)] ['* (* v1 v2)]['/ (/ v1 v2)]))])));; 解釋器的“用戶界面”函數。它把 interp 包裝起來,掩蓋第二個參數,初始值為 env0 (define r2(lambda (exp)(interp exp env0)))

這里有一些測試例子:

(r2 '(+ 1 2)) ;; => 3(r2 '(* 2 3)) ;; => 6(r2 '(* 2 (+ 3 4))) ;; => 14(r2 '(* (+ 1 2) (+ 3 4))) ;; => 21(r2 '((lambda (x) (* 2 x)) 3)) ;; => 6(r2 '(let ([x 2])(let ([f (lambda (y) (* x y))])(f 3)))) ;; => 6(r2 '(let ([x 2])(let ([f (lambda (y) (* x y))])(let ([x 4])(f 3))))) ;; => 6

在接下來的幾節,我們來仔細看看這個解釋器的各個部分。

對基本算術操作的解釋


算術操作一般都是程序里最基本的構造,它們不能再被細分為多個步驟,所以我們先來看看對算術操作的處理。以下就是 R2 解釋器處理算術的部分,它是 interp 的最后一個分支。

(match exp... ...[`(,op ,e1 ,e2)(let ([v1 (interp e1 env)] ; 遞歸調用 interp 自己,得到 e1 的值[v2 (interp e2 env)]) ; 遞歸調用 interp 自己,得到 e2 的值(match op ; 分支:處理操作符 op 的 4 種情況['+ (+ v1 v2)] ; 如果是加號,輸出結果為 (+ v1 v2)['- (- v1 v2)] ; 如果是減號,乘號,除號,相似的處理['* (* v1 v2)]['/ (/ v1 v2)]))])

你可以看到它幾乎跟剛才寫的計算器一模一樣,不過現在 interp 的調用多了一個參數 env 而已。這個 env 是所謂“環境”,我們下面很快就講。

對數字的解釋


對數字的解釋很簡單,把它們原封不動返回就可以了。

[(? number? x) x]

變量和函數


變量和函數是解釋器里最麻煩的部分,所以我們來仔細看看。

變量(variable)的產生,是數學史上的最大突破之一。因為變量可以被綁定到不同的值,從而使函數的實現成為可能。比如數學函數 f(x) = x * 2,其中 x 是一個變量,它把輸入的值傳遞到函數體 x * 2 里面。如果沒有變量,函數就不可能實現。

對變量最基本的操作,是對它的“綁定”(binding)和“取值”(evaluate)。什么是綁定呢?拿上面的函數 f(x) 作為例子。當我們調用 f(1) 時,函數體里面的 x 等于 1,所以 x * 2 的值是 2,而當我們調用 f(2) 時,函數體里面的 x 等于 2,所以 x * 2 的值是 4。這里,兩次對 f 的調用,分別對 x 進行了兩次綁定。第一次 x 被綁定到了 1,第二次被綁定到了 2。

你可以把“綁定”理解成這樣一個動作,就像當你把插頭插進電源插座的那一瞬間。插頭的插腳就是 f(x) 里面的那個 x,而 x * 2 里面的 x,則是電線的另外一端。所以當你把插頭插進插座,電流就通過這根電線到達另外一端。如果電線導電性能良好,兩頭的電壓應該相等。

環境


我們的解釋器只能一步一步的做事情。比如,當它需要求 f(1) 的值的時候,它分成兩步操作:
1.把 x 綁定到 1,這樣函數體內才能看見這個綁定。
2.進入 f 的函數體,對 x * 2 進行求值。

這就像一個人做出這兩個動作:
1.把插頭插進插座 。
2.到電線的另外一頭,測量它的電壓,并且把結果乘以 2。

在第一步和第二步之間,我們如何記住 x 的值呢?通過所謂“環境”!我們用環境記錄變量的值,并且把它們傳遞到變量的“可見區域”。變量的可見區域,用術語說叫做“作用域”(scope)。

在我們的解釋器里,用于處理環境的代碼如下:

;; 空環境 (define env0 '());; 對環境 env 進行擴展,把 x 映射到 v (define ext-env(lambda (x v env)(cons `(,x . ,v) env)));; 取值。在環境中 env 中查找 x 的值 (define lookup(lambda (x env)(let ([p (assq x env)])(cond[(not p) #f][else (cdr p)]))))

這里我們用一種最簡單的數據結構,Scheme 的 association list,來表示環境。Association list 看起來像這個樣子:((x . 1) (y . 2) (z . 5))。它是一個兩元組(pair)的鏈表,左邊的元素是 key,右邊的元素是 value。寫得直觀一點就是:

((x . 1)(y . 2)(z . 5))

查表操作就是從頭到尾搜索,如果左邊的 key 是要找的變量,就返回整個 pair。簡單吧?效率很低,但是足夠完成我們現在的任務。

ext-env 函數擴展一個環境。比如,如果原來的環境 env1 是 ((y . 2) (x . 1)) 那么 (ext-env x 3 env1),就會返回 ((x . 3) (y . 2) (x . 1))。也就是把 (x . 3) 加到 env1 的最前面去。

那我們什么時候需要擴展環境呢?當我們進行綁定的時候。綁定可能出現在函數調用時,也可能出現在 let 綁定時。我們選擇的數據結構,使得環境自然而然的具有了作用域(scope)的特性。

環境其實是一個堆棧(stack)。內層的綁定,會出現在環境的最上面,這就是在“壓棧”。這樣我們查找變量的時候,會優先找到最內層定義的變量。

舉個例子:

(let ([x 1]) ; env='()。綁定x到1。(let ([y 2]) ; env='((x . 1))。綁定y到2。(let ([x 3]) ; env='((y . 2) (x . 1))。綁定x到3。(+ x y)))) ; env='((x . 3) (y . 2) (x . 1))。查找x,得到3;查找y,得到2。 ;; => 5

這段代碼會返回5。這是因為最內層的綁定,把 (x . 3) 放到了環境的最前面,這樣查找 x 的時候,我們首先看到 (x . 3),然后就返回值3。之前放進去的 (x . 1) 仍然存在,但是我們先看到了最上面的那個(x . 3),所以它被忽略了。

這并不等于說 (x . 1) 就可以被改寫或者丟棄,因為它仍然是有用的。你只需要看一個稍微不同的例子,就知道這是怎么回事:

(let ([x 1]) ; env='()。綁定x到1。(+ (let ([x 2]) ; env='((x . 1))。綁定x到2。x) ; env='((x . 2) (x . 1))。查找x,得到2。x)) ; env='((x . 1))。查找x,得到1。 ;; => 3 ; 兩個不同的x的和,1+2等于3。

這個例子會返回3。它是第3行和第4行里面兩個 x 的和。由于第3行的 x 處于內層 let 里面,那里的環境是 ((x . 2) (x . 1)),所以查找 x 的值得到2。第4行的 x 在內層 let 外面,但是在外層 let 里面,那里的環境是 ((x . 1)),所以查找 x 的值得到1。這很符合直覺,因為 x 總是找到最內層的定義。

值得注意的是,環境被擴展以后,形成了一個新的環境,而原來的環境并沒有被改變。比如,上面的 ((y . 2) (x . 1)) 并沒有刪除或者修改,只不過是被“引用”到一個更大的列表里去了。

這樣不對已有數據進行修改(mutation)的數據結構,叫做“函數式數據結構”。函數式數據結構只生成新的數據,而不改變或者刪除老的。它可能引用老的結構,然而卻不改變老的結構。這種“不修改”(immutable)的性質,在我們的解釋器里是很重要的,因為當我們擴展一個環境,進入遞歸,返回之后,外層的代碼必須仍然可以訪問原來外層的環境。

當然,我們也可以用另外的,更高效的數據結構(比如平衡樹,串接起來的哈希表)來表示環境。如果你學究一點,甚至可以用函數來表示環境。這里為了代碼簡單,我們選擇了最笨,然而正確,容易理解的數據結構。

對變量的解釋


了解了變量,函數和環境,我們來看看解釋器對變量的“取值”操作,也就是 match 的第一種情況。

[(? symbol? x) (lookup x env)]

這就是在環境中,沿著從內向外的“作用域順序”,查找變量的值。

這里的 (? symbol? x) 是一種特殊的模式,它使用 Scheme 函數 symbol? 來判斷輸入是否是一個符號,如果是,就把它綁定到 x,然后你就可以在右邊用 x 來指稱這個輸入。

對綁定的解釋


現在我們來看看對 let 綁定的解釋:

[`(let ([,x ,e1]) ,e2) (let ([v1 (interp e1 env)]) ; 解釋右邊表達式e1,得到值v1(interp e2 (ext-env x v1 env)))] ; 把(x . v1)擴充到環境頂部,對e2求值

通過代碼里的注釋,你也許已經可以理解它在做什么。我們先對表達式 e1 求值,得到 v1。然后我們把 (x . v1) 擴充到環境里,這樣 (let ([x e1]) …) 內部都可以看到 x 的值。然后我們使用這個擴充后的環境,遞歸調用解釋器本身,對 let 的主體 e2 求值。它的返回值就是這個 let 綁定的值。

Lexical Scoping 和 Dynamic Scoping


下面我們準備談談函數定義和調用。對函數的解釋是一個微妙的問題,很容易弄錯,這是由于函數體內也許會含有外層的變量,叫做“自由變量”。所以在分析函數的代碼之前,我們來了解一下不同的“作用域”(scoping)規則。

我們舉個例子來解釋這個問題。下面這段代碼,它的值應該是多少呢?

(let ([x 2])(let ([f (lambda (y) (* x y))])(let ([x 4])(f 3))))

在這里,f 函數體 (lambda (y) (* x y)) 里的那個 x,就是一個“自由變量”。x 并不是這個函數的參數,也不是在這個函數里面定義的,所以我們必須到函數外面去找 x 的值。

我們的代碼里面,有兩個地方對 x 進行了綁定,一個等于2,一個等于4,那么 x 到底應該是指向哪一個綁定呢?這似乎無關痛癢,然而當我們調用 (f 3) 的時候,嚴重的問題來了。f 的函數體是 (* x y),我們知道 y 的值來自參數 3,可是 x 的值是多少呢?它應該是2,還是4呢?

在歷史上,這段代碼可能有兩種不同的結果,這種區別一直延續到今天。如果你在 Scheme (Racket)里面寫以上的代碼,它的結果是6。

;; Scheme (let ([x 2])(let ([f (lambda (y) (* x y))])(let ([x 4])(f 3))));; => 6

現在我們來看看,在 Emacs Lisp 里面輸入等價的代碼,得到什么結果。如果你不熟悉 Emacs Lisp 的用法,那你可以跟我做:把代碼輸入 Emacs 的那個叫 scratch 的 buffer。把光標放在代碼最后,然后按 C-x C-e,這樣 Emacs 會執行這段代碼,然后在 minibuffer 里顯示結果:

結果是12!如果你把代碼最內層的 x 綁定修成其它的值,輸出會隨之改變。

奇怪吧?Scheme 和 Emacs Lisp,到底有什么不一樣呢?實際上,這兩種看似差不多的 “Lisp 方言”,采用了兩種完全不同的作用域方式。Scheme 的方式叫做 lexical scoping (或者 static scoping),而 Emacs 的方式叫做 dynamic scoping。

那么哪一種方式更好呢?或者用哪一種都無所謂?答案是,dynamic scoping 是非常錯誤的做法。歷史的教訓告訴我們,它會帶來許許多多莫名其妙的 bug,導致 dynamic scoping 的語言幾乎完全沒法用。這是為什么呢?

原因在于,像 (let ((x 4)) …) 這樣的變量綁定,只應該影響它內部“看得見”的 x 的值。當我們看見 (let ((x 4)) (f 3)) 的時候,并沒有在 let 的內部看見任何叫“x” 的變量,所以我們“直覺”的認為,(let ((x 4)) …) 對 x 的綁定,不應該引起 (f 3) 的結果變化。

然而對于 dynamic scoping,我們的直覺卻是錯誤的。因為 f 的函數體里面有一個 x,雖然我們沒有在 (f 3) 這個調用里面看見它,然而它卻存在于 f 定義的地方。要知道,f 定義的地方也許隔著幾百行代碼,甚至在另外一個文件里面。而且調用函數的人憑什么應該知道, f 的定義里面有一個自由變量,它的名字叫做 x?所以 dynamic scoping 在設計學的角度來看,是一個反人類的設計 :)

相反,lexical scoping 卻是符合人們直覺的。雖然在 (let ((x 4)) (f 3)) 里面,我們把 x 綁定到了 4,然而 f 的函數體并不是在那里定義的,我們也沒在那里看見任何 x,所以 f 的函數體里面的 x,仍然指向我們定義它的時候看得見的那個 x,也就是最上面的那個 (let ([x 2]) …),它的值是 2。所以 (f 3) 的值應該等于 6,而不是12。

對函數的解釋


為了實現 lexical scoping,我們必須把函數做成“閉包”(closure)。閉包是一種特殊的數據結構,它由兩個元素組成:函數的定義和當前的環境。我們把閉包定義為一個 Racket 的 struct 結構:

(struct Closure (f env))

有了這個數據結構,我們對 (lambda (x) e) 的解釋就可以寫成這樣:

[`(lambda (,x) ,e)(Closure exp env)]

注意這里的 exp 就是 `(lambda (,x) ,e) 自己。

有意思的是,我們的解釋器遇到 (lambda (x) e),幾乎沒有做任何計算。它只是把這個函數包裝了一下,把它與當前的環境一起,打包放到一個數據結構(Closure)里面。這個閉包結構,記錄了我們在函數定義的位置“看得見”的那個環境。稍候在調用的時候,我們就能從這個閉包的環境里面,得到函數體內的自由變量的值。

對調用的解釋


好了,我們終于到了最后的關頭,函數調用。為了直觀,我們把函數調用的代碼拷貝如下:

[`(,e1 ,e2) (let ([v1 (interp e1 env)] ; 計算函數 e1 的值[v2 (interp e2 env)]) ; 計算參數 e2 的值(match v1[(Closure `(lambda (,x) ,e) env-save) ; 用模式匹配的方式取出閉包里的各個子結構(interp e (ext-env x v2 env-save))]))] ; 在閉包的環境env-save中把x綁定到v2,解釋函數體

函數調用都是 (e1 e2) 這樣的形式,e1 表示函數,e2 是它的參數。我們需要先分別求出函數 e1 和參數 e2 的值。

函數調用就像把一個電器的插頭插進插座,使它開始運轉。比如,當 (lambda (x) (* x 2)) 被作用于 1 時,我們把 x 綁定到 1,然后解釋它的函數體 (* x 2)。但是這里有一個問題,函數體內的自由變量應該取什么值呢?從上面閉包的討論,你已經知道了,自由變量的值,應該從閉包的環境查詢。

操作數 e1 的值 v1 是一個閉包,它里面包含一個函數定義時保存的環境 env-save。我們把這個環境 env-save 取出來,那我們就可以查詢它,得到函數體內自由變量的值。然而函數體內不僅有自由變量,還有對函數參數的使用,所以我們必須擴展這個 env-save 環境,把參數的值加進去。這就是為什么我們使用 (ext-env x v2 env-save),而不只是 env-save。

你可能會奇怪,那么解釋器的環境 env 難道這里就不用了嗎?是的。我們通過 env 來計算 e1 和 e2 的值,是因為 e1 和 e2 里面的變量,在“當前環境”(env)里面看得見。可是函數體的定義,在當前環境下是看不見的。它的代碼在別的地方,而那個地方看得見的環境,被我們存在閉包里了,它就是 env-save。所以我們把 v1 里面的閉包環境 env-save 取出來,用于計算函數體的值。

有意思的是,如果我們用 env,而不是env-save 來解釋函數體,那我們的語言就變成了 dynamic scoping。現在來實驗一下:你可以把 (interp e (ext-env x v2 env-save)) 里面的 env-save 改成 env,再試試我們之前討論過的代碼,它的輸出就會變成 12。那就是我們之前講過的,dynamic scoping 的結果。

(r2 '(let ([x 2])(let ([f (lambda (y) (* x y))])(let ([x 4])(f 3)))));; => 12

你也許發現了,如果我們的語言是 dynamic scoping,那就沒必要使用閉包了,因為我們根本不需要閉包里面保存的環境。這樣一來,dynamic scoping 的解釋器就可以寫成這樣:

(define interp(lambda (exp env)(match exp ... ...[`(lambda (,x) ,e) ; 函數:直接返回自己的表達式exp]... ...[`(,e1 ,e2) (let ([v1 (interp e1 env)] [v2 (interp e2 env)])(match v1 [`(lambda (,x) ,e) ; 調用:直接使用函數的表達式本身 (interp e (ext-env x v2 env))]))]... ... )))

注意到這個解釋器的函數有多容易實現嗎?它就是這個函數的表達式自己,原封不動。用函數的表達式本身來表示它的值,是很直接很簡單的做法,也是大部分人一開頭就會想到的。然而這樣實現出來的語言,就不知不覺地采用了 dynamic scoping。

這就是為什么很多早期的 Lisp 語言,比如 Emacs Lisp,都使用 dynamic scoping。這并不是因為它們的設計者在 dynamic scoping 和 lexical scoping 兩者之中做出了選擇,而是因為使用函數的表達式本身來作為它的值,是最直接,一般人都會首先想到的做法。

另外,在這里我們也看到環境用“函數式數據結構”表示的好處。閉包被調用時它的環境被擴展,但是這并不會影響原來的那個環境,我們得到的是一個新的環境。所以當函數調用返回之后,函數的參數綁定就自動“注銷”了。

如果你用一個非函數式的數據結構,在綁定參數時不生成新的環境,而是對已有環境進行賦值,那么這個賦值操作就會永久性的改變原來環境的內容。所以你在函數返回之后必須刪除參數的綁定。這樣不但麻煩,而且在復雜的情況下很容易出錯。

思考題:可能有些人看過 lambda calculus,這些人可能知道 (let ([x e1]) e2) 其實等價于一個函數調用:((lambda (x) e2) e1)。現在問題來了,我們在討論函數和調用的時候,很深入的討論了關于 lexical scoping 和 dynamic scoping 的差別。既然 let 綁定等價于一個函數定義和調用,為什么之前我們討論對綁定的時候,沒有討論過 lexical scoping 和 dynamic scoping 的問題,也沒有制造過閉包呢?

不足之處


現在你已經學會了如何寫出一個簡單的解釋器,它可以處理一個相當強的,具有“first-class 函數”的語言。出于教學的考慮,這個解釋器并沒有考慮實用的需求,所以它并不能作為“工業應用”。在這里,我指出它的一些不足之處。

1.缺少必要的語言構造。我們的語言里缺少好些實用語言必須的構造:遞歸,數組,賦值操作,字符串,自定義數據結構,…… 作為一篇基礎性的讀物,我不能把這些都加進來。如果你對這些有興趣,可以看看其它書籍,或者等待我的后續作品。

2.不合法代碼的檢測和報告。你也許發現了,這個解釋器的 match 表達式,全都假定了輸入都是合法的程序,它并沒有檢查不合法的情況。如果你給它一個不合法的程序,它的行為會變得詭異。一個實用的解釋器,必須加入對代碼格式進行全面檢測,報告不合法的代碼結構。

3.低效率的數據結構。在 association list 里面查找變量,是線性的復雜度。當程序有很多變量的時候就有性能問題。一個實用的解釋器,需要更高效的數據結構。這種數據結構不一定非得是函數式的。你也可以用非函數式的數據結構(比如哈希表),經過一定的改造,達到同樣的性質,卻具有更高的效率。 ? 另外,你還可以把環境轉化成一個數組。給環境里的每個變量分配一個下標(index),在這個數組里就可以找到它的值。如果你用數組表示環境,那么這個解釋器就向編譯器邁進了一步。

4.S表達式的歧義問題。為了教學需要,我們的解釋器直接使用S表達式來表達語法樹,用模式匹配來進行分支遍歷。在實際的語言里,這種方式會帶來比較大的問題。因為S表達式是一種通用的數據結構,用它表示的東西,看起來都差不多的樣子。一旦程序的語法構造多起來,直接對S表達式進行模式匹配,會造成歧義。 ?

比如 (,op ,e1 ,e2) ,你以為它只匹配二元算術操作,比如 (+ 1 2)。但它其實也可以匹配一個 let 綁定: (let ([x 1]) (* x 2))。這是因為它們頂層元素的數目是一樣的。為了消除歧義,你得小心的安排模式的順序,比如你必須把 (let ([,x ,e1]) ,e2) 的模式放在 (,op ,e1, e2) 前面。所以最好的辦法,是不要直接在S表達式上寫解釋器,而是先寫一個“parser”,這個parser把S表達式轉換成 Racket 的 struct 結構。然后解釋器再在 struct 上面進行分支匹配。這樣解釋器不用擔心歧義問題,而且會帶來效率的提升。

總結

以上是生活随笔為你收集整理的怎样写一个解释器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久精品中文字幕一区 | 精品国产麻豆免费人成网站 | 国产精品人人爽人人做我的可爱 | 无码国产激情在线观看 | 三级4级全黄60分钟 | 国产超级va在线观看视频 | 人人妻人人澡人人爽人人精品浪潮 | 野狼第一精品社区 | 国产激情艳情在线看视频 | 国内综合精品午夜久久资源 | 日韩欧美中文字幕公布 | 国产三级久久久精品麻豆三级 | 老熟妇仑乱视频一区二区 | 欧美性色19p | 久久精品99久久香蕉国产色戒 | 亚无码乱人伦一区二区 | 亚洲国产精品一区二区第一页 | 婷婷六月久久综合丁香 | 精品午夜福利在线观看 | 少妇人妻av毛片在线看 | 无码国产激情在线观看 | 亚洲中文字幕无码中字 | 少妇被粗大的猛进出69影院 | 国精产品一区二区三区 | 嫩b人妻精品一区二区三区 | 日韩 欧美 动漫 国产 制服 | 激情五月综合色婷婷一区二区 | 久久精品国产日本波多野结衣 | 日韩少妇内射免费播放 | 国产色xx群视频射精 | 中文字幕 人妻熟女 | 国产香蕉97碰碰久久人人 | 久久久国产精品无码免费专区 | 亚洲色www成人永久网址 | 久久无码人妻影院 | 亚洲区小说区激情区图片区 | 狠狠色丁香久久婷婷综合五月 | 中文字幕无线码 | 男女下面进入的视频免费午夜 | 捆绑白丝粉色jk震动捧喷白浆 | 性色av无码免费一区二区三区 | 中文字幕乱妇无码av在线 | 性做久久久久久久免费看 | 日本爽爽爽爽爽爽在线观看免 | 久久精品视频在线看15 | 正在播放东北夫妻内射 | 天堂亚洲2017在线观看 | 精品偷拍一区二区三区在线看 | 天干天干啦夜天干天2017 | 亚洲伊人久久精品影院 | 国产精品va在线观看无码 | 久久亚洲国产成人精品性色 | 日本va欧美va欧美va精品 | 最近免费中文字幕中文高清百度 | 国产乱码精品一品二品 | 狂野欧美性猛xxxx乱大交 | 国产亚洲欧美日韩亚洲中文色 | 亚洲色大成网站www | 免费看男女做好爽好硬视频 | 久久久亚洲欧洲日产国码αv | 99国产欧美久久久精品 | 高潮喷水的毛片 | 亚洲の无码国产の无码步美 | 亚洲国产欧美日韩精品一区二区三区 | 国产色视频一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 国精产品一区二区三区 | 小鲜肉自慰网站xnxx | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 人妻体内射精一区二区三四 | 国产精品资源一区二区 | 亚洲成色在线综合网站 | 婷婷色婷婷开心五月四房播播 | 中文字幕久久久久人妻 | 99久久人妻精品免费二区 | 亚洲性无码av中文字幕 | 久久亚洲日韩精品一区二区三区 | 中文字幕日产无线码一区 | 一本色道久久综合亚洲精品不卡 | 少妇久久久久久人妻无码 | 中文字幕无码日韩欧毛 | 又大又硬又爽免费视频 | 国产精品久久久久影院嫩草 | 成人综合网亚洲伊人 | 久久精品一区二区三区四区 | 国产性生大片免费观看性 | 麻豆成人精品国产免费 | 在线观看欧美一区二区三区 | 国产黑色丝袜在线播放 | 亚洲爆乳无码专区 | 蜜桃av抽搐高潮一区二区 | 国产精品鲁鲁鲁 | 久久久精品人妻久久影视 | 欧美成人家庭影院 | 日韩欧美中文字幕公布 | 国产特级毛片aaaaaa高潮流水 | 精品乱码久久久久久久 | 亚洲色无码一区二区三区 | 88国产精品欧美一区二区三区 | 兔费看少妇性l交大片免费 | 国产精品无码成人午夜电影 | 免费网站看v片在线18禁无码 | 亚洲日韩av一区二区三区中文 | 久久精品国产大片免费观看 | 国产精品亚洲综合色区韩国 | 骚片av蜜桃精品一区 | 久久久精品国产sm最大网站 | 亚洲爆乳大丰满无码专区 | 欧美精品免费观看二区 | 国产精品99爱免费视频 | 超碰97人人做人人爱少妇 | 少妇无套内谢久久久久 | 又大又硬又爽免费视频 | 国产在线aaa片一区二区99 | 网友自拍区视频精品 | 强奷人妻日本中文字幕 | 亚洲国产精品一区二区美利坚 | 女人被爽到呻吟gif动态图视看 | 亚洲色欲色欲天天天www | 伊在人天堂亚洲香蕉精品区 | 动漫av一区二区在线观看 | 性色欲情网站iwww九文堂 | 亚洲综合在线一区二区三区 | 丰满人妻一区二区三区免费视频 | 久久综合香蕉国产蜜臀av | 久久久久人妻一区精品色欧美 | 无遮挡啪啪摇乳动态图 | 亚洲色在线无码国产精品不卡 | 亚洲精品中文字幕乱码 | 久久国产36精品色熟妇 | 亚洲人成网站免费播放 | 毛片内射-百度 | 呦交小u女精品视频 | 国产午夜精品一区二区三区嫩草 | 久久 国产 尿 小便 嘘嘘 | 日韩av无码一区二区三区不卡 | 国产熟妇高潮叫床视频播放 | 日本爽爽爽爽爽爽在线观看免 | 欧美黑人性暴力猛交喷水 | 97精品国产97久久久久久免费 | 兔费看少妇性l交大片免费 | 狠狠色噜噜狠狠狠狠7777米奇 | 蜜桃无码一区二区三区 | 国产成人久久精品流白浆 | 国产在线一区二区三区四区五区 | 欧美怡红院免费全部视频 | 一本久道久久综合婷婷五月 | 亚洲无人区一区二区三区 | 亚洲日韩中文字幕在线播放 | 免费乱码人妻系列无码专区 | 99久久精品无码一区二区毛片 | √天堂资源地址中文在线 | 精品少妇爆乳无码av无码专区 | 成人一区二区免费视频 | 亚洲综合精品香蕉久久网 | 男人和女人高潮免费网站 | 国产精品资源一区二区 | 中文字幕乱妇无码av在线 | 国内精品久久久久久中文字幕 | 国产成人无码午夜视频在线观看 | 国产在线一区二区三区四区五区 | 精品一二三区久久aaa片 | 内射后入在线观看一区 | 亚洲精品成人福利网站 | 波多野结衣av在线观看 | 国产乱码精品一品二品 | 欧美成人高清在线播放 | av无码电影一区二区三区 | 久在线观看福利视频 | 国产精品久免费的黄网站 | 欧美野外疯狂做受xxxx高潮 | 蜜臀aⅴ国产精品久久久国产老师 | 国产亚洲精品久久久久久大师 | 欧美成人家庭影院 | 国产精品高潮呻吟av久久4虎 | 国产成人无码专区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产精品无码一区二区桃花视频 | 97se亚洲精品一区 | 性色欲情网站iwww九文堂 | 97夜夜澡人人爽人人喊中国片 | 久久天天躁夜夜躁狠狠 | 久久天天躁狠狠躁夜夜免费观看 | 成人无码视频免费播放 | 久久99热只有频精品8 | 国产成人精品久久亚洲高清不卡 | 无码人妻少妇伦在线电影 | 国产人妻久久精品二区三区老狼 | 人妻天天爽夜夜爽一区二区 | 国产国产精品人在线视 | 日本xxxx色视频在线观看免费 | 天下第一社区视频www日本 | 鲁大师影院在线观看 | 久在线观看福利视频 | 男女下面进入的视频免费午夜 | 久久精品无码一区二区三区 | 国产综合久久久久鬼色 | 欧美日韩视频无码一区二区三 | 狠狠色噜噜狠狠狠狠7777米奇 | 人人澡人人妻人人爽人人蜜桃 | 国产精品爱久久久久久久 | 国产区女主播在线观看 | 国产va免费精品观看 | 中文字幕日韩精品一区二区三区 | 亚洲第一无码av无码专区 | 国产一区二区三区四区五区加勒比 | 十八禁真人啪啪免费网站 | 成人欧美一区二区三区黑人免费 | 亚洲小说图区综合在线 | 国产亚洲人成a在线v网站 | 国产人妖乱国产精品人妖 | 久久亚洲中文字幕精品一区 | 久久久精品成人免费观看 | 美女极度色诱视频国产 | 伊人久久大香线蕉亚洲 | 日产精品99久久久久久 | 国产 精品 自在自线 | 色欲久久久天天天综合网精品 | 国产又爽又黄又刺激的视频 | 欧美肥老太牲交大战 | 俺去俺来也www色官网 | 日本乱人伦片中文三区 | 无码人妻精品一区二区三区下载 | 欧美日韩精品 | 国产精品igao视频网 | 丝袜 中出 制服 人妻 美腿 | 国产精品高潮呻吟av久久 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 鲁鲁鲁爽爽爽在线视频观看 | 真人与拘做受免费视频一 | 国内丰满熟女出轨videos | 日韩 欧美 动漫 国产 制服 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 55夜色66夜色国产精品视频 | 国产一区二区三区四区五区加勒比 | 黄网在线观看免费网站 | 久久精品99久久香蕉国产色戒 | 欧美日本精品一区二区三区 | 精品无码一区二区三区的天堂 | 漂亮人妻洗澡被公强 日日躁 | 午夜熟女插插xx免费视频 | 国产亚洲美女精品久久久2020 | 少妇性l交大片 | 午夜男女很黄的视频 | 国产一区二区不卡老阿姨 | 国产亚洲tv在线观看 | 东京热一精品无码av | 人妻互换免费中文字幕 | 亚洲精品国偷拍自产在线麻豆 | 国产69精品久久久久app下载 | 中文字幕+乱码+中文字幕一区 | 波多野结衣aⅴ在线 | 国产精品毛多多水多 | 熟女少妇人妻中文字幕 | 欧美刺激性大交 | 国产精品人妻一区二区三区四 | 亚洲一区二区观看播放 | 日本熟妇乱子伦xxxx | 日本成熟视频免费视频 | 国产免费无码一区二区视频 | 丰满少妇高潮惨叫视频 | 无码人妻丰满熟妇区毛片18 | 日本熟妇乱子伦xxxx | 三上悠亚人妻中文字幕在线 | 国产精品资源一区二区 | yw尤物av无码国产在线观看 | 国产乱人伦偷精品视频 | 亚洲の无码国产の无码影院 | 久久综合给久久狠狠97色 | 麻豆国产人妻欲求不满 | 99国产欧美久久久精品 | 国产成人午夜福利在线播放 | 国产成人精品三级麻豆 | 久久国语露脸国产精品电影 | 成人精品天堂一区二区三区 | 美女黄网站人色视频免费国产 | 亚洲精品一区二区三区婷婷月 | 露脸叫床粗话东北少妇 | 在线 国产 欧美 亚洲 天堂 | 性开放的女人aaa片 | 超碰97人人做人人爱少妇 | 久久精品视频在线看15 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲精品国产第一综合99久久 | yw尤物av无码国产在线观看 | 日韩人妻少妇一区二区三区 | 欧美精品免费观看二区 | 亚洲午夜久久久影院 | 欧美自拍另类欧美综合图片区 | 色噜噜亚洲男人的天堂 | 国产在热线精品视频 | 久久久久免费精品国产 | 亚洲小说春色综合另类 | 中文字幕人妻无码一夲道 | 精品人妻人人做人人爽夜夜爽 | 国产精品无码一区二区三区不卡 | 国产精品国产自线拍免费软件 | 亚洲小说图区综合在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产三级精品三级男人的天堂 | 学生妹亚洲一区二区 | www国产精品内射老师 | 扒开双腿吃奶呻吟做受视频 | 狠狠躁日日躁夜夜躁2020 | aⅴ亚洲 日韩 色 图网站 播放 | 无码人妻出轨黑人中文字幕 | 国产亚洲视频中文字幕97精品 | 久久99国产综合精品 | 精品国产一区av天美传媒 | 久久精品人人做人人综合试看 | 久久午夜无码鲁丝片午夜精品 | 成人精品视频一区二区 | 天堂а√在线地址中文在线 | 无码精品国产va在线观看dvd | 亚洲精品国产精品乱码不卡 | 无码人妻精品一区二区三区不卡 | 无码人妻丰满熟妇区五十路百度 | 国产成人午夜福利在线播放 | 亚洲欧美综合区丁香五月小说 | 国产无遮挡又黄又爽免费视频 | 中文毛片无遮挡高清免费 | 亚洲精品久久久久久一区二区 | 麻豆果冻传媒2021精品传媒一区下载 | 日本饥渴人妻欲求不满 | 久久婷婷五月综合色国产香蕉 | 人妻aⅴ无码一区二区三区 | 国产69精品久久久久app下载 | 亚洲中文字幕乱码av波多ji | 国产亚洲精品久久久久久久 | 亚洲人亚洲人成电影网站色 | 在线欧美精品一区二区三区 | 99久久精品日本一区二区免费 | 亚洲最大成人网站 | 水蜜桃亚洲一二三四在线 | 精品无码国产一区二区三区av | 国产午夜亚洲精品不卡 | 在线观看免费人成视频 | 久久婷婷五月综合色国产香蕉 | 亚洲国精产品一二二线 | 老子影院午夜伦不卡 | 福利一区二区三区视频在线观看 | 999久久久国产精品消防器材 | 麻豆蜜桃av蜜臀av色欲av | 亚洲自偷自拍另类第1页 | 精品无码国产自产拍在线观看蜜 | 高清国产亚洲精品自在久久 | 久久精品人人做人人综合试看 | 久久久精品成人免费观看 | 国产亚洲tv在线观看 | 亚洲国产精品毛片av不卡在线 | www一区二区www免费 | 国产高清av在线播放 | 亲嘴扒胸摸屁股激烈网站 | 国内少妇偷人精品视频 | 亚洲日本va中文字幕 | 亚洲 a v无 码免 费 成 人 a v | 女高中生第一次破苞av | 欧美人与物videos另类 | 国产精品嫩草久久久久 | 亚洲啪av永久无码精品放毛片 | 丰满少妇弄高潮了www | a在线亚洲男人的天堂 | 永久免费精品精品永久-夜色 | 无码人妻少妇伦在线电影 | 无码播放一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 国产精品手机免费 | 久久精品中文字幕大胸 | 国产又粗又硬又大爽黄老大爷视 | 亲嘴扒胸摸屁股激烈网站 | 久久久国产一区二区三区 | 国产一精品一av一免费 | 小泽玛莉亚一区二区视频在线 | 亚洲国产精品一区二区第一页 | 四虎永久在线精品免费网址 | 久久97精品久久久久久久不卡 | 999久久久国产精品消防器材 | 在线欧美精品一区二区三区 | 国产网红无码精品视频 | 少妇被黑人到高潮喷出白浆 | 国产精品久久久久7777 | av无码久久久久不卡免费网站 | 亚洲欧美中文字幕5发布 | 欧美性生交活xxxxxdddd | 天海翼激烈高潮到腰振不止 | 午夜福利一区二区三区在线观看 | 男人和女人高潮免费网站 | 色综合久久88色综合天天 | 丰满少妇高潮惨叫视频 | 亚洲日韩中文字幕在线播放 | 久久久久亚洲精品中文字幕 | 国产激情艳情在线看视频 | 老头边吃奶边弄进去呻吟 | 99国产精品白浆在线观看免费 | 精品久久8x国产免费观看 | 久久www免费人成人片 | 婷婷六月久久综合丁香 | 无码av岛国片在线播放 | 无码帝国www无码专区色综合 | 欧美刺激性大交 | 国产真实乱对白精彩久久 | 欧美午夜特黄aaaaaa片 | 色老头在线一区二区三区 | 国产xxx69麻豆国语对白 | 亚洲s码欧洲m码国产av | 成年美女黄网站色大免费全看 | 久久精品国产一区二区三区肥胖 | 亚洲国精产品一二二线 | 麻豆md0077饥渴少妇 | aa片在线观看视频在线播放 | 亚洲乱码国产乱码精品精 | 国产精品久久久 | 亚洲日韩中文字幕在线播放 | 少妇愉情理伦片bd | 熟妇人妻无乱码中文字幕 | 精品偷自拍另类在线观看 | 日本一本二本三区免费 | 最近的中文字幕在线看视频 | www一区二区www免费 | 蜜桃av抽搐高潮一区二区 | 九一九色国产 | 国产深夜福利视频在线 | 男人和女人高潮免费网站 | 鲁鲁鲁爽爽爽在线视频观看 | 四虎国产精品免费久久 | 精品 日韩 国产 欧美 视频 | 国产成人亚洲综合无码 | 97精品国产97久久久久久免费 | 国产麻豆精品精东影业av网站 | 奇米影视7777久久精品人人爽 | 国产精品对白交换视频 | 日本丰满护士爆乳xxxx | 久久精品中文闷骚内射 | 亚拍精品一区二区三区探花 | 国产亚洲欧美日韩亚洲中文色 | 亚洲s码欧洲m码国产av | 老熟女重囗味hdxx69 | 中文精品久久久久人妻不卡 | 精品久久久久久人妻无码中文字幕 | 欧美性猛交内射兽交老熟妇 | av无码不卡在线观看免费 | 熟妇人妻无乱码中文字幕 | 国产午夜视频在线观看 | 亚洲色偷偷偷综合网 | 99久久久国产精品无码免费 | 亚洲综合伊人久久大杳蕉 | 亚洲色欲久久久综合网东京热 | 国产精品对白交换视频 | 亚洲区欧美区综合区自拍区 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲色在线无码国产精品不卡 | 成在人线av无码免费 | 欧美性黑人极品hd | 国语精品一区二区三区 | 亚洲人成影院在线无码按摩店 | 人妻中文无码久热丝袜 | 麻豆精品国产精华精华液好用吗 | 亚洲一区二区三区香蕉 | 国产小呦泬泬99精品 | 日日干夜夜干 | 国产成人精品必看 | 日韩欧美中文字幕在线三区 | 兔费看少妇性l交大片免费 | 鲁鲁鲁爽爽爽在线视频观看 | 无码精品人妻一区二区三区av | 色欲av亚洲一区无码少妇 | 亚洲欧美色中文字幕在线 | 国产精品亚洲一区二区三区喷水 | 精品偷拍一区二区三区在线看 | 国内揄拍国内精品人妻 | 好爽又高潮了毛片免费下载 | 精品国产青草久久久久福利 | 奇米影视7777久久精品人人爽 | 亚洲区欧美区综合区自拍区 | 国产精品久久久久久久9999 | 久久久久久国产精品无码下载 | 中文字幕av伊人av无码av | 中文毛片无遮挡高清免费 | 久久国产精品二国产精品 | 久久天天躁夜夜躁狠狠 | 免费看男女做好爽好硬视频 | 日本www一道久久久免费榴莲 | 动漫av网站免费观看 | 噜噜噜亚洲色成人网站 | 欧洲精品码一区二区三区免费看 | 久久综合给久久狠狠97色 | 色诱久久久久综合网ywww | 乱人伦人妻中文字幕无码久久网 | 亚洲成av人影院在线观看 | 一本精品99久久精品77 | 久久久精品456亚洲影院 | 中文字幕av伊人av无码av | 亚洲经典千人经典日产 | 在线欧美精品一区二区三区 | 日本在线高清不卡免费播放 | av在线亚洲欧洲日产一区二区 | 日韩人妻无码一区二区三区久久99 | 国产精品无套呻吟在线 | 噜噜噜亚洲色成人网站 | 成人免费视频一区二区 | 老熟女乱子伦 | 中文字幕亚洲情99在线 | 中国女人内谢69xxxxxa片 | 无码播放一区二区三区 | 日韩精品乱码av一区二区 | 亚洲精品国产a久久久久久 | 一本久道高清无码视频 | 国产无套内射久久久国产 | 国产精品高潮呻吟av久久4虎 | 欧美放荡的少妇 | 国产偷抇久久精品a片69 | 国产黄在线观看免费观看不卡 | 小泽玛莉亚一区二区视频在线 | 色老头在线一区二区三区 | 国产人妻人伦精品 | 日本熟妇乱子伦xxxx | 亚洲精品成a人在线观看 | 人人超人人超碰超国产 | 亚洲日韩精品欧美一区二区 | 98国产精品综合一区二区三区 | 欧美午夜特黄aaaaaa片 | 欧美刺激性大交 | 中文字幕乱码人妻无码久久 | 99久久久国产精品无码免费 | 亚洲成a人片在线观看无码 | 高中生自慰www网站 | 欧美zoozzooz性欧美 | 国产一区二区不卡老阿姨 | 国内精品九九久久久精品 | 欧美 日韩 亚洲 在线 | 欧美日韩综合一区二区三区 | 日韩少妇白浆无码系列 | 国产精品亚洲综合色区韩国 | 中文字幕av无码一区二区三区电影 | 国产成人午夜福利在线播放 | 无码人妻精品一区二区三区下载 | 亚洲人成无码网www | 久久精品中文字幕大胸 | 亚洲七七久久桃花影院 | 亚洲男人av香蕉爽爽爽爽 | 漂亮人妻洗澡被公强 日日躁 | 男人的天堂2018无码 | 乱码av麻豆丝袜熟女系列 | 国产精品久免费的黄网站 | 偷窥日本少妇撒尿chinese | 亚洲乱码日产精品bd | 人妻少妇精品无码专区动漫 | 国产肉丝袜在线观看 | 色 综合 欧美 亚洲 国产 | 亚洲精品国偷拍自产在线观看蜜桃 | 无遮挡国产高潮视频免费观看 | 久久国产精品精品国产色婷婷 | 日韩av无码一区二区三区 | 永久免费观看国产裸体美女 | 精品国产麻豆免费人成网站 | 乱码午夜-极国产极内射 | 一区二区三区乱码在线 | 欧洲 | yw尤物av无码国产在线观看 | 少妇人妻偷人精品无码视频 | 波多野结衣乳巨码无在线观看 | 国产精品无码一区二区三区不卡 | 野外少妇愉情中文字幕 | 亚洲一区二区三区偷拍女厕 | 国产精品视频免费播放 | 亚洲中文字幕无码中文字在线 | 国产香蕉97碰碰久久人人 | 99久久久无码国产aaa精品 | 久久午夜无码鲁丝片秋霞 | 四虎国产精品一区二区 | 国产精品久久久久久无码 | 狠狠色噜噜狠狠狠狠7777米奇 | 欧美野外疯狂做受xxxx高潮 | 纯爱无遮挡h肉动漫在线播放 | 图片小说视频一区二区 | 日产国产精品亚洲系列 | 国产精品亚洲综合色区韩国 | 国产福利视频一区二区 | 亚洲精品久久久久中文第一幕 | 日本乱偷人妻中文字幕 | 久久久国产一区二区三区 | 小泽玛莉亚一区二区视频在线 | 亚洲人亚洲人成电影网站色 | 亚洲精品中文字幕久久久久 | 奇米影视888欧美在线观看 | 中文字幕人妻无码一区二区三区 | 波多野结衣高清一区二区三区 | 成 人影片 免费观看 | 色综合久久久久综合一本到桃花网 | 国产99久久精品一区二区 | 久久人人爽人人爽人人片ⅴ | 久久无码人妻影院 | 亚洲自偷自拍另类第1页 | 亚洲精品一区二区三区婷婷月 | 性欧美大战久久久久久久 | 日产国产精品亚洲系列 | 欧美 丝袜 自拍 制服 另类 | 人妻有码中文字幕在线 | 欧美 亚洲 国产 另类 | 精品国产国产综合精品 | 一本久道久久综合婷婷五月 | 亚洲国产一区二区三区在线观看 | 好屌草这里只有精品 | 日韩av无码中文无码电影 | 日韩精品无码一区二区中文字幕 | 国产精品免费大片 | 国産精品久久久久久久 | 成人无码视频在线观看网站 | 国产卡一卡二卡三 | 亚洲s色大片在线观看 | 玩弄中年熟妇正在播放 | 国产电影无码午夜在线播放 | 国产乱人无码伦av在线a | 精品一区二区不卡无码av | 国産精品久久久久久久 | 国产香蕉尹人视频在线 | 无码av最新清无码专区吞精 | 亚洲大尺度无码无码专区 | 亚洲呦女专区 | 精品一二三区久久aaa片 | 欧美老妇与禽交 | 2019nv天堂香蕉在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 狂野欧美性猛交免费视频 | 国产 浪潮av性色四虎 | 强开小婷嫩苞又嫩又紧视频 | 国产精品久久久 | 欧美日韩综合一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 亚洲国产精品美女久久久久 | 无码福利日韩神码福利片 | 天堂а√在线中文在线 | 国产激情无码一区二区app | 377p欧洲日本亚洲大胆 | 天堂亚洲2017在线观看 | 色狠狠av一区二区三区 | 亚洲小说图区综合在线 | 国产午夜福利亚洲第一 | 精品乱码久久久久久久 | 奇米影视7777久久精品人人爽 | 无码播放一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 装睡被陌生人摸出水好爽 | 国产精品久久久午夜夜伦鲁鲁 | 人人爽人人爽人人片av亚洲 | 麻豆国产人妻欲求不满 | 色综合视频一区二区三区 | 亚洲日韩精品欧美一区二区 | 六十路熟妇乱子伦 | 嫩b人妻精品一区二区三区 | 国产区女主播在线观看 | 国产在线一区二区三区四区五区 | 国产电影无码午夜在线播放 | 伊人久久大香线蕉av一区二区 | 波多野结衣aⅴ在线 | 国产福利视频一区二区 | 精品成在人线av无码免费看 | 精品久久8x国产免费观看 | 亚洲一区二区三区香蕉 | 亚洲va欧美va天堂v国产综合 | 亚洲欧洲中文日韩av乱码 | 伊人久久大香线蕉亚洲 | 国产成人无码av在线影院 | 噜噜噜亚洲色成人网站 | 乌克兰少妇性做爰 | 在线亚洲高清揄拍自拍一品区 | 久久精品国产99精品亚洲 | 国产精品怡红院永久免费 | 国产人成高清在线视频99最全资源 | 欧美激情一区二区三区成人 | 青青草原综合久久大伊人精品 | 76少妇精品导航 | 亚洲码国产精品高潮在线 | 欧美黑人性暴力猛交喷水 | 日本精品人妻无码免费大全 | 精品国偷自产在线视频 | 搡女人真爽免费视频大全 | 国产av无码专区亚洲a∨毛片 | 国产成人无码午夜视频在线观看 | 麻豆md0077饥渴少妇 | 日韩精品乱码av一区二区 | 露脸叫床粗话东北少妇 | 亚洲a无码综合a国产av中文 | 欧美日韩亚洲国产精品 | 性做久久久久久久免费看 | 欧美性猛交内射兽交老熟妇 | 国产精品成人av在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 亚洲熟熟妇xxxx | 久久人人爽人人人人片 | 亚洲娇小与黑人巨大交 | 欧美猛少妇色xxxxx | 美女黄网站人色视频免费国产 | 国产凸凹视频一区二区 | 乱码av麻豆丝袜熟女系列 | 色婷婷av一区二区三区之红樱桃 | 丰满人妻一区二区三区免费视频 | 乱码av麻豆丝袜熟女系列 | 久久久久99精品成人片 | 又色又爽又黄的美女裸体网站 | 乱人伦人妻中文字幕无码 | 国产婷婷色一区二区三区在线 | 日本免费一区二区三区最新 | 久久亚洲中文字幕精品一区 | 国产suv精品一区二区五 | 国产免费无码一区二区视频 | 久久久久久亚洲精品a片成人 | 亚洲欧洲日本无在线码 | 又紧又大又爽精品一区二区 | 亚洲国产欧美在线成人 | 亚洲s码欧洲m码国产av | 午夜精品久久久久久久 | 野外少妇愉情中文字幕 | 女人和拘做爰正片视频 | 国产精品国产自线拍免费软件 | v一区无码内射国产 | 国产av剧情md精品麻豆 | 亚洲人成网站在线播放942 | 国产精品久久久久久亚洲毛片 | 国内揄拍国内精品人妻 | 亚洲精品午夜国产va久久成人 | 亚洲熟悉妇女xxx妇女av | 东京热无码av男人的天堂 | 爆乳一区二区三区无码 | 中文字幕无码日韩欧毛 | 国产亚洲精品久久久久久 | 特大黑人娇小亚洲女 | 无码国内精品人妻少妇 | 国产免费久久久久久无码 | 国产高清不卡无码视频 | 色窝窝无码一区二区三区色欲 | 国内综合精品午夜久久资源 | 扒开双腿吃奶呻吟做受视频 | 女人被男人躁得好爽免费视频 | 乱中年女人伦av三区 | 国产又爽又猛又粗的视频a片 | 国产精品亚洲五月天高清 | 男女下面进入的视频免费午夜 | 精品成在人线av无码免费看 | 国产精品亚洲一区二区三区喷水 | 永久免费观看国产裸体美女 | 亚洲の无码国产の无码步美 | 国产成人一区二区三区在线观看 | 国产后入清纯学生妹 | 欧美成人免费全部网站 | 久久精品人人做人人综合试看 | 理论片87福利理论电影 | 一本色道久久综合狠狠躁 | 好爽又高潮了毛片免费下载 | 领导边摸边吃奶边做爽在线观看 | 欧美兽交xxxx×视频 | 国内精品一区二区三区不卡 | 中文字幕色婷婷在线视频 | 国产suv精品一区二区五 | 给我免费的视频在线观看 | 国精产品一区二区三区 | 国产精品久免费的黄网站 | 在线观看国产午夜福利片 | 人人爽人人爽人人片av亚洲 | 国产精品va在线播放 | 天堂а√在线中文在线 | 乱码av麻豆丝袜熟女系列 | 丰满人妻翻云覆雨呻吟视频 | av无码电影一区二区三区 | 丰满少妇熟乱xxxxx视频 | 国产成人精品一区二区在线小狼 | 亚洲精品成a人在线观看 | 成人aaa片一区国产精品 | 人人妻人人澡人人爽人人精品 | 久久久久久久久蜜桃 | 人妻少妇精品无码专区动漫 | 麻豆人妻少妇精品无码专区 | 久久久婷婷五月亚洲97号色 | 无码av最新清无码专区吞精 | 日韩亚洲欧美中文高清在线 | 丰满少妇弄高潮了www | 激情内射亚州一区二区三区爱妻 | 伊在人天堂亚洲香蕉精品区 | 亚洲成a人片在线观看日本 | 久久国产自偷自偷免费一区调 | 漂亮人妻洗澡被公强 日日躁 | 国产精品内射视频免费 | 无码av中文字幕免费放 | 又大又硬又黄的免费视频 | 久精品国产欧美亚洲色aⅴ大片 | 欧美色就是色 | 精品人妻人人做人人爽夜夜爽 | www一区二区www免费 | 人人澡人摸人人添 | 野外少妇愉情中文字幕 | 成 人 网 站国产免费观看 | 色综合久久久无码网中文 | 东京无码熟妇人妻av在线网址 | 性做久久久久久久免费看 | 免费无码肉片在线观看 | 内射巨臀欧美在线视频 | 日韩欧美群交p片內射中文 | 老熟女乱子伦 | 亚洲欧美色中文字幕在线 | 噜噜噜亚洲色成人网站 | 国产成人av免费观看 | 久激情内射婷内射蜜桃人妖 | 纯爱无遮挡h肉动漫在线播放 | yw尤物av无码国产在线观看 | 国产激情艳情在线看视频 | 国产欧美精品一区二区三区 | 青青青爽视频在线观看 | 台湾无码一区二区 | 天天做天天爱天天爽综合网 | 亚洲大尺度无码无码专区 | 久久久精品成人免费观看 | 日本www一道久久久免费榴莲 | 久久综合久久自在自线精品自 | 人妻少妇精品视频专区 | 99麻豆久久久国产精品免费 | 青草视频在线播放 | 国产熟妇另类久久久久 | 久久午夜夜伦鲁鲁片无码免费 | 牛和人交xxxx欧美 | 国产成人无码专区 | 好男人www社区 | 久久国内精品自在自线 | 国产莉萝无码av在线播放 | 亚洲一区二区三区 | 国产精品二区一区二区aⅴ污介绍 | 日本熟妇大屁股人妻 | 久久精品人妻少妇一区二区三区 | 国语精品一区二区三区 | 色偷偷人人澡人人爽人人模 | 在线播放免费人成毛片乱码 | 国产成人综合在线女婷五月99播放 | 中文字幕乱妇无码av在线 | 国产舌乚八伦偷品w中 | 中文字幕av伊人av无码av | 欧美自拍另类欧美综合图片区 | 伊人久久大香线蕉av一区二区 | 欧洲欧美人成视频在线 | 最近的中文字幕在线看视频 | 亚洲爆乳无码专区 | 狂野欧美性猛xxxx乱大交 | 无码人妻丰满熟妇区五十路百度 | 1000部夫妻午夜免费 | 精品国产一区二区三区av 性色 | 少妇人妻偷人精品无码视频 | 性色欲网站人妻丰满中文久久不卡 | 国产成人精品久久亚洲高清不卡 | 久久99热只有频精品8 | 国产农村妇女高潮大叫 | 图片区 小说区 区 亚洲五月 | 亚洲乱码国产乱码精品精 | 国产精品亚洲lv粉色 | 97久久国产亚洲精品超碰热 | 国产成人无码区免费内射一片色欲 | 未满成年国产在线观看 | 日韩欧美中文字幕在线三区 | 久久精品人妻少妇一区二区三区 | 国产香蕉97碰碰久久人人 | 欧美日韩在线亚洲综合国产人 | 丰满少妇女裸体bbw | 欧美猛少妇色xxxxx | 中文毛片无遮挡高清免费 | 青青草原综合久久大伊人精品 | 亚洲欧美日韩综合久久久 | aⅴ亚洲 日韩 色 图网站 播放 | 国产成人午夜福利在线播放 | 一个人看的www免费视频在线观看 | 99国产欧美久久久精品 | 粗大的内捧猛烈进出视频 | 国产成人无码午夜视频在线观看 | 国产av一区二区三区最新精品 | 澳门永久av免费网站 | 在线 国产 欧美 亚洲 天堂 | 亚洲国产av精品一区二区蜜芽 | 国产人妻人伦精品1国产丝袜 | 国产精品无码一区二区三区不卡 | 久久精品中文字幕大胸 | 日韩视频 中文字幕 视频一区 | 兔费看少妇性l交大片免费 | 婷婷丁香五月天综合东京热 | 国精产品一区二区三区 | 熟妇人妻激情偷爽文 | 理论片87福利理论电影 | 色欲久久久天天天综合网精品 | 中文久久乱码一区二区 | 亚洲国产精品一区二区美利坚 | 97久久精品无码一区二区 | 欧美大屁股xxxxhd黑色 | 国产疯狂伦交大片 | 亚洲精品一区国产 | 波多野42部无码喷潮在线 | 久久久国产一区二区三区 | 丰满少妇高潮惨叫视频 | 久久久久亚洲精品男人的天堂 | 久久亚洲精品中文字幕无男同 | 色爱情人网站 | 中文字幕无码热在线视频 | 任你躁在线精品免费 | 黑人巨大精品欧美一区二区 | 国产性生交xxxxx无码 | 红桃av一区二区三区在线无码av | 亚洲综合在线一区二区三区 | 国产无套内射久久久国产 | 激情内射日本一区二区三区 | 扒开双腿疯狂进出爽爽爽视频 | 日韩精品无码一本二本三本色 | 亚洲成色在线综合网站 | 亚洲人成影院在线无码按摩店 | 日本护士毛茸茸高潮 | 小鲜肉自慰网站xnxx | 粉嫩少妇内射浓精videos | 国内精品久久久久久中文字幕 | 欧美性生交活xxxxxdddd | 久9re热视频这里只有精品 | 亚洲中文无码av永久不收费 | 少妇人妻偷人精品无码视频 | 无码中文字幕色专区 | www一区二区www免费 | 亚洲国产高清在线观看视频 | 老子影院午夜精品无码 | 少妇被粗大的猛进出69影院 | 婷婷丁香六月激情综合啪 | 精品国产成人一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 亚洲va欧美va天堂v国产综合 | 日本成熟视频免费视频 | 日本爽爽爽爽爽爽在线观看免 | 午夜福利不卡在线视频 | 少妇人妻av毛片在线看 | 亚洲国产日韩a在线播放 | 国产两女互慰高潮视频在线观看 | 国产真人无遮挡作爱免费视频 | 日韩欧美中文字幕在线三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 欧美丰满熟妇xxxx性ppx人交 | 无码吃奶揉捏奶头高潮视频 | 撕开奶罩揉吮奶头视频 | 国产精品免费大片 | 人人澡人人妻人人爽人人蜜桃 | 女人被男人躁得好爽免费视频 | 国产日产欧产精品精品app | 亚洲一区二区三区国产精华液 | 精品一区二区三区波多野结衣 | 国产精品.xx视频.xxtv | 国产午夜福利亚洲第一 | 久久国产自偷自偷免费一区调 | 性欧美牲交在线视频 | 欧美一区二区三区视频在线观看 | 久久国产精品二国产精品 | 国产午夜无码视频在线观看 | 国产绳艺sm调教室论坛 | 粗大的内捧猛烈进出视频 | 成熟人妻av无码专区 | 亚洲成av人片在线观看无码不卡 | 亚洲精品www久久久 | 精品乱子伦一区二区三区 | 亚洲熟妇色xxxxx亚洲 | 婷婷丁香五月天综合东京热 | 亚洲日韩一区二区三区 | 亚洲欧美中文字幕5发布 | 黑人大群体交免费视频 | 亚洲日韩一区二区 | 欧美人与善在线com | 黑人粗大猛烈进出高潮视频 | 综合激情五月综合激情五月激情1 | 精品亚洲韩国一区二区三区 | 亚洲热妇无码av在线播放 | 中文字幕无码av波多野吉衣 | 日本一区二区更新不卡 | 欧美性黑人极品hd | 国产成人久久精品流白浆 | 精品无码国产一区二区三区av | 无码一区二区三区在线观看 | 超碰97人人做人人爱少妇 | 亚洲精品国产a久久久久久 | 精品一区二区三区无码免费视频 | 国内精品九九久久久精品 | 色诱久久久久综合网ywww | 无码国产乱人伦偷精品视频 | 国产 精品 自在自线 | 性啪啪chinese东北女人 | 国产香蕉尹人综合在线观看 | 亚洲精品一区二区三区在线 | 亚洲精品国产精品乱码视色 | 亚洲中文字幕在线无码一区二区 | 狠狠综合久久久久综合网 | 成 人 网 站国产免费观看 | 水蜜桃色314在线观看 | 亚洲日本va午夜在线电影 | 7777奇米四色成人眼影 | 亚洲乱码国产乱码精品精 | 亚洲国产一区二区三区在线观看 | 18禁黄网站男男禁片免费观看 | 久久久精品成人免费观看 | 中文字幕av伊人av无码av | 欧洲精品码一区二区三区免费看 | 欧美人与牲动交xxxx | 欧美真人作爱免费视频 | 啦啦啦www在线观看免费视频 | 亚洲乱码中文字幕在线 | 国产精品办公室沙发 | 无码人妻少妇伦在线电影 | 小泽玛莉亚一区二区视频在线 | yw尤物av无码国产在线观看 | 欧美一区二区三区视频在线观看 | 欧美日韩久久久精品a片 | 国内精品人妻无码久久久影院蜜桃 | 国产又爽又黄又刺激的视频 | 无码午夜成人1000部免费视频 | 强辱丰满人妻hd中文字幕 | 日韩少妇内射免费播放 | 午夜理论片yy44880影院 | 少妇性荡欲午夜性开放视频剧场 | 狂野欧美性猛xxxx乱大交 | 精品久久综合1区2区3区激情 | 少妇愉情理伦片bd | 国产99久久精品一区二区 | 色欲人妻aaaaaaa无码 | 亚洲七七久久桃花影院 | 牛和人交xxxx欧美 | 人妻有码中文字幕在线 | 中文字幕中文有码在线 | 免费无码的av片在线观看 | 伊人久久大香线蕉av一区二区 | 少妇无码吹潮 | 久久久久久国产精品无码下载 | 国产精品久久久久7777 | 欧美一区二区三区视频在线观看 | 国产精品国产自线拍免费软件 | 国产精品国产自线拍免费软件 | 成人免费视频在线观看 | 精品欧洲av无码一区二区三区 | 精品人妻中文字幕有码在线 | 女人和拘做爰正片视频 | 国产在线精品一区二区高清不卡 | 乱中年女人伦av三区 | 亚洲人成无码网www | 亚洲综合无码一区二区三区 | 国产在线aaa片一区二区99 | 国产成人综合美国十次 | 无码av免费一区二区三区试看 | 美女扒开屁股让男人桶 | 国产在线精品一区二区三区直播 | 99久久精品无码一区二区毛片 | 乱码av麻豆丝袜熟女系列 | 久久久久成人片免费观看蜜芽 | √8天堂资源地址中文在线 | 国产精品亚洲一区二区三区喷水 | 99er热精品视频 | 18黄暴禁片在线观看 | 色偷偷人人澡人人爽人人模 | 午夜精品一区二区三区在线观看 | 亚洲中文字幕在线无码一区二区 | 领导边摸边吃奶边做爽在线观看 | 国产午夜亚洲精品不卡 | 国产人妻人伦精品1国产丝袜 | 高清国产亚洲精品自在久久 | 国产综合色产在线精品 | 久久久久免费看成人影片 | 亚洲综合色区中文字幕 | 国产激情无码一区二区 | 亚洲高清偷拍一区二区三区 | 网友自拍区视频精品 | 亚洲精品中文字幕久久久久 | 51国偷自产一区二区三区 | 又大又硬又爽免费视频 | 久久久精品欧美一区二区免费 | √天堂中文官网8在线 | 午夜理论片yy44880影院 | 中文字幕精品av一区二区五区 | 999久久久国产精品消防器材 | 亚洲午夜久久久影院 | 午夜精品一区二区三区在线观看 | 国产精品久久久久7777 | 亚洲日本va中文字幕 | 亚洲狠狠色丁香婷婷综合 | 波多野结衣高清一区二区三区 | 国产成人无码av在线影院 | 亚洲天堂2017无码 | 乌克兰少妇性做爰 | 国产在热线精品视频 | 亚洲热妇无码av在线播放 | 无遮挡国产高潮视频免费观看 | 国产suv精品一区二区五 | 人人妻人人澡人人爽欧美一区 | 欧美第一黄网免费网站 | 日本成熟视频免费视频 | 国产婷婷色一区二区三区在线 | 精品久久久久久人妻无码中文字幕 | 少妇邻居内射在线 | 国产精品亚洲专区无码不卡 | 国产小呦泬泬99精品 | 色综合久久88色综合天天 | 欧美亚洲国产一区二区三区 | 国产午夜手机精彩视频 | 国产亚洲美女精品久久久2020 | 中文字幕无码人妻少妇免费 | 中文久久乱码一区二区 | 午夜精品久久久久久久久 | 久久无码中文字幕免费影院蜜桃 | 亚洲人成网站在线播放942 | 亚洲天堂2017无码中文 | 久久97精品久久久久久久不卡 | 国产精品无码mv在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产精品久久久 | 成人无码视频免费播放 | 丁香啪啪综合成人亚洲 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产欧美精品一区二区三区 | 国产精品视频免费播放 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 色偷偷人人澡人人爽人人模 | 色噜噜亚洲男人的天堂 | 丁香花在线影院观看在线播放 | 久久精品中文字幕一区 | 中文无码伦av中文字幕 | 久热国产vs视频在线观看 | 午夜福利不卡在线视频 | 日韩无码专区 | 日日碰狠狠丁香久燥 | 久久zyz资源站无码中文动漫 | 女人被男人躁得好爽免费视频 | 无码福利日韩神码福利片 | 精品国产成人一区二区三区 | 无码精品国产va在线观看dvd | 精品国产一区二区三区四区在线看 | 日韩人妻少妇一区二区三区 | 熟妇人妻无码xxx视频 | 鲁一鲁av2019在线 | 亚洲一区二区三区在线观看网站 | 午夜福利一区二区三区在线观看 | www国产亚洲精品久久网站 | 少妇被粗大的猛进出69影院 | 亚洲成色在线综合网站 | 一本久道久久综合婷婷五月 | 国产又爽又猛又粗的视频a片 | 久久久久久久人妻无码中文字幕爆 | 亚洲国产精品久久人人爱 | 欧美三级不卡在线观看 | 欧美zoozzooz性欧美 | 天天综合网天天综合色 | 300部国产真实乱 | 高潮喷水的毛片 | 成人免费无码大片a毛片 | 丰满人妻被黑人猛烈进入 | 精品国偷自产在线视频 | 国产色在线 | 国产 | 亚洲国产精品久久久久久 | 亚洲gv猛男gv无码男同 | 久久午夜无码鲁丝片秋霞 | 天下第一社区视频www日本 | 麻豆成人精品国产免费 | 国产午夜亚洲精品不卡下载 | av小次郎收藏 | 亚洲 高清 成人 动漫 | 日韩精品一区二区av在线 | 人妻体内射精一区二区三四 | 国产人成高清在线视频99最全资源 | 成在人线av无码免观看麻豆 | 国语自产偷拍精品视频偷 | 国产真人无遮挡作爱免费视频 | 中文字幕+乱码+中文字幕一区 | 俺去俺来也www色官网 | 欧美高清在线精品一区 | 成人性做爰aaa片免费看不忠 | 无码国内精品人妻少妇 | 久久久亚洲欧洲日产国码αv | 秋霞成人午夜鲁丝一区二区三区 | 亚洲码国产精品高潮在线 | 青草青草久热国产精品 | 国产精品久免费的黄网站 | 国内少妇偷人精品视频 | 男女爱爱好爽视频免费看 | 久久久久久av无码免费看大片 | 国产三级久久久精品麻豆三级 | 狂野欧美激情性xxxx | 一本大道伊人av久久综合 | 久久久婷婷五月亚洲97号色 | 欧美国产亚洲日韩在线二区 | 国产一区二区三区四区五区加勒比 | 性生交大片免费看女人按摩摩 | 一本久久伊人热热精品中文字幕 | 亚洲国产av精品一区二区蜜芽 | 色欲av亚洲一区无码少妇 | 久久99精品久久久久久动态图 | 全球成人中文在线 | 国产精品多人p群无码 | 日韩少妇白浆无码系列 | 国产一区二区三区四区五区加勒比 | 精品国产国产综合精品 | 日韩av无码一区二区三区不卡 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品高潮呻吟av久久4虎 | 在教室伦流澡到高潮hnp视频 | 激情内射亚州一区二区三区爱妻 | 国内精品人妻无码久久久影院 | 熟妇人妻激情偷爽文 | 高潮喷水的毛片 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲熟悉妇女xxx妇女av | 亚洲成色在线综合网站 | 午夜无码区在线观看 | 漂亮人妻洗澡被公强 日日躁 | 精品人妻中文字幕有码在线 | 99久久精品日本一区二区免费 | 国产亚洲欧美在线专区 | 人人妻人人澡人人爽欧美精品 | 国产av一区二区三区最新精品 | 色婷婷久久一区二区三区麻豆 | 岛国片人妻三上悠亚 | 亚洲爆乳大丰满无码专区 | 图片小说视频一区二区 | 又粗又大又硬又长又爽 | 综合激情五月综合激情五月激情1 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 男女性色大片免费网站 | 奇米影视7777久久精品人人爽 | 精品aⅴ一区二区三区 | 中文字幕无码av波多野吉衣 | 久久精品国产亚洲精品 | 国产午夜无码精品免费看 | 日韩精品久久久肉伦网站 | 国产午夜福利亚洲第一 | 久久久精品国产sm最大网站 | 狠狠色丁香久久婷婷综合五月 | 无码人妻久久一区二区三区不卡 | 久久精品人人做人人综合试看 | 久久99精品久久久久婷婷 | 内射巨臀欧美在线视频 | 桃花色综合影院 | 亚洲 日韩 欧美 成人 在线观看 | 成人片黄网站色大片免费观看 | 国产又爽又黄又刺激的视频 | 国产另类ts人妖一区二区 | 在线观看欧美一区二区三区 | 国产成人久久精品流白浆 | 水蜜桃亚洲一二三四在线 | av人摸人人人澡人人超碰下载 | 国产日产欧产精品精品app | 一本久久伊人热热精品中文字幕 | 男人的天堂av网站 | 中文亚洲成a人片在线观看 | 久久精品无码一区二区三区 | 色情久久久av熟女人妻网站 | 亚洲熟妇色xxxxx欧美老妇y | 无码av中文字幕免费放 | 午夜男女很黄的视频 | 无码国产激情在线观看 | 亚洲另类伦春色综合小说 | 无码国模国产在线观看 | 窝窝午夜理论片影院 | 粉嫩少妇内射浓精videos | 久久www免费人成人片 | 曰韩无码二三区中文字幕 | 久久国产劲爆∧v内射 | 大肉大捧一进一出视频出来呀 | 精品久久久无码人妻字幂 | 麻豆果冻传媒2021精品传媒一区下载 | 日韩欧美中文字幕公布 | 亚洲国产欧美日韩精品一区二区三区 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲国产精品久久久久久 | 国产成人无码av片在线观看不卡 | 国产成人精品三级麻豆 | 日韩av无码一区二区三区 | 熟女体下毛毛黑森林 | 青青久在线视频免费观看 | 老子影院午夜精品无码 | 99久久精品国产一区二区蜜芽 | 国产suv精品一区二区五 | 欧美日韩亚洲国产精品 | 初尝人妻少妇中文字幕 | 熟妇人妻无乱码中文字幕 | 色婷婷久久一区二区三区麻豆 | 人妻少妇精品视频专区 | 亚洲无人区午夜福利码高清完整版 | 六月丁香婷婷色狠狠久久 | 亚洲精品一区二区三区大桥未久 | 精品无码一区二区三区的天堂 | 四虎4hu永久免费 | 亚洲国产精品美女久久久久 | 少妇无码av无码专区在线观看 | 波多野结衣高清一区二区三区 | 在线а√天堂中文官网 | 欧美激情综合亚洲一二区 | 国产手机在线αⅴ片无码观看 | 97精品国产97久久久久久免费 | 欧美成人家庭影院 | 天天拍夜夜添久久精品大 | 色窝窝无码一区二区三区色欲 | 色老头在线一区二区三区 | 日韩欧美成人免费观看 | 久久精品成人欧美大片 | 国产一区二区不卡老阿姨 | 国内少妇偷人精品视频免费 | 国产精品久久福利网站 | 呦交小u女精品视频 | 日本丰满熟妇videos | 黑人巨大精品欧美一区二区 | 国产精品人妻一区二区三区四 | 精品偷自拍另类在线观看 | 午夜福利电影 | 国产色视频一区二区三区 | 欧美成人午夜精品久久久 | 国产精品美女久久久久av爽李琼 | 国产激情一区二区三区 | 成熟女人特级毛片www免费 | 国产精品a成v人在线播放 | 国产精品无码永久免费888 | 亚洲一区av无码专区在线观看 | 国产在线精品一区二区三区直播 | 日日天干夜夜狠狠爱 | 久久久久久亚洲精品a片成人 | 亚洲国产精华液网站w | 亚洲一区二区三区国产精华液 | 99视频精品全部免费免费观看 | 无码精品人妻一区二区三区av | 人人澡人人妻人人爽人人蜜桃 | 巨爆乳无码视频在线观看 | 性欧美videos高清精品 | 蜜臀aⅴ国产精品久久久国产老师 | 久久伊人色av天堂九九小黄鸭 | 免费观看又污又黄的网站 | 十八禁视频网站在线观看 | 在线亚洲高清揄拍自拍一品区 | 国产成人精品无码播放 | 好男人社区资源 | 中文精品无码中文字幕无码专区 | 国产在线无码精品电影网 | yw尤物av无码国产在线观看 | 日韩av无码一区二区三区不卡 | 亚洲码国产精品高潮在线 | 亚洲精品国产品国语在线观看 | 欧美性生交活xxxxxdddd | 日本乱人伦片中文三区 | 久久亚洲精品中文字幕无男同 | 丰满人妻精品国产99aⅴ | 欧美人与禽zoz0性伦交 | 亚洲一区二区三区在线观看网站 | 日本精品少妇一区二区三区 | 成人性做爰aaa片免费看不忠 | 性欧美牲交在线视频 | 在线观看欧美一区二区三区 | 亚洲另类伦春色综合小说 | 精品一二三区久久aaa片 | 日韩精品成人一区二区三区 | 中文字幕精品av一区二区五区 | 国产高潮视频在线观看 | 国产精品免费大片 | 国产精品a成v人在线播放 | 欧美第一黄网免费网站 | 中国女人内谢69xxxxxa片 | 荫蒂添的好舒服视频囗交 | 日韩视频 中文字幕 视频一区 | 在线成人www免费观看视频 | 国产午夜亚洲精品不卡 | 亚洲精品国偷拍自产在线观看蜜桃 | а√天堂www在线天堂小说 | 午夜不卡av免费 一本久久a久久精品vr综合 | 人妻少妇精品无码专区二区 | 午夜精品久久久久久久 | 亚洲国产成人av在线观看 | 日韩视频 中文字幕 视频一区 | 无码国内精品人妻少妇 | 亚洲欧美国产精品专区久久 | 小泽玛莉亚一区二区视频在线 | 四十如虎的丰满熟妇啪啪 | 亚洲s码欧洲m码国产av | 无码纯肉视频在线观看 | 欧美午夜特黄aaaaaa片 | 高中生自慰www网站 | 久久久久久国产精品无码下载 | 国产另类ts人妖一区二区 | 久久99精品久久久久婷婷 | 一本色道久久综合狠狠躁 | 丰满肥臀大屁股熟妇激情视频 | ass日本丰满熟妇pics | 综合激情五月综合激情五月激情1 | 亚洲中文字幕成人无码 | 国产亚av手机在线观看 | 欧美熟妇另类久久久久久多毛 | 天堂亚洲2017在线观看 | 娇妻被黑人粗大高潮白浆 | 日韩av无码中文无码电影 | 无遮挡国产高潮视频免费观看 | 欧美人与牲动交xxxx | 一本无码人妻在中文字幕免费 | 九九在线中文字幕无码 | 亚洲综合无码久久精品综合 | 国产电影无码午夜在线播放 | 黑人粗大猛烈进出高潮视频 | 人人妻人人澡人人爽欧美一区 | 好屌草这里只有精品 | 最新国产麻豆aⅴ精品无码 | 一本色道久久综合狠狠躁 | 久久成人a毛片免费观看网站 | 亚洲精品久久久久中文第一幕 | 日韩欧美群交p片內射中文 | 中文字幕无码av波多野吉衣 | 香蕉久久久久久av成人 | 人人妻人人澡人人爽精品欧美 | 特大黑人娇小亚洲女 | 精品夜夜澡人妻无码av蜜桃 | 亚洲a无码综合a国产av中文 | 国产亚洲美女精品久久久2020 | 国产亚洲精品久久久久久久 | 精品无码国产一区二区三区av | 欧美日韩人成综合在线播放 | 国产精品国产自线拍免费软件 | 天海翼激烈高潮到腰振不止 | 伊人久久大香线蕉午夜 | 久久久久久a亚洲欧洲av冫 | 精品国产一区二区三区四区在线看 | 4hu四虎永久在线观看 | 国产人妻大战黑人第1集 | 日本熟妇乱子伦xxxx | 亚洲精品一区二区三区婷婷月 | 亚洲精品成a人在线观看 | 少妇无码吹潮 | 国产人妻人伦精品1国产丝袜 | 日本精品少妇一区二区三区 | 久久亚洲精品成人无码 | 久久亚洲国产成人精品性色 | 中文字幕无码热在线视频 | 少妇无套内谢久久久久 | 激情内射日本一区二区三区 | 亚洲精品久久久久avwww潮水 | 波多野结衣 黑人 | 久久亚洲国产成人精品性色 | 欧美freesex黑人又粗又大 | 国产农村乱对白刺激视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 无码国模国产在线观看 | 亚洲无人区午夜福利码高清完整版 | 精品无码一区二区三区的天堂 | 无码精品人妻一区二区三区av | 强伦人妻一区二区三区视频18 | 大肉大捧一进一出视频出来呀 | 国产精品久久久久影院嫩草 | 人人妻人人澡人人爽人人精品浪潮 | 色窝窝无码一区二区三区色欲 | 在线视频网站www色 | 国产人妖乱国产精品人妖 | 久久无码人妻影院 | 又大又硬又黄的免费视频 | 亚洲 a v无 码免 费 成 人 a v | 女高中生第一次破苞av | 人妻熟女一区 | 亚洲第一无码av无码专区 | 国产麻豆精品一区二区三区v视界 | 亚洲日韩中文字幕在线播放 | 欧美人与禽zoz0性伦交 | 2020久久香蕉国产线看观看 | 天天躁日日躁狠狠躁免费麻豆 | 综合激情五月综合激情五月激情1 | 国产色视频一区二区三区 | 爱做久久久久久 | 国产精品无码成人午夜电影 | 国产精品无码成人午夜电影 | 99久久精品日本一区二区免费 | 真人与拘做受免费视频 | 无码成人精品区在线观看 | 一区二区传媒有限公司 | 色综合久久久无码网中文 | 人人爽人人澡人人高潮 | 正在播放东北夫妻内射 | 亚洲综合伊人久久大杳蕉 | 国产亚洲精品精品国产亚洲综合 | 久久国产精品精品国产色婷婷 | 成人欧美一区二区三区黑人 | 人妻尝试又大又粗久久 | 国产后入清纯学生妹 | 欧美自拍另类欧美综合图片区 | 精品久久久久香蕉网 | 欧美日本日韩 | 少女韩国电视剧在线观看完整 | 久久久av男人的天堂 | 理论片87福利理论电影 | 午夜福利试看120秒体验区 | 久久精品人人做人人综合试看 | 国产精品怡红院永久免费 | 黑人玩弄人妻中文在线 | 天堂а√在线中文在线 | 娇妻被黑人粗大高潮白浆 | 自拍偷自拍亚洲精品被多人伦好爽 | 人妻体内射精一区二区三四 | 2020久久超碰国产精品最新 | 少妇性荡欲午夜性开放视频剧场 | 国产精品久久久久久久9999 | 午夜时刻免费入口 | 国产艳妇av在线观看果冻传媒 | 国产精品亚洲一区二区三区喷水 | 成人影院yy111111在线观看 | 成人亚洲精品久久久久 | 十八禁真人啪啪免费网站 | 色偷偷人人澡人人爽人人模 | 精品成在人线av无码免费看 | 性欧美牲交xxxxx视频 | 日韩视频 中文字幕 视频一区 | 小sao货水好多真紧h无码视频 | 狠狠色噜噜狠狠狠狠7777米奇 | 色综合久久久无码网中文 | 好男人社区资源 | 午夜精品一区二区三区的区别 | 日韩少妇内射免费播放 | 亚洲综合无码久久精品综合 | 狂野欧美性猛xxxx乱大交 | 亚洲 欧美 激情 小说 另类 | 欧美精品免费观看二区 | 2019午夜福利不卡片在线 | 亚洲综合无码一区二区三区 | 亚洲天堂2017无码 | 2020最新国产自产精品 | 国产av人人夜夜澡人人爽麻豆 | 亚洲欧洲日本综合aⅴ在线 | 亚洲国产精品毛片av不卡在线 | 色欲av亚洲一区无码少妇 | 水蜜桃av无码 | 亚洲天堂2017无码中文 | 精品久久久久香蕉网 | 美女毛片一区二区三区四区 | 成人性做爰aaa片免费看不忠 | 精品欧美一区二区三区久久久 | 国产精品亚洲五月天高清 | 日韩人妻无码中文字幕视频 | 国产sm调教视频在线观看 | 97夜夜澡人人爽人人喊中国片 | 无码国内精品人妻少妇 | 日韩精品一区二区av在线 | 国产小呦泬泬99精品 | 久久精品中文字幕一区 | 在线欧美精品一区二区三区 | 精品乱码久久久久久久 | 午夜性刺激在线视频免费 | 久久国产36精品色熟妇 | 久久精品99久久香蕉国产色戒 | 亚洲欧美精品aaaaaa片 | 亚洲欧洲无卡二区视頻 | 亚洲午夜无码久久 | 国色天香社区在线视频 | 欧美xxxx黑人又粗又长 | 国产精品亚洲一区二区三区喷水 | 樱花草在线播放免费中文 | 少妇的肉体aa片免费 | 亚洲码国产精品高潮在线 | 中文字幕亚洲情99在线 | 亚洲精品午夜无码电影网 | 中文字幕人成乱码熟女app | 荡女精品导航 | 精品欧美一区二区三区久久久 | 99久久精品国产一区二区蜜芽 | 无码国产激情在线观看 | 国产97人人超碰caoprom | 国产精品第一区揄拍无码 | 国产电影无码午夜在线播放 | 老头边吃奶边弄进去呻吟 | 国产一区二区不卡老阿姨 | 在线精品亚洲一区二区 | 精品久久久久久人妻无码中文字幕 | 久久国产精品偷任你爽任你 | 国产精品第一国产精品 | 色爱情人网站 | 免费观看黄网站 | 午夜理论片yy44880影院 | 国产猛烈高潮尖叫视频免费 | 好爽又高潮了毛片免费下载 | 动漫av网站免费观看 | 精品久久久久久人妻无码中文字幕 | 无码一区二区三区在线观看 | 久久午夜无码鲁丝片午夜精品 | 日韩av无码中文无码电影 | 亚洲精品一区二区三区在线 | 亚洲国产综合无码一区 | 九九热爱视频精品 | 又大又硬又爽免费视频 | 成人精品天堂一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 欧美三级不卡在线观看 | 久久视频在线观看精品 | 国产精品资源一区二区 | 18精品久久久无码午夜福利 | 激情内射亚州一区二区三区爱妻 | 装睡被陌生人摸出水好爽 | 国产农村妇女高潮大叫 | 国产深夜福利视频在线 | 色欲av亚洲一区无码少妇 | 波多野42部无码喷潮在线 | 国产高清不卡无码视频 | 国产精品99久久精品爆乳 | 国产激情综合五月久久 | 国产偷国产偷精品高清尤物 | 国产精品二区一区二区aⅴ污介绍 | 色五月丁香五月综合五月 | 综合网日日天干夜夜久久 | 欧美变态另类xxxx | 欧美人妻一区二区三区 | 亚洲精品一区二区三区大桥未久 | 日韩人妻无码一区二区三区久久99 | 澳门永久av免费网站 | 麻豆av传媒蜜桃天美传媒 | 小sao货水好多真紧h无码视频 | 国精品人妻无码一区二区三区蜜柚 | 激情国产av做激情国产爱 | 亚洲国产精品久久人人爱 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日韩人妻无码一区二区三区久久99 | 无码纯肉视频在线观看 | 亚洲国产精品久久久久久 | 澳门永久av免费网站 | 久久zyz资源站无码中文动漫 | a国产一区二区免费入口 | 久久亚洲日韩精品一区二区三区 | 一区二区传媒有限公司 | 亚洲中文字幕成人无码 | 国产肉丝袜在线观看 | 国产日产欧产精品精品app | 欧美老妇与禽交 | 亚洲国产精品无码一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 理论片87福利理论电影 | 麻豆国产丝袜白领秘书在线观看 | 露脸叫床粗话东北少妇 | 99国产欧美久久久精品 | av无码久久久久不卡免费网站 | 国产真实夫妇视频 | 国产免费久久久久久无码 | 人妻天天爽夜夜爽一区二区 | 国产成人无码午夜视频在线观看 | 97久久超碰中文字幕 | 丰满少妇女裸体bbw | 亚洲综合伊人久久大杳蕉 | 国产97人人超碰caoprom | 久久久婷婷五月亚洲97号色 | 狠狠综合久久久久综合网 | 国产乱子伦视频在线播放 | 成人亚洲精品久久久久软件 | 国产免费久久精品国产传媒 | 亚洲成a人一区二区三区 | 无码乱肉视频免费大全合集 | 欧美人与善在线com | 国产精品第一区揄拍无码 | 免费国产黄网站在线观看 | av无码电影一区二区三区 | 麻豆精品国产精华精华液好用吗 | 亚洲国产av美女网站 | 女人色极品影院 | 成 人 免费观看网站 | 国产成人无码午夜视频在线观看 | 日本熟妇乱子伦xxxx | 激情综合激情五月俺也去 | 女人被男人躁得好爽免费视频 | 亚洲中文字幕无码一久久区 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲日韩av一区二区三区四区 | 国产在线精品一区二区三区直播 | 国产成人精品三级麻豆 | 欧美激情一区二区三区成人 | 综合激情五月综合激情五月激情1 | 亚洲爆乳大丰满无码专区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产熟女一区二区三区四区五区 | 最新版天堂资源中文官网 | 人妻人人添人妻人人爱 | 女人高潮内射99精品 | 中文字幕av无码一区二区三区电影 | 久久久久99精品成人片 | 内射爽无广熟女亚洲 | 55夜色66夜色国产精品视频 | 理论片87福利理论电影 | 十八禁真人啪啪免费网站 | 无码精品国产va在线观看dvd | 免费播放一区二区三区 | 亚洲精品鲁一鲁一区二区三区 | 久久国内精品自在自线 | 无码播放一区二区三区 | 日日摸夜夜摸狠狠摸婷婷 | 老司机亚洲精品影院无码 |