日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

编程问答

从零写一个编译器(十):编译前传之直接解释执行

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零写一个编译器(十):编译前传之直接解释执行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目的完整代碼在 C2j-Compiler

前言

這一篇不看也不會影響后面代碼生成部分

現在經過詞法分析語法分析語義分析,終于可以進入最核心的部分了。前面那部分可以稱作編譯器的前端,代碼生成代碼優化都是屬于編譯器后端,如今有關編譯器的工作崗位主要都是對后端的研究。當然現在寫的這個編譯器因為水平有限,并沒有優化部分。

在進行代碼生成部分之前,我們先來根據AST來直接解釋執行,其實就是對AST的遍歷。現代解釋器一般都是生成一個比較低級的指令然后跑在虛擬機上,但是簡單起見我們就直接根據AST解釋執行的解釋器。(原本這部分是不想寫的,是可以直接寫代碼生成的)

這次的文件在interpreter包里,這次涉及到的文件比較多,就不列舉了

一個小問題

在開始說解釋器的部分前我們看一下,認真觀察之前在構造符號表對賦初值的推導式的處理是有問題的,但是問題不大,只要稍微改動一下

在github源代碼的部分已經改了,改動如下:

case SyntaxProductionInit.VarDecl_Equal_Initializer_TO_Decl:attributeForParentNode = (Symbol) valueStack.get(valueStack.size() - 3);((Symbol) attributeForParentNode).value = initialValue; break;case SyntaxProductionInit.Expr_TO_Initializer:initialValue = (Integer) valueStack.get(valueStack.size() - 1);System.out.println(initialValue);break;

其實就是一個拿到賦的初值放到Symbol的value里

示例

先看一下這篇完成之后解釋執行的效果

void swap(int arr[10], int i, int j) {int temp;temp = arr[i];arr[i] = arr[j];arr[j] = temp; }void quickSort(int a[10], int p, int r) {int x;int i;i = p - 1;int j;int t;int v;v = r - 1;if (p < r) {x = a[r];for (j = p; j <= v; j++) {if (a[j] <= x) {i++;swap(a, i, j);}}v = i + 1;swap(a, v, r);t = v - 1;quickSort(a, p, t);t = v + 1;quickSort(a, t, r);} }void main () {int a[10];int i;int t;printf("Array before quicksort:");for(i = 0; i < 10; i++) {t = (10 - i);a[i] = t;printf("value of a[%d] is %d", i, a[i]);}quickSort(a, 0, 9);printf("Array after quicksort:");for (i = 0; i < 10; i++) {printf("value of a[%d] is %d", i, a[i]);} }

Executor接口

所有能夠執行結點的類都要實現這個接口,所以以此來達到遍歷AST來執行代碼

解釋器的啟動在Interpreter類里,它也實現了Executor接口

Interpreter類的execute傳入的參數就是整棵抽象語法樹的頭節點了,ExecutorFactory的getExecutor則是根據當前結點的TokenType返回一個可以解釋當前節點的類,而其它執行節點的類都繼承了BaseExecutor

@Override public Object execute(AstNode root) {if (root == null) {return null;}ExecutorFactory factory = ExecutorFactory.getInstance();Executor executor = factory.getExecutor(root);executor.execute(root);return root; }

BaseExecutor的兩個主要方法就是執行它的子節點,并且可以指定執行哪個子節點。可以先忽略Brocaster,這些是用來實現執行節點類之前的通訊的,現在還沒有用。reverseChildren是用來對節點的反轉,因為在創建的AST的過程由于堆棧的原因,所以節點順序的相反的。continueExecute是標志位,后面可能會執行到設置它的節點來結束運行

protected void executeChildren(AstNode root) {ExecutorFactory factory = ExecutorFactory.getInstance();root.reverseChildren();int i = 0;while (i < root.getChildren().size()) {if (!continueExecute) {break;}AstNode child = root.getChildren().get(i);executorBrocaster.brocastBeforeExecution(child);Executor executor = factory.getExecutor(child);if (executor != null) {executor.execute(child);} else {System.err.println("Not suitable Generate found, node is: " + child.toString());}executorBrocaster.brocastAfterExecution(child);i++;} }protected AstNode executeChild(AstNode root, int childIdx) {root.reverseChildren();AstNode child;ExecutorFactory factory = ExecutorFactory.getInstance();child = (AstNode)root.getChildren().get(childIdx);Executor executor = factory.getExecutor(child);AstNode res = (AstNode)executor.execute(child);return res; }

解釋執行

我們可以知道一個C語言的源文件一般都是一些函數定義和一個main的函數來啟動,所以在AstBuilder里返回給Interpreter的節點就是從main開始的

public AstNode getSyntaxTreeRoot() {AstNode mainNode = funcMap.get("main");return mainNode; }

執行函數ExtDefExecutor

用來執行函數的Executor是ExtDefExecutor

  • 在進入execute會先執行FunctDecl節點,再執行CompoundStmt節點
  • saveArgs和restoreArgs屬于保護當前的環境,就是進入其它作用域的時候保證這個符號不變修改,不比如當作參數傳遞的時候
  • returnVal也是屬于由其它節點設置的屬性
  • root.setAttribute的作用就是對節點設置屬性,把值往上傳遞
@Override public Object execute(AstNode root) {this.root = root;int production = (Integer) root.getAttribute(NodeKey.PRODUCTION);switch (production) {case SyntaxProductionInit.OptSpecifiers_FunctDecl_CompoundStmt_TO_ExtDef:AstNode child = root.getChildren().get(0);funcName = (String) child.getAttribute(NodeKey.TEXT);root.setAttribute(NodeKey.TEXT, funcName);saveArgs();executeChild(root, 0);executeChild(root, 1);Object returnVal = getReturnObj();clearReturnObj();if (returnVal != null) {root.setAttribute(NodeKey.VALUE, returnVal);}isContinueExecution(true);restoreArgs();break;default:break;}return root; }

函數定義 FunctDeclExecutor

執行函數會先執行它的括號的前部分也就是標識符和參數那部分,對參數進行初始化,函數的傳遞的參數用單獨一個類FunctionArgumentList來表示

@Override public Object execute(AstNode root) {int production = (Integer) root.getAttribute(NodeKey.PRODUCTION);Symbol symbol;currentNode = root;switch (production) {case SyntaxProductionInit.NewName_LP_RP_TO_FunctDecl:root.reverseChildren();copyChild(root, root.getChildren().get(0));break;case SyntaxProductionInit.NewName_LP_VarList_RP_TO_FunctDecl:symbol = (Symbol) root.getAttribute(NodeKey.SYMBOL);Symbol args = symbol.getArgList();initArgumentList(args);if (args == null || argsList == null || argsList.isEmpty()) {System.err.println("generate function with arg list but arg list is null");System.exit(1);}break;default:break;}return root; }

執行語句部分 CompoundStmtExecutor

執行語句的部分就開始對樹的遍歷執行,但是我們來看一下這個節點的推導式

COMPOUND_STMT-> LC LOCAL_DEFS STMT_LIST RC

在構建AST的時候我們并沒有構建LOCAL_DEFS,并且在之前符號表也沒有進行處理,所以我們直接執行第0個節點就可以了

@Override public Object execute(AstNode root) {return executeChild(root, 0); }

一元操作

下面看UnaryNodeExecutor,UnaryNodeExecutor應該是所有Executor最復雜的之一了,其實對于節點執行,先執行子節點,并且向上傳遞執行結果的值。

只說其中的幾個

  • 指針

這個就是對指針的操作了,本質是對內存分配的一個模擬,再設置實現ValueSetter的DirectMemValueSetter,讓它的父節點可以通過這個節點的setter對指針指向進行賦值

ValueSetter是一個可以對變量進行賦值的接口,數組、指針、簡單的變量都有各自的valueSetter

case SyntaxProductionInit.Start_Unary_TO_Unary:child = root.getChildren().get(0);int addr = (Integer) child.getAttribute(NodeKey.VALUE);symbol = (Symbol) child.getAttribute(NodeKey.SYMBOL);MemoryHeap memHeap = MemoryHeap.getInstance();Map.Entry<Integer, byte[]> entry = memHeap.getMem(addr);int offset = addr - entry.getKey();if (entry != null) {byte[] memByte = entry.getValue();root.setAttribute(NodeKey.VALUE, memByte[offset]);}DirectMemValueSetter directMemSetter = new DirectMemValueSetter(addr);root.setAttribute(NodeKey.SYMBOL, directMemSetter);break;
  • 指針和數組操作:

這是執行數組或者是指針的操作,對于數組和指針的操作會在節點中的Symbol里設置一個可以進行賦值的接口:ArrayValueSetter、PointerValueSetter,邏輯都不是很復雜。對于指針的操作其實是對于內存地址分配的一個模擬。

case SyntaxProductionInit.Unary_LB_Expr_RB_TO_Unary:child = root.getChildren().get(0);symbol = (Symbol) child.getAttribute(NodeKey.SYMBOL);child = root.getChildren().get(1);int index = (Integer) child.getAttribute(NodeKey.VALUE);try {Declarator declarator = symbol.getDeclarator(Declarator.ARRAY);if (declarator != null) {Object val = declarator.getElement(index);root.setAttribute(NodeKey.VALUE, val);ArrayValueSetter setter = new ArrayValueSetter(symbol, index);root.setAttribute(NodeKey.SYMBOL, setter);root.setAttribute(NodeKey.TEXT, symbol.getName());}Declarator pointer = symbol.getDeclarator(Declarator.POINTER);if (pointer != null) {setPointerValue(root, symbol, index);PointerValueSetter pv = new PointerValueSetter(symbol, index);root.setAttribute(NodeKey.SYMBOL, pv);root.setAttribute(NodeKey.TEXT, symbol.getName());}} catch (Exception e) {System.err.println(e.getMessage());e.printStackTrace();System.exit(1);}break;
  • 函數調用

函數調用也是屬于一元操作,對于函數調用有兩種情況:一種是自定義的函數,還有一種是解釋器提供的函數

  • 如果是自定義函數,就找到這個函數的頭節點,從這個頭節點開始執行
  • 如果是解釋器提供的函數,就交由ClibCall處理,比如printf就是屬于庫函數
  • case SyntaxProductionInit.Unary_LP_RP_TO_Unary: case SyntaxProductionInit.Unary_LP_ARGS_RP_TO_Unary:String funcName = (String) root.getChildren().get(0).getAttribute(NodeKey.TEXT);if (production == SyntaxProductionInit.Unary_LP_ARGS_RP_TO_Unary) {AstNode argsNode = root.getChildren().get(1);ArrayList<Object> argList = (ArrayList<Object>) argsNode.getAttribute(NodeKey.VALUE);ArrayList<Object> symList = (ArrayList<Object>) argsNode.getAttribute(NodeKey.SYMBOL);FunctionArgumentList.getInstance().setFuncArgList(argList);FunctionArgumentList.getInstance().setFuncArgSymbolList(symList);}AstNode func = AstBuilder.getInstance().getFunctionNodeByName(funcName);if (func != null) {Executor executor = ExecutorFactory.getInstance().getExecutor(func);executor.execute(func);Object returnVal = func.getAttribute(NodeKey.VALUE);if (returnVal != null) {ConsoleDebugColor.outlnPurple("function call with name " + funcName + " has return value that is " + returnVal.toString());root.setAttribute(NodeKey.VALUE, returnVal);}} else {ClibCall libCall = ClibCall.getInstance();if (libCall.isApiCall(funcName)) {Object obj = libCall.invokeApi(funcName);root.setAttribute(NodeKey.VALUE, obj);}}break;

    邏輯語句處理

    邏輯語句處理無非就是根據節點值判斷該執行哪些節點

    • FOR、WHILE語句

    代碼邏輯和語句的邏輯是一樣,比如對于

    for(i = 0; i < 5; i++){}

    就會先執行i = 0部分,在執行{}和i++部分,然后再判斷條件是否符合

    case SyntaxProductionInit.FOR_OptExpr_Test_EndOptExpr_Statement_TO_Statement: executeChild(root, 0);while (isLoopContinute(root, LoopType.FOR)) {//execute statement in for bodyexecuteChild(root, 3);//execute EndOptExprexecuteChild(root, 2); } break;case SyntaxProductionInit.While_LP_Test_Rp_TO_Statement: while (isLoopContinute(root, LoopType.WHILE)) {executeChild(root, 1); } break;
    • IF語句

    if語句就是先執行判斷部分,再根據判斷的結果來決定是否執行{}塊

    @Override public Object execute(AstNode root) {AstNode res = executeChild(root, 0);Integer val = (Integer)res.getAttribute(NodeKey.VALUE);copyChild(root, res);if (val != null && val != 0) {executeChild(root, 1);}return root; }

    小結

    這一篇寫的很亂,一是解釋器部分還是蠻大的,想在一篇之內寫完比較難。所以省略了很多東西。但其實對于解釋器實現部分對于AST的遍歷才比較涉及編譯原理部分,其它的主要是邏輯實現

    對于解釋器部分,因為沒有采用虛擬機那樣的實現,而是直接對AST的遍歷。所以對AST的遍歷是關鍵,主要在于遍歷到該執行的子節點部分,然后處理邏輯,再把信息通過子節點傳遞到父節點部分。

    轉載于:https://www.cnblogs.com/secoding/p/11382017.html

    總結

    以上是生活随笔為你收集整理的从零写一个编译器(十):编译前传之直接解释执行的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    欧美一级爽 | 最新99热| 黄色大片网 | 日本精品一区二区三区在线播放视频 | av电影在线免费观看 | 99免费看片 | 一区二区三区日韩在线观看 | 麻豆视频观看 | 成人av电影免费 | 欧美日产在线观看 | 91黄色影视 | 亚洲成人精品在线观看 | 狠狠躁日日躁夜夜躁av | 亚洲精品乱码久久久久久蜜桃不爽 | 国产黄大片 | 日韩综合视频在线观看 | 中国一区二区视频 | 99久久精品免费看国产一区二区三区 | 免费日韩一区二区三区 | 极品久久久 | 一区二区不卡视频在线观看 | 日韩一级电影网站 | 成全在线视频免费观看 | 日韩av网址在线 | 久久精品a| 91伊人久久大香线蕉蜜芽人口 | 成人av网页 | 色婷婷久久久 | 一级做a爱片性色毛片www | 成人免费看视频 | 91精品久久久久久综合五月天 | 国产精品手机看片 | av成人免费在线观看 | 97人人射| 美女av在线免费 | 国产成人黄色片 | 国产综合91 | 激情黄色av| 国产精品美女久久久久久2018 | 狠狠躁18三区二区一区ai明星 | 91在线91拍拍在线91 | 久久久久久久久久伊人 | 久久久综合香蕉尹人综合网 | 国产一级黄 | 日韩区在线观看 | 国模一区二区三区四区 | 欧美久久久影院 | 精品一区二区三区电影 | 国产成人一区二区精品非洲 | 久久亚洲热 | 亚洲精品国产成人av在线 | 国产成人av片 | 欧美做受69 | 国产美女免费视频 | 久久久久久久久久免费 | 碰超在线观看 | 免费黄色av. | 国产精品男女啪啪 | 一区二区三区在线免费观看视频 | 亚洲一级黄色大片 | 久久国产精品久久国产精品 | 久久国产手机看片 | 99色99| 日韩v在线91成人自拍 | 亚洲少妇自拍 | 精品国产视频在线观看 | 美女网站视频免费都是黄 | 久久理伦片 | 人人爱人人舔 | 日韩精品久久一区二区三区 | 国产精品一区二区av麻豆 | 亚洲天堂网站 | 手机在线看片日韩 | 毛片.com| 免费视频成人 | 久久综合九色 | 久久精品国产亚洲精品2020 | 日韩久久久久久久久 | 日韩在线视频看看 | 亚洲精品资源在线观看 | 黄色成人av网址 | 亚洲最大在线视频 | a v在线视频 | 日韩综合精品 | 国产一级视频在线免费观看 | 欧洲精品亚洲精品 | 一区电影 | 国产精品免费大片视频 | 国内精品久久久久 | 天天插狠狠插 | 国产 在线观看 | 亚洲黄色激情小说 | 亚洲一级二级 | 在线观看网站av | 国内精品久久久久久久影视简单 | 色av资源网 | 亚洲欧美日韩一区二区三区在线观看 | 在线观看亚洲精品 | aaa黄色毛片 | 黄色网在线播放 | 亚洲欧美日韩一二三区 | 2000xxx影视| 国产视频在线观看一区二区 | 欧美精品亚州精品 | 国产精品一区二区精品视频免费看 | 国产亚洲激情视频在线 | 免费亚洲片 | 国产成人精品日本亚洲999 | 麻豆一区在线观看 | 日韩中文字幕免费在线播放 | 狠狠色噜噜狠狠狠狠 | 国产精品第二十页 | 成人av电影免费在线观看 | 在线观看国产 | 久久久综合 | 男女靠逼app | 色播99| 中文字幕资源在线观看 | 国产看片免费 | 97人人澡人人添人人爽超碰 | 亚洲一区二区天堂 | 欧美一区二区三区在线播放 | 精品亚洲一区二区 | 成人网在线免费视频 | 天天艹日日干 | 久久久久亚洲精品国产 | 综合网天天色 | 欧美-第1页-屁屁影院 | 久久久精品成人 | 国产色在线观看 | 99九九视频 | av九九九 | 久久a级片 | 黄av资源| 五月天久久久 | 日韩一级黄色片 | 免费在线成人av电影 | 亚洲国产午夜 | 一区二区av | 91国内在线视频 | 午夜体验区| 国产九色91 | 日韩毛片在线一区二区毛片 | 亚洲国产精品人久久电影 | 日韩高清免费电影 | 免费99精品国产自在在线 | 欧美性黑人 | 久久精品牌麻豆国产大山 | 日韩毛片在线免费观看 | 高清av免费一区中文字幕 | 一二区电影 | 黄污在线观看 | 在线观看视频三级 | 精品视频资源站 | 国产最新在线观看 | 日本3级在线观看 | 91激情小视频 | 中文字幕xxxx | 天天天天天天干 | 亚洲精品综合欧美二区变态 | 成人午夜电影在线 | 久久久久成人精品免费播放动漫 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 午夜精品一区二区三区在线观看 | 97综合在线| 在线 国产 日韩 | 亚洲a在线观看 | 国精产品999国精产 久久久久 | 久久草精品 | 欧美日韩精品在线免费观看 | 精品国产一区二区在线 | 婷婷亚洲综合五月天小说 | 日韩在线| 亚洲欧洲精品一区 | 视频福利在线 | 美女网站在线观看 | 看全黄大色黄大片 | 国产一区二区三区午夜 | 欧美性久久久 | 97国产在线播放 | 成人全视频免费观看在线看 | 人人搞人人搞 | 久久人人添人人爽添人人88v | 欧美日韩性视频在线 | 欧美视频在线观看免费网址 | 最新av免费 | 中文字幕一区二区三区四区久久 | 国产婷婷vvvv激情久 | 黄色录像av | 国产麻豆精品一区二区 | 久章操 | 日韩精品无 | 综合激情网... | 六月丁香激情网 | 亚洲欧美乱综合图片区小说区 | 菠萝菠萝在线精品视频 | 99热精品久久| 国产尤物在线视频 | 久久草 | 久久国产91 | 五月天狠狠操 | av成人免费在线 | 久久最新 | 日韩极品视频在线观看 | 日韩一区二区免费播放 | 99精品在线免费在线观看 | 天天射天天操天天色 | 婷婷色中文字幕 | 天天爱天天插 | www.久久免费 | 69国产盗摄一区二区三区五区 | 91桃色免费观看 | 五月综合色婷婷 | 不卡av电影在线 | 婷婷六月综合网 | 黄色小网站在线观看 | av大全在线免费观看 | 国产一级精品视频 | 视频在线观看入口黄最新永久免费国产 | 天天做日日爱夜夜爽 | 亚洲精品一区二区三区高潮 | av在线播放快速免费阴 | 久久69精品 | 日韩高清激情 | 97超碰网| 91天天操| 特级免费毛片 | 青草视频在线免费 | 精品国产精品一区二区夜夜嗨 | 日日草天天干 | 爱情影院aqdy鲁丝片二区 | 久久色在线观看 | 亚洲成人黄色 | 人操人| 欧美日韩中文在线 | 97av免费视频 | 国产一线天在线观看 | 日日夜夜天天人人 | 91 中文字幕| 久久亚洲区 | 久久久国产一区二区三区 | 香蕉在线视频播放网站 | 成人午夜av电影 | 97人人艹| 精品久久久久久一区二区里番 | 午夜精品一区二区国产 | 丁香花在线视频观看免费 | 99久久精品免费视频 | 天天操婷婷 | 香蕉在线影院 | 一区二区精品视频 | 欧美色图p| 色吊丝在线永久观看最新版本 | 黄色亚洲在线 | 国内精品久久久久影院优 | 国产美女久久久 | 草久在线播放 | 日韩国产精品一区 | 欧美激情精品一区 | 国内一级片在线观看 | 毛片一区二区 | 欧美国产日韩一区二区三区 | 色综合天天狠天天透天天伊人 | 欧美aaa视频 | www.亚洲精品在线 | 特黄特色特刺激视频免费播放 | 欧美日韩一级久久久久久免费看 | 色播亚洲婷婷 | 天天做天天射 | 欧美激情精品久久久久久免费 | 中文字幕精品www乱入免费视频 | 国产黄大片 | 日韩在线视频二区 | 欧美日韩高清在线一区 | 91精选| 欧美久久电影 | 国产精品美女久久久久aⅴ 干干夜夜 | 在线观看成人国产 | 欧美精品xxx| 国产专区视频在线观看 | 超碰成人免费电影 | 国产黄色片一级三级 | 操高跟美女 | 国产成人精品久久久久蜜臀 | 成人va天堂 | 91av中文字幕 | 国产日女人 | 久久久久久久久网站 | 九九热在线精品视频 | 天天综合网在线 | 国产一区二区免费看 | 91探花国产综合在线精品 | 草免费视频 | 六月天色婷婷 | av成人动漫在线观看 | 亚洲成成品网站 | 久精品视频免费观看2 | 国产欧美久久久精品影院 | 96国产精品 | 国产涩涩网站 | 日韩精品欧美精品 | 国产成人亚洲在线观看 | 香蕉视频在线观看免费 | 91精选在线 | 91看片在线免费观看 | 天天拍天天爽 | 日韩在线观看网站 | 操操操人人人 | 精品毛片久久久久久 | 99久久精品免费看国产四区 | 欧美久草视频 | 国产二区精品 | 最近日本mv字幕免费观看 | av官网在线 | 中文字幕免费高清在线 | 日韩成人xxxx| 国产福利在线 | 人人插人人费 | 午夜在线免费视频 | 免费大片av | 波多野结衣久久资源 | 五月婷婷丁香激情 | 久草观看视频 | 久久欧美综合 | 国产欧美中文字幕 | 天天操天| 麻豆一二三精选视频 | 九九视频免费 | 天天躁天天操 | 久久久久久久久久久久久久免费看 | 麻豆视频在线观看免费 | 深夜免费福利网站 | 成年人免费看片 | 99亚洲精品在线 | 成人黄色视 | 免费成人短视频 | 国产精品一区二区免费在线观看 | 午夜精品久久久久久 | 日韩二区在线观看 | 成人久久久久久久久久 | 国产日韩欧美精品在线观看 | 在线亚洲日本 | 免费看黄视频 | 久久精品国产亚洲精品2020 | 亚洲一区二区精品3399 | 中文字幕第 | 色婷婷综合久久久 | 免费日韩电影 | 日韩美女免费线视频 | 免费在线看v| 天天弄天天干 | 亚洲综合在线一区二区三区 | 456成人精品影院 | 天堂激情网 | 欧美日韩中文字幕综合视频 | 亚洲精品永久免费视频 | 成人三级网站在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 欧美日韩中文字幕在线视频 | 亚洲午夜精 | 999久久久久久久久 69av视频在线观看 | 五月婷亚洲 | 九九九热精品免费视频观看 | 日韩午夜小视频 | 国产一级高清 | 亚洲欧美激情精品一区二区 | 婷婷免费在线视频 | 日韩精品欧美一区 | 狠狠插狠狠操 | 玖草在线观看 | 久草在线视频免费资源观看 | 97视频总站 | 日韩黄色在线观看 | 久久久精品午夜 | 国产成人精品一区二区三区福利 | 国产一区二区三区视频在线 | 精品国产1区2区3区 国产欧美精品在线观看 | 一色屋精品视频在线观看 | 亚洲不卡在线 | 日韩在线资源 | 国产精品精品国产婷婷这里av | 久久精品三| 免费观看的黄色 | 在线观看日韩中文字幕 | 九九久久电影 | 久久久午夜精品理论片中文字幕 | 精品伦理一区二区三区 | 97福利社| 国产精品刺激对白麻豆99 | 91在线超碰 | 国产伦精品一区二区三区… | 欧美色图狠狠干 | 九九交易行官网 | 欧美日韩国产在线 | 久久天天躁夜夜躁狠狠85麻豆 | 欧美日韩国产在线 | 久久无码av一区二区三区电影网 | 在线观看免费成人av | 午夜免费福利片 | 亚洲国产免费看 | 国产精品嫩草55av | 久久综合九色99 | 麻豆一精品传二传媒短视频 | 久久久伊人网 | 丁香六月天 | 色999精品 | 在线观看成人国产 | 国产一区网 | 在线观看国产高清视频 | 久久精品男人的天堂 | 特级西西444www大精品视频免费看 | 在线av资源| 99夜色 | 六月色婷婷 | 国内久久久 | 久久免费视频播放 | 成人理论电影 | 韩日精品在线观看 | 成人综合婷婷国产精品久久免费 | 久久免费在线视频 | 色小说av | 欧美日韩免费一区二区三区 | 国产一区二区不卡视频 | 国内外成人免费在线视频 | 国产一区二区三区免费观看视频 | 欧美精品免费在线观看 | 91久久精品一区 | 欧美国产精品一区二区 | av久久在线 | 2023av| 97在线免费视频观看 | 五月婷网| 婷婷福利影院 | 日日操日日操 | 一级性av | 日本在线视频一区二区三区 | 欧美在线观看视频 | www免费在线观看 | 91视视频在线直接观看在线看网页在线看 | 超碰97在线资源 | 日本爱爱片 | 久久视频在线免费观看 | 91免费高清视频 | 香蕉久久国产 | 午夜少妇一区二区三区 | 欧美日韩午夜爽爽 | 亚洲国产资源 | 麻豆av电影 | 91原创在线观看 | 五月天久久狠狠 | 欧美日韩在线观看一区二区三区 | 99久久这里只有精品 | 一本大道久久精品懂色aⅴ 五月婷社区 | 亚洲国产午夜视频 | 欧美精品久久久久久久久久白贞 | 久久激情视频 久久 | 激情久久综合 | 国产做a爱一级久久 | 91九色视频在线 | 精品91在线 | 久久激情五月激情 | 精品免费观看视频 | 久久艹人人 | 911国产精品 | 中文字幕中文字幕在线中文字幕三区 | 99精品欧美一区二区三区黑人哦 | 精品国产黄色片 | 国产精品第三页 | 久久超级碰 | 久久激情精品 | 国产成人一区二区三区在线观看 | 91九色自拍 | www.天堂av| 狠狠色丁香久久婷婷综合丁香 | 国产麻豆精品95视频 | 欧美精品久久人人躁人人爽 | 五月综合激情婷婷 | 国产精品99久久久久久小说 | 久久99久久99精品免费看小说 | 亚洲精品乱码久久 | 狠狠狠狠狠狠干 | 国产一级做a爱片久久毛片a | 久久久国产精品一区二区三区 | 手机在线小视频 | 一区二区三区视频 | 日韩免费在线观看网站 | 波多野结衣在线视频免费观看 | 久草在线这里只有精品 | 亚洲精品黄网站 | 久草成人在线 | 99热99热 | www欧美色 | 黄a网| 欧美 另类 交 | 91免费网站在线观看 | 久久精品视频网站 | 国产成人黄色 | 又爽又黄又刺激的视频 | 99国产精品一区二区 | 国产福利a | 日韩理论在线观看 | 91精品久久久久久综合五月天 | 午夜久久久久久久久久影院 | 久操视频在线播放 | 国产精品一区二区在线免费观看 | 三上悠亚一区二区在线观看 | 国产精品v欧美精品v日韩 | 色a网| 九九热只有这里有精品 | 久久久久影视 | 国产小视频在线看 | 天天色天天射天天综合网 | 青青河边草免费视频 | 久久国产精品99久久久久久进口 | 亚洲成人免费观看 | 91中文字幕在线 | 国产一级精品在线观看 | 三级免费黄 | 成人在线观看资源 | 99亚洲精品视频 | 午夜久久影视 | 日本午夜免费福利视频 | 亚洲韩国一区二区三区 | 中文字幕乱码日本亚洲一区二区 | 中文字幕免费高 | 欧美日韩xxx | 人人插人人舔 | 国产精品成人久久 | 国产成人精品av在线观 | 久久噜噜少妇网站 | 国产热re99久久6国产精品 | 婷婷四房综合激情五月 | 日本精品一区二区三区在线播放视频 | 国产精品视频最多的网站 | 视频国产一区二区三区 | 蜜桃视频成人在线观看 | 国产免费三级在线观看 | 久久国产精品免费一区二区三区 | 天天躁天天狠天天透 | 亚洲黄色一级电影 | 久久99精品久久久久久久久久久久 | 色久天 | 91精品国产综合久久婷婷香蕉 | 欧美午夜a | 国产精品9999 | 免费观看版 | 亚洲精品国产日韩 | av 一区二区三区四区 | 天天色天天操天天爽 | 午夜精品视频一区 | 超碰97国产在线 | 日韩亚洲在线 | 欧美成年网站 | 在线日韩精品视频 | 日韩二区在线播放 | 国产高清av免费在线观看 | 久久99久久精品国产 | 成片人卡1卡2卡3手机免费看 | 日韩午夜在线观看 | 91亚洲精品国偷拍自产在线观看 | 亚洲乱亚洲乱妇 | 国产明星视频三级a三级点| 国产亚洲va综合人人澡精品 | 免费特级黄毛片 | 精品国产色 | 日日躁你夜夜躁你av蜜 | 亚洲午夜久久久久久久久久久 | 91欧美视频网站 | 伊人国产视频 | 成年人电影免费在线观看 | 97国产小视频| 免费观看国产视频 | 久久99网 | 五月婷婷色综合 | 在线探花 | 国产视频精品视频 | 久久av免费电影 | 在线观看不卡的av | 91传媒免费在线观看 | 免费麻豆网站 | 精品视频一区在线观看 | 草久在线观看 | 久久精品91久久久久久再现 | 欧美日韩中文国产一区发布 | 国精产品满18岁在线 | 亚洲国内精品在线 | 日韩精品视频免费在线观看 | 日韩视频一二三区 | 久久中文字幕导航 | 婷婷综合五月天 | 在线看岛国av | 亚洲精品一区二区在线观看 | 欧美日本不卡视频 | 最近日韩免费视频 | 色视频成人在线观看免 | 精品国产欧美一区二区 | 国产一区91| av丝袜制服 | 久久久伦理| www.少妇| 久久av中文字幕片 | 日韩免费视频观看 | 一本—道久久a久久精品蜜桃 | 91 在线视频播放 | 中文字幕二区在线观看 | 欧美在线视频不卡 | 中文字幕国产视频 | 在线观看av免费观看 | 国产一区二区三区久久久 | 国产中文字幕视频在线 | 一区 在线 影院 | 国产 中文 日韩 欧美 | 2000xxx影视| 国产香蕉视频在线观看 | 99r在线播放| 五月婷婷综合久久 | 免费看的黄色的网站 | 亚洲最大成人免费网站 | av导航福利 | 综合网天天射 | 激情综合色图 | 在线v片| 日日日干| 久久成人综合 | www亚洲视频 | 人人看人人做人人澡 | 亚洲福利精品 | 天天夜夜操 | 日韩在线观看网址 | 国产黄影院色大全免费 | 中文字幕色婷婷在线视频 | 国产精品成久久久久三级 | 综合色伊人 | 区一区二在线 | av成人免费在线看 | 久久一区二区三区国产精品 | 又黄又爽又色无遮挡免费 | 国产第一福利 | 久久久国产精华液 | 国产福利免费在线观看 | 一级黄视频| 91九色国产蝌蚪 | 亚洲h色精品 | 成人免费在线看片 | 精品成人免费 | 99亚洲精品视频 | 一区二区三区日韩在线观看 | 97看片网 | 久久精品牌麻豆国产大山 | 精品国内自产拍在线观看视频 | 一区二区三区精品在线视频 | 国产成人精品久久二区二区 | 精品一区在线 | 欧美专区国产专区 | 久久看免费视频 | 久久精美视频 | 视频成人| 九九九视频精品 | 国产视频在 | 最新日韩视频在线观看 | 69国产盗摄一区二区三区五区 | 日韩av免费观看网站 | 97在线观看视频免费 | 中文字幕免费不卡视频 | 国产裸体视频网站 | 麻豆成人小视频 | 天天鲁天天干天天射 | 久久专区 | a级一a一级在线观看 | 97超碰超碰 | 日韩精品久久久久久久电影99爱 | 国产视频在线看 | 亚洲女欲精品久久久久久久18 | 国产精品不卡在线 | 国产精品一区二区三区四 | 亚洲一区二区三区毛片 | 国产区在线| 天天操天天曰 | 91免费看黄| 亚洲欧美成人网 | 日韩欧美大片免费观看 | 日韩视频免费播放 | 在线免费观看黄色 | 青青河边草免费观看完整版高清 | 九九久久免费视频 | 日本深夜福利视频 | 国产精品视频你懂的 | 亚洲视频六区 | 免费视频一区 | 一级黄色网址 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产亚洲欧美一区 | av电影免费在线 | 不卡的av在线播放 | 婷婷色在线播放 | 国产在线视频导航 | 精品国产aⅴ麻豆 | 又湿又紧又大又爽a视频国产 | 国产日韩在线看 | 91热这里只有精品 | 日本乱码在线 | 又黄又爽又刺激 | 在线中文字幕av观看 | 友田真希av | 国产精品私拍 | www.干| 超碰97免费 | 欧美成人aa| 成人动漫视频在线 | 国产成人99av超碰超爽 | 久久久国产精品网站 | bbbbb女女女女女bbbbb国产 | 欧美一级黄色网 | 欧美日韩一区二区三区免费视频 | 四虎国产精品免费观看视频优播 | 能在线看的av | 一区二区三区动漫 | 亚洲毛片在线观看. | 视频一区在线播放 | 欧美日韩国产在线观看 | 91网在线看 | 狠狠色丁香久久婷婷综合丁香 | 在线观看一区二区视频 | 久久99国产视频 | 色视频在线观看 | 成年人app网址 | 少妇高潮流白浆在线观看 | 欧美日韩免费在线观看视频 | 日韩午夜在线播放 | 午夜精品一区二区三区在线视频 | 国产精品美女网站 | 欧美最猛性xxxxx免费 | 免费看久久 | 91成人在线观看高潮 | 久久av伊人 | 九九热视频在线 | 最新av网址在线观看 | www久久99| av大全在线看 | 国产一级片不卡 | 国产精在线 | 天天干天天操人体 | 亚洲国产精品传媒在线观看 | 欧美专区国产专区 | 日韩精品在线一区 | 国产人成一区二区三区影院 | 婷婷在线资源 | 婷婷成人亚洲综合国产xv88 | 精品久久久久久综合日本 | 色永久免费视频 | 成人黄色在线看 | 天天草天天 | 黄色视屏在线免费观看 | 在线国产精品视频 | 免费福利在线播放 | 丁香五婷| 99久久久久久国产精品 | 日韩在线视频免费看 | 亚洲最新合集 | 成人国产精品久久久 | 久久超| 久久成人高清 | 日韩午夜电影 | 亚洲精品视频在线观看视频 | www.天天干.com| 亚洲a成人v| 久久国产精品99精国产 | 91精品在线免费视频 | 婷婷五综合 | 91麻豆精品国产91久久久更新时间 | 999久久久免费精品国产 | 美女网站在线播放 | 久久免费电影网 | 18性欧美xxxⅹ性满足 | 欧美日韩国产精品一区二区三区 | 99热在线观看 | 亚洲香蕉在线观看 | 国内视频在线观看 | 免费av在线播放 | 国产+日韩欧美 | 美女啪啪图片 | 狠狠狠色丁香婷婷综合激情 | 国产精品成人久久久 | 黄色免费高清视频 | 亚洲区视频在线观看 | 国产在线理论片 | 婷婷视频 | 亚洲国产精品日韩 | 精品国产美女 | 日本黄色免费在线 | 91黄视频在线 | 丁香 久久 综合 | 亚洲欧美日本一区二区三区 | 久草电影在线 | 久久综合精品国产一区二区三区 | 超碰在线9 | 久久久久久高潮国产精品视 | 亚洲第一色 | 99re久久资源最新地址 | 激情网在线观看 | 国产区免费在线 | 亚洲专区欧美专区 | 久久久免费精品 | 香蕉视频在线免费看 | 五月婷婷六月丁香 | 久久久免费毛片 | 久久国产午夜精品理论片最新版本 | 99视频精品视频高清免费 | 91亚洲网| 亚洲精品国产第一综合99久久 | 91成人精品一区在线播放69 | 久久这里只有精品视频99 | 黄色小视频在线观看免费 | 成人性生交视频 | 国产精品久久久久久久久久新婚 | 国产亚洲欧洲 | 久久免费黄色网址 | 亚洲天堂视频在线 | 国产精品 久久 | 亚洲乱码精品久久久 | 国产麻豆剧传媒免费观看 | 99色国产| 成年人三级网站 | 国产成人一二三 | 欧美久久久久久久久中文字幕 | 日日操网 | 国产在线视频一区二区 | 99久久er热在这里只有精品66 | 国产精品毛片一区二区在线 | 国产视频手机在线 | 国产精品黄色在线观看 | 天天操天天摸天天爽 | 精品一区在线 | 美女精品久久久 | 国产成人一二三 | 中文字幕第一页av | 欧美日韩中文字幕在线视频 | 午夜视频亚洲 | 国产午夜三级一区二区三桃花影视 | 久久久久久久免费观看 | 久久久久免费观看 | 中文字幕av全部资源www中文字幕在线观看 | 亚洲动漫在线观看 | 欧美精品999| 午夜av色| 国产色就色 | av 一区 二区 久久 | 色多多在线观看 | 久久精品美女视频网站 | 色播五月激情五月 | 亚洲资源一区 | 久久精品国产一区 | 午夜免费福利视频 | 久久人人看 | 日韩欧美一区二区三区视频 | 麻豆影视在线播放 | 五月婷综合 | 久久人人97超碰精品888 | 8x成人在线| 一级一级一片免费 | 久久99精品久久只有精品 | 国产精品毛片完整版 | 国产精品一区久久久久 | 午夜视频免费在线观看 | 免费 在线 中文 日本 | 在线免费av观看 | 精品国产一区二区三区免费 | 久久66热这里只有精品 | 日韩啪啪小视频 | 国产免费三级在线观看 | 手机成人在线电影 | 亚洲综合最新在线 | 热久久在线视频 | 九色一区二区 | 欧美久久久久 | 成人国产精品免费观看 | 91av色| 视频在线在亚洲 | 日一日操一操 | 在线激情影院一区 | 狠狠躁18三区二区一区ai明星 | 日韩av伦理片 | 国产精品久久久久久久久久妇女 | 一区二区三区精品久久久 | av一级在线观看 | 亚洲国产成人av网 | 亚洲经典中文字幕 | 精品国产电影 | 日本精品视频在线观看 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 精品一区二三区 | 国产理论免费 | 在线导航av | 91久色蝌蚪 | 欧美在线视频免费 | 亚洲精品乱码久久久久v最新版 | 99久久精品国 | 亚洲专区欧美专区 | 国产精品第三页 | 日韩影视在线观看 | 国产成人黄色片 | 人人搞人人干 | 中文av字幕在线观看 | 日韩二区在线观看 | 韩日电影在线观看 | 国产美女精品人人做人人爽 | 在线观看视频一区二区 | 国产精品视频最多的网站 | 亚洲专区中文字幕 | 国产精品精品国产婷婷这里av | 成人一区电影 | 97超碰免费 | 亚洲精品乱码久久 | 日日夜夜免费精品 | 成人精品视频久久久久 | 91麻豆精品久久久久久 | 手机成人免费视频 | 久久久久久国产一区二区三区 | ww亚洲ww亚在线观看 | 精品999在线 | 伊人中文字幕在线 | 国内精品二区 | 午夜免费久久看 | 国产成人综合图片 | 狠狠躁日日躁狂躁夜夜躁 | 中文字幕成人av | 天天干天天拍天天操 | 精品久久久久久久久久久院品网 | 久草视频资源 | 日本中文字幕久久 | 精品人人爽 | 日韩网站在线免费观看 | 欧美一级片免费 | 免费福利小视频 | 亚洲天堂首页 | 97色在线观看免费视频 | 欧美一级片在线观看视频 | 婷婷狠狠操 | 在线国产黄色 | 欧美乱熟臀69xxxxxx | 亚洲精品日韩在线观看 | 国产精品欧美 | 久草视频在线资源站 | 久久午夜色播影院免费高清 | 国产 在线 高清 精品 | 天天操夜夜爱 | 91桃色在线观看视频 | 久久国产精品二国产精品中国洋人 | 日本在线中文在线 | 国产精品久久久久毛片大屁完整版 | 免费看污网站 | 精品国产一二三 | 超级碰碰碰碰 | 日本三级香港三级人妇99 | 国产黄在线 | 色综合久久88色综合天天免费 | 久久精品2 | 色资源网在线观看 | 日本最新中文字幕 | 欧美成人猛片 | 免费看一级片 | 精品福利网 | 亚洲成色777777在线观看影院 | 一级做a爱片性色毛片www | 成人久久久精品国产乱码一区二区 | 日韩精品中文字幕在线不卡尤物 | 天天干天天干天天色 | 国产中文字幕在线观看 | 久久av伊人 | av电影免费| 国产日产av | 在线99视频 | 一区二区影视 | 成人午夜电影久久影院 | 丁香婷婷激情五月 | 五月天伊人 | 中文字幕一区二区三区久久 | 美女在线观看网站 | 91欧美视频网站 | 狠狠色狠狠色综合系列 | 精品国产欧美 | 日韩色综合网 | 伊人手机在线 | 久99久精品 | 91探花系列在线播放 | 在线观看完整版 | 亚洲经典在线 | 天天综合网天天 | 国产成人99久久亚洲综合精品 | 日韩在线资源 | 日日摸日日添日日躁av | 四虎在线观看精品视频 | 日本在线观看一区 | 99久久99久久精品免费 | 中文字幕日韩无 | 国产成人三级一区二区在线观看一 | 亚洲1区 在线 | 手机av电影在线观看 |