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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javac源码简单分析之解析和填充符号表

發布時間:2023/12/16 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javac源码简单分析之解析和填充符号表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、說明

符號表是由一組符號地址和符號信息構成的表格。符號表中所登記的信息在編譯的不同階段都要用到,在語義分析(后面的步驟)中,符號表所登記的內容將用于語義檢查和產生中間代碼,在目標代碼生成階段,黨對符號名進行地址分配時,符號表是地址分配的依據。


二、主要的類與方法

解析和填充符號表這個過程主要由com.sun.tools.javac.comp.Entry及com.sun.tools.javac.comp.MemberEnter兩個類來實現的。 ?


? ?

com.sun.tools.javac.comp.Entry 主要的方法如下:

/*** 訪問類聲明*/public void visitClassDef(JCClassDecl tree) {Symbol owner = env.info.scope.owner;Scope enclScope = enterScope(env);ClassSymbol c;if (owner.kind == PCK) {// We are seeing a toplevel class.PackageSymbol packge = (PackageSymbol)owner;for (Symbol q = packge; q != null && q.kind == PCK; q = q.owner)q.flags_field |= EXISTS;c = reader.enterClass(tree.name, packge);packge.members().enterIfAbsent(c);if ((tree.mods.flags & PUBLIC) != 0 && !classNameMatchesFileName(c, env)) {log.error(tree.pos(),"class.public.should.be.in.file", tree.name);}} else {if (tree.name.len != 0 &&!chk.checkUniqueClassName(tree.pos(), tree.name, enclScope)) {result = null;return;}if (owner.kind == TYP) {// We are seeing a member class.c = reader.enterClass(tree.name, (TypeSymbol)owner);if ((owner.flags_field & INTERFACE) != 0) {tree.mods.flags |= PUBLIC | STATIC;}} else {// We are seeing a local class.c = reader.defineClass(tree.name, owner);c.flatname = chk.localClassName(c);if (c.name.len != 0)chk.checkTransparentClass(tree.pos(), c, env.info.scope);}}tree.sym = c;// Enter class into `compiled' table and enclosing scope.if (chk.compiled.get(c.flatname) != null) {duplicateClass(tree.pos(), c);result = new ErrorType(tree.name, (TypeSymbol)owner);tree.sym = (ClassSymbol)result.tsym;return;}chk.compiled.put(c.flatname, c);enclScope.enter(c);// Set up an environment for class block and store in `typeEnvs'// table, to be retrieved later in memberEnter and attribution.Env<AttrContext> localEnv = classEnv(tree, env);typeEnvs.put(c, localEnv);// Fill out class fields.c.completer = memberEnter;c.flags_field = chk.checkFlags(tree.pos(), tree.mods.flags, c, tree);c.sourcefile = env.toplevel.sourcefile;c.members_field = new Scope(c);ClassType ct = (ClassType)c.type;if (owner.kind != PCK && (c.flags_field & STATIC) == 0) {// We are seeing a local or inner class.// Set outer_field of this class to closest enclosing class// which contains this class in a non-static context// (its "enclosing instance class"), provided such a class exists.Symbol owner1 = owner;while ((owner1.kind & (VAR | MTH)) != 0 &&(owner1.flags_field & STATIC) == 0) {owner1 = owner1.owner;}if (owner1.kind == TYP) {ct.setEnclosingType(owner1.type);}}// Enter type parameters.ct.typarams_field = classEnter(tree.typarams, localEnv);// Add non-local class to uncompleted, to make sure it will be// completed later.if (!c.isLocal() && uncompleted != null) uncompleted.append(c); // System.err.println("entering " + c.fullname + " in " + c.owner);//DEBUG// Recursively enter all member classes.classEnter(tree.defs, localEnv);result = c.type;}/** Main method: enter all classes in a list of toplevel trees.* @param trees The list of trees to be processed.*/public void main(List<JCCompilationUnit> trees) {complete(trees, null);}/*** Main method: enter one class from a list of toplevel trees and* place the rest on uncompleted for later processing.* @param trees The list of trees to be processed.* @param c The class symbol to be processed.*/public void complete(List<JCCompilationUnit> trees, ClassSymbol c) {annotate.enterStart();ListBuffer<ClassSymbol> prevUncompleted = uncompleted;if (memberEnter.completionEnabled) uncompleted = new ListBuffer<ClassSymbol>();try {// enter all classes, and construct uncompleted listclassEnter(trees, null);// complete all uncompleted classes in memberEnterif (memberEnter.completionEnabled) {while (uncompleted.nonEmpty()) {ClassSymbol clazz = uncompleted.next();if (c == null || c == clazz || prevUncompleted == null)clazz.complete();else//將類符號放入prevUncompleted列表(uncompleted列表)prevUncompleted.append(clazz);}// if there remain any unimported toplevels (these must have// no classes at all), process their import statements as well./*** uncompleted列表沒有的符號(除類符號外),根據improt聲明,給頂級抽象樹都添加了一個MemberEnter對象* 這些符號(包括類的參數類型符號也就是泛型、父類符號、接口類型符等)*/for (JCCompilationUnit tree : trees) {if (tree.starImportScope.elems == null) {JavaFileObject prev = log.useSource(tree.sourcefile);Env<AttrContext> env = typeEnvs.get(tree);if (env == null)env = topLevelEnv(tree);memberEnter.memberEnter(tree, env);log.useSource(prev);}}}} finally {//prevUncompleted列表賦值給uncompleted列表uncompleted = prevUncompleted;annotate.enterDone();}}

com.sun.tools.javac.comp.MemberEnter 主要的方法如下:

/** Complete entering a class.* 將未處理列表中的所有符號都解析到各自的類符號表中* @param sym The symbol of the class to be completed.*/public void complete(Symbol sym) throws CompletionFailure {// Suppress some (recursive) MemberEnter invocationsif (!completionEnabled) {// Re-install same completer for next time around and return.assert (sym.flags() & Flags.COMPOUND) == 0;sym.completer = this;return;}ClassSymbol c = (ClassSymbol)sym;ClassType ct = (ClassType)c.type;Env<AttrContext> env = enter.typeEnvs.get(c);JCClassDecl tree = (JCClassDecl)env.tree;boolean wasFirst = isFirst;isFirst = false;JavaFileObject prev = log.useSource(env.toplevel.sourcefile);try {// Save class environment for later member enter (2) processing.halfcompleted.append(env);// If this is a toplevel-class, make sure any preceding import// clauses have been seen.if (c.owner.kind == PCK) {memberEnter(env.toplevel, env.enclosing(JCTree.TOPLEVEL));todo.append(env);}// Mark class as not yet attributed.c.flags_field |= UNATTRIBUTED;if (c.owner.kind == TYP)c.owner.complete();// create an environment for evaluating the base clausesEnv<AttrContext> baseEnv = baseEnv(tree, env);// Determine supertype.Type supertype =(tree.extending != null)? attr.attribBase(tree.extending, baseEnv, true, false, true): ((tree.mods.flags & Flags.ENUM) != 0 && !target.compilerBootstrap(c))? attr.attribBase(enumBase(tree.pos, c), baseEnv,true, false, false): (c.fullname == names.java_lang_Object)? Type.noType: syms.objectType;ct.supertype_field = supertype;// Determine interfaces.ListBuffer<Type> interfaces = new ListBuffer<Type>();Set<Type> interfaceSet = new HashSet<Type>();List<JCExpression> interfaceTrees = tree.implementing;if ((tree.mods.flags & Flags.ENUM) != 0 && target.compilerBootstrap(c)) {// add interface Comparable<T>interfaceTrees =interfaceTrees.prepend(make.Type(new ClassType(syms.comparableType.getEnclosingType(),List.of(c.type),syms.comparableType.tsym)));// add interface SerializableinterfaceTrees =interfaceTrees.prepend(make.Type(syms.serializableType));}for (JCExpression iface : interfaceTrees) {Type i = attr.attribBase(iface, baseEnv, false, true, true);if (i.tag == CLASS) {interfaces.append(i);chk.checkNotRepeated(iface.pos(), types.erasure(i), interfaceSet);}}if ((c.flags_field & ANNOTATION) != 0)ct.interfaces_field = List.of(syms.annotationType);elsect.interfaces_field = interfaces.toList();if (c.fullname == names.java_lang_Object) {if (tree.extending != null) {chk.checkNonCyclic(tree.extending.pos(),supertype);ct.supertype_field = Type.noType;}else if (tree.implementing.nonEmpty()) {chk.checkNonCyclic(tree.implementing.head.pos(),ct.interfaces_field.head);ct.interfaces_field = List.nil();}}// Annotations.// In general, we cannot fully process annotations yet, but we// can attribute the annotation types and then check to see if the// @Deprecated annotation is present.attr.attribAnnotationTypes(tree.mods.annotations, baseEnv);if (hasDeprecatedAnnotation(tree.mods.annotations))c.flags_field |= DEPRECATED;annotateLater(tree.mods.annotations, baseEnv, c);attr.attribTypeVariables(tree.typarams, baseEnv);chk.checkNonCyclic(tree.pos(), c.type);/*** 增加一個默認的構造方法(當類沒有構造方法時)*/if ((c.flags() & INTERFACE) == 0 &&!TreeInfo.hasConstructors(tree.defs)) {List<Type> argtypes = List.nil();List<Type> typarams = List.nil();List<Type> thrown = List.nil();long ctorFlags = 0;boolean based = false;if (c.name.len == 0) {JCNewClass nc = (JCNewClass)env.next.tree;if (nc.constructor != null) {Type superConstrType = types.memberType(c.type,nc.constructor);argtypes = superConstrType.getParameterTypes();typarams = superConstrType.getTypeArguments();ctorFlags = nc.constructor.flags() & VARARGS;if (nc.encl != null) {argtypes = argtypes.prepend(nc.encl.type);based = true;}thrown = superConstrType.getThrownTypes();}}JCTree constrDef = DefaultConstructor(make.at(tree.pos), c,typarams, argtypes, thrown,ctorFlags, based);tree.defs = tree.defs.prepend(constrDef);}// If this is a class, enter symbols for this and super into// current scope.if ((c.flags_field & INTERFACE) == 0) {VarSymbol thisSym =new VarSymbol(FINAL | HASINIT, names._this, c.type, c);thisSym.pos = Position.FIRSTPOS;env.info.scope.enter(thisSym);if (ct.supertype_field.tag == CLASS) {VarSymbol superSym =new VarSymbol(FINAL | HASINIT, names._super,ct.supertype_field, c);superSym.pos = Position.FIRSTPOS;env.info.scope.enter(superSym);}}// check that no package exists with same fully qualified name,// but admit classes in the unnamed package which have the same// name as a top-level package.if (checkClash &&c.owner.kind == PCK && c.owner != syms.unnamedPackage &&reader.packageExists(c.fullname)){log.error(tree.pos, "clash.with.pkg.of.same.name", c);}} catch (CompletionFailure ex) {chk.completionError(tree.pos(), ex);} finally {log.useSource(prev);}// Enter all member fields and methods of a set of half completed// classes in a second phase.if (wasFirst) {try {while (halfcompleted.nonEmpty()) {finish(halfcompleted.next());}} finally {isFirst = true;}// commit pending annotationsannotate.flush();}}

三、過程及簡單源碼解析

Enter過程中,編譯器會找到當前范圍(enclosing scope)中發現的所有的定義(definitions),并且把這些定義注冊成符號(symbols)。
Enter又分為以下兩個階段:


第一個階段:



編譯器會注冊所有類的符號,并且把這寫符號和相應的范圍(scope)聯系在一起。實現方法是使用一個Visitor(訪問者)類,由上而下的遍歷AST(抽象語法樹),訪問所有的類,包括類里面的內部類。Enter給每一個類的符號都添加了一個MemberEnter對象,這個對象是由第二個階段來調用的。
?

整個操作的方法調用過程如下:




上面這個過程是訪問者模式的一種實現。
Enter是一個JCTree.Visitor.Enter.classEnter(l.head, env)調用JCTree.accept(Visitor v),而accept方法又是調用的Visitor類里面的visitXXX()方法,而這些方法的實現又是在Enter類中。也就是Enter.visitClassDef(JCClassDecl tree)方法,在這個方法中,會將類符號放入uncompleted列表;?


visitClassDef(JCClassDecl tree)方法主要做三件事:

1、將類符號(當前類)填入類自身的符號表,添加了一個MemberEnter對象
? ? ? ?

// Enter class into `compiled' table and enclosing scope.if (chk.compiled.get(c.flatname) != null) {duplicateClass(tree.pos(), c);result = new ErrorType(tree.name, (TypeSymbol)owner);tree.sym = (ClassSymbol)result.tsym;return;}chk.compiled.put(c.flatname, c);enclScope.enter(c);// Set up an environment for class block and store in `typeEnvs'// table, to be retrieved later in memberEnter and attribution.Env<AttrContext> localEnv = classEnv(tree, env);typeEnvs.put(c, localEnv);// Fill out class fields.c.completer = memberEnter;c.flags_field = chk.checkFlags(tree.pos(), tree.mods.flags, c, tree);c.sourcefile = env.toplevel.sourcefile;c.members_field = new Scope(c);


2、解析填寫其它的類符號,包括當前類中使用到的內部類、枚舉、變量等抽象樹的類符號。
// Enter type parameters.ct.typarams_field = classEnter(tree.typarams, localEnv);



3、將類符號放入uncompleted列表
? ? ? ?? if (!c.isLocal() && uncompleted != null) uncompleted.append(c);




Enter給每一個類的符號都添加了一個MemberEnter對象,這個對象是由第二個階段來調用的。
memberEnter.memberEnter(tree, env);

第二個階段:



這些類被MemberEnter對象所完成(completed,即完成類的成員變量的Enter)。首先,MemberEnter決定一個類的參數,父類和接口。然后這些符號被添加進了類的范圍中。不像前一個步驟,這個步驟是懶惰執行的。類的成員只有在被訪問時,才加入類的定義中的。這里的實現,是通過安裝一個完成對象(member object)到類的符號中。這些對象可以在需要時調用memberEnter。



整個操作的方法調用過程如下:



Enter是一個JCTree.Visitor.Enter.classEnter(l.head, env)調用JCTree.accept(Visitor v),而accept方法又是調用的Visitor類里面的visitXXX()方法,而這些方法的實現又是在Enter類中。也就是Enter.visitClassDef(JCClassDecl tree)方法,在這個方法中,會將類符號解析和填入類自身的符號表。




最后,enter把所有的頂層類(top-level classes)放到一個todo-queue中。


總結

以上是生活随笔為你收集整理的Javac源码简单分析之解析和填充符号表的全部內容,希望文章能夠幫你解決所遇到的問題。

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

色狠狠综合天天综合综合 | 久草网视频 | 国产成人精品综合 | 国产精品女视频 | 在线观看小视频 | 日韩免费视频观看 | 国产一区二区免费在线观看 | 西西444www大胆无视频 | 婷婷色av | 久久a v视频| 激情欧美日韩一区二区 | av午夜电影 | 久久国产精品一国产精品 | 亚洲精品啊啊啊 | av成人动漫 | 国产精品免费成人 | 免费观看成人网 | 又色又爽又黄高潮的免费视频 | 一区二区在线不卡 | 精壮的侍卫呻吟h | 亚洲在线不卡 | 免费看的黄色片 | 国产精品久久久久久爽爽爽 | 亚洲 欧美 日韩 综合 | 99在线免费观看视频 | 精品国产欧美一区二区三区不卡 | 日日激情 | 天天视频色| 亚洲精品免费视频 | 亚洲在线视频观看 | 久久国产影视 | 中文字幕在线免费看 | 国产精品久久久久久久久久久久午夜 | 色综合天天做天天爱 | 久色小说 | 看毛片的网址 | 成人宗合网 | 日本久久久影视 | 91av蜜桃 | 国产片网站 | 在线观看国产中文字幕 | 超碰97国产 | 欧美久久久久久久久久久久 | 黄网站app在线观看免费视频 | 欧美少妇xx | 中文十次啦 | 国产午夜精品一区二区三区欧美 | 欧美一级视频在线观看 | 欧美精品v国产精品v日韩精品 | 国产成人精品一区二 | 99精品欧美一区二区三区黑人哦 | 欧美久久九九 | 日日干夜夜草 | 久久精品日产第一区二区三区乱码 | 国产精品99久久久精品 | 九九天堂| 色狠狠综合天天综合综合 | 精品久久精品久久 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 99精品福利视频 | 中文字幕91视频 | av一级在线 | 中文国产成人精品久久一 | 色综合久久精品 | 国产精品久久网 | 久久婷婷色综合 | 欧美福利精品 | 激情五月播播久久久精品 | 色黄www小说 | 色天天天| 欧美精品免费在线观看 | 国产无套精品久久久久久 | 日韩色爱 | 亚洲欧洲精品视频 | 99精品在线视频观看 | 欧美成人视 | 欧美日韩精品在线播放 | 久久久久国产精品www | 国产精品s色 | 国产一区二区三区视频在线 | 狠狠狠干| 偷拍区另类综合在线 | 久久99国产一区二区三区 | 视频直播国产精品 | 免费在线播放黄色 | 亚洲精品中文在线观看 | 在线欧美日韩 | 五月天伊人网 | 久热电影 | 九九久久久久久久久激情 | 最新中文字幕在线播放 | 日韩午夜在线 | 婷婷亚洲综合五月天小说 | 国产女人40精品一区毛片视频 | 国产精品久久久久久久久费观看 | 在线视频久久 | 欧美网站黄色 | 日日麻批40分钟视频免费观看 | 一区二区三区福利 | 91亚洲精品在线观看 | 国产精品一区二区 91 | 国产精品69av | 日韩欧美高清一区二区三区 | avav片| 欧美日韩xx| 国产在线观看免费 | 日本99热| 草久久久久久 | 亚洲激情视频在线 | 亚洲成人中文在线 | 中文字幕一区2区3区 | 国产+日韩欧美 | av天天干 | 亚洲天堂色婷婷 | 欧美日韩超碰 | 中文在线免费观看 | 亚洲天堂免费视频 | 92精品国产成人观看免费 | 亚洲综合色激情五月 | 日韩精品在线观看av | 香蕉网址| 国产精品专区h在线观看 | 欧美激情精品久久久久久变态 | 免费福利视频导航 | 国产高清精 | 国产黄免费看 | 久久久免费精品 | 在线观看v片| 日韩aⅴ视频| 91九色视频在线 | 精品久久久久久国产偷窥 | 日日摸日日爽 | 一本一道久久a久久精品蜜桃 | 日韩免费在线视频 | 蜜臀久久99精品久久久无需会员 | 97免费在线观看视频 | 国产又粗又猛又黄视频 | 99久久婷婷国产一区二区三区 | 久久综合欧美精品亚洲一区 | 81国产精品久久久久久久久久 | 日本久久久久久科技有限公司 | 97视频网站 | 久久精品国产免费看久久精品 | 国产精品久久久久亚洲影视 | 国产裸体无遮挡 | 日本成人黄色片 | 国产剧情在线一区 | 日韩免费看片 | 日韩理论片在线观看 | 国产成人一区二区三区免费看 | 午夜婷婷网 | 国产精品日韩在线播放 | 日韩超碰在线 | 一级成人免费视频 | 亚洲精品午夜视频 | 久久久精品免费观看 | 久久久久久国产一区二区三区 | 18女毛片| 国产精品久久久久免费a∨ 欧美一级性生活片 | 日日日干 | 成人久久国产 | 午夜精品视频在线 | 国产高清中文字幕 | 国产精品久久久999 国产91九色视频 | 激情欧美国产 | 黄色片视频在线观看 | 99人成在线观看视频 | 丝袜美腿在线播放 | 一级a性色生活片久久毛片波多野 | 久久久伦理 | 夜夜骑日日操 | 欧美在线aaa| 天天插综合网 | 久草在线观看视频免费 | 免费av电影网站 | 久草在线免 | 日日麻批40分钟视频免费观看 | 天天综合网天天综合色 | 欧美视频在线二区 | 欧美在线久久 | 欧美视频二区 | 久久99久国产精品黄毛片入口 | 久久精品二区 | 一级a性色生活片久久毛片波多野 | 黄av在线 | 中文字幕亚洲在线观看 | 激情欧美国产 | 午夜三级在线 | 欧美高清成人 | 高清不卡一区二区在线 | 色综合天天色 | 国产一区二区在线观看视频 | 日韩av网站在线播放 | 伊人狠狠| 国产亚洲精品综合一区91 | 香蕉视频91 | 中文字幕亚洲欧美日韩2019 | 久久九九精品久久 | 中文字幕国产精品一区二区 | 久久久久国产精品一区 | 婷婷网址| 成人av电影在线观看 | 成片人卡1卡2卡3手机免费看 | 国产精品欧美久久 | 3d黄动漫免费看 | 色婷丁香 | 成人久久久久久久久 | 亚洲理论电影网 | 久久伊人操| 欧美激情在线看 | 久久九九视频 | 黄污网站在线 | 中国精品少妇 | 91免费试看 | 亚洲精品电影在线 | 日韩亚洲国产中文字幕 | 日韩一区精品 | 精品国产_亚洲人成在线 | 欧美成人精品欧美一级乱 | 国产做爰视频 | aaa日本高清在线播放免费观看 | 成人久久久久久久久久 | 国产精品久久电影网 | 国际精品久久久 | 在线观看色网 | 伊人黄色网 | 日韩免费观看视频 | 美腿丝袜av | 欧美一级视频在线观看 | 亚洲欧洲一级 | 久久综合色8888 | 日韩精选在线 | 久久av影视 | 狠狠色丁香久久婷婷综合_中 | 96视频免费在线观看 | 午夜精品一二区 | 日韩一级成人av | 日韩区欠美精品av视频 | 亚洲免费一级 | 国产视频一区二区在线播放 | 久久免费视频在线 | 国产一级视频在线免费观看 | 中文字幕观看av | 精品国产一区二区三区男人吃奶 | 欧美aⅴ在线观看 | 99精品偷拍视频一区二区三区 | 精品国产美女 | 人人模人人爽 | 狠狠狠色丁香婷婷综合激情 | 99久高清在线观看视频99精品热在线观看视频 | 92精品国产成人观看免费 | 黄色app网站在线观看 | 国产一级免费视频 | 天天曰天天射 | 在线精品视频免费播放 | 精品国产一区二区三区在线观看 | 2024av| 午夜国产一区二区三区四区 | 开心综合网 | 99精品视频免费观看 | 久久少妇 | 中文字幕区 | 天天射天天操天天 | 天天天综合网 | 亚洲一区在线看 | 日韩高清在线一区二区三区 | 成人久久精品视频 | 国产午夜精品在线 | 欧美日韩二区三区 | 99久精品 | 国产精品美女www爽爽爽视频 | 日韩久久电影 | 日韩欧美视频在线免费观看 | 一级片色播影院 | www.天天色.com | 四虎国产精品成人免费影视 | 国产精品视频在线看 | 天天干天天弄 | 国产又黄又猛又粗 | 久久99精品国产麻豆婷婷 | 91色在线观看 | 久久亚洲欧美日韩精品专区 | 国产伦精品一区二区三区高清 | 99精品视频一区 | 五月婷婷操 | 欧美一区二区精美视频 | www.777奇米 | 一区 二区电影免费在线观看 | 黄色电影网站在线观看 | 亚洲欧美日韩精品久久久 | 久热香蕉视频 | 亚洲天堂免费视频 | av黄色免费在线观看 | 亚洲精品美女在线观看播放 | 亚洲美女久久 | 蜜桃av久久久亚洲精品 | 在线免费国产视频 | 天天曰夜夜爽 | 91精品一区二区三区蜜桃 | 2019中文最近的2019中文在线 | 最近中文字幕免费大全 | av一区二区三区在线播放 | 91综合久久一区二区 | 在线观看mv的中文字幕网站 | 国产特级毛片aaaaaa | 四虎免费在线观看 | 91精品福利在线 | 中文字幕在线观看视频一区 | 久久国产高清视频 | 男女免费视频观看 | 97超碰伊人| 国产精品一区二区久久精品爱微奶 | 波多野结衣一区三区 | 免费a级大片 | 国产婷婷精品 | 午夜视频色 | 久久久久久久久久久久国产精品 | 国产免费av一区二区三区 | a级国产乱理论片在线观看 特级毛片在线观看 | 91成年人在线观看 | 夜夜夜夜爽 | 日韩簧片在线观看 | 精品色综合 | 亚洲免费永久精品国产 | 夜夜视频资源 | 日本中文不卡 | 91亚洲永久精品 | 国产一区二区三区在线免费观看 | 天天爱综合 | 人人射av | 日本xxxx.com| 国产一区二区在线视频观看 | 天天玩天天干 | 精品国产区在线 | 成人免费视频网站 | 色婷婷99 | 久久天天躁夜夜躁狠狠85麻豆 | 精品主播网红福利资源观看 | 在线免费中文字幕 | 少妇搡bbb | 17婷婷久久www | 国产美女黄网站免费 | 亚洲第一中文字幕 | 亚洲欧美怡红院 | 国产在线美女 | 色插综合 | 97在线精品国自产拍中文 | 在线免费观看黄网站 | 国产成人精品一区一区一区 | 99久久99| 日韩在线观看的 | 国产精品乱码久久 | 日韩av影视在线观看 | 欧美精品做受xxx性少妇 | 中文字幕专区高清在线观看 | 欧美日韩在线视频一区 | 天天综合视频在线观看 | 成年一级片 | 久久超碰免费 | 国产99精品 | 五月婷婷丁香色 | 欧美国产日韩一区二区三区 | 中文字幕色婷婷在线视频 | 麻豆一二三精选视频 | .国产精品成人自产拍在线观看6 | 色婷婷亚洲综合 | 人人超碰人人 | 超碰在线cao| 麻豆传媒在线免费看 | 欧美黄污视频 | 特级毛片网站 | 丁香激情综合久久伊人久久 | 天天曰天天干 | 狠狠色噜噜狠狠狠狠2022 | 黄色一级大片在线免费看国产一 | 99精品视频在线播放观看 | 欧美亚洲成人xxx | 手机在线观看国产精品 | 久久中文字幕导航 | 欧美日性视频 | 毛片网站在线看 | 伊人资源站 | 99r在线视频 | 国产亚洲精品成人av久久影院 | 国产精品国产自产拍高清av | 伊人色综合网 | 天天搞天天干天天色 | 免费在线观看污 | 久久免费视频这里只有精品 | 99人成在线观看视频 | 亚洲香蕉视频 | 国产91九色蝌蚪 | 99re久久资源最新地址 | 色就色,综合激情 | 色综合亚洲精品激情狠狠 | 九九免费精品视频在线观看 | 国产又黄又爽无遮挡 | 久久久精品亚洲 | 一区二区三区四区免费视频 | 99精品国产一区二区三区不卡 | 国产成人精品久久久久蜜臀 | 日本巨乳在线 | 久久草在线精品 | 亚洲国产日韩一区 | 97av在线视频 | 久久99国产精品 | 久久久久免费观看 | 精品一区二区在线免费观看 | 国产97在线视频 | 日韩欧美高清 | 91精品国产九九九久久久亚洲 | www久| 九九免费在线视频 | 免费看的黄色网 | 911av视频 | 在线欧美中文字幕 | 日韩精品免费一区二区三区 | 干干夜夜| 亚色视频在线观看 | 永久免费视频国产 | 久章草在线 | 中文字幕在线观看亚洲 | 欧美一区免费观看 | 日韩a级黄色片 | 99热这里只有精品1 av中文字幕日韩 | 免费人成在线观看 | 国产亚洲va综合人人澡精品 | 国产色视频一区二区三区qq号 | 国产黄色成人av | 久久国产影院 | 欧美精品做受xxx性少妇 | 草久久精品 | 日本午夜在线观看 | 99免费在线观看视频 | 乱子伦av| 毛片99| h动漫中文字幕 | 亚洲国产欧洲综合997久久, | 天天干天天操天天拍 | 伊人在线视频 | 国产91精品一区二区麻豆网站 | www夜夜| 久久久久久久久爱 | 日韩精品一区二区三区免费观看视频 | 五月婷婷影视 | 欧美精品乱码久久久久久按摩 | 日韩成人高清在线 | 黄网站免费久久 | 免费瑟瑟网站 | 91一区啪爱嗯打偷拍欧美 | 日韩aⅴ视频 | 久久伊人免费视频 | 久久综合九色综合欧美就去吻 | 欧美色综合天天久久综合精品 | 特级大胆西西4444www | 国产精品第三页 | 天天操天天摸天天干 | 午夜神马福利 | 在线视频久 | 99久久精品久久久久久动态片 | 五月婷婷香蕉 | 日韩在线色视频 | 麻豆视频大全 | 日韩精品中文字幕在线观看 | 超碰在线9| www.黄色片.com| 国产在线97 | av成人免费在线看 | 免费在线观看av网站 | 五月婷婷操| 日韩精品播放 | 国产精品video | 一级免费黄视频 | 在线观看激情av | 久久精品综合视频 | 2023国产精品自产拍在线观看 | 999久久久久久久久6666 | 伊人黄| 欧美va在线观看 | 亚洲网久久| 免费人成在线观看网站 | 久久爱影视i | 99精品在线免费视频 | 在线观看黄色免费视频 | 久在线 | 亚洲在线a | 91视频在线免费看 | 五月天丁香综合 | 国产男女爽爽爽免费视频 | 久久久久久国产一区二区三区 | 久久久久区| 成年美女黄网站色大片免费看 | 欧美一级乱黄 | 国产精品欧美日韩 | 国产香蕉久久 | 久久精品艹| 久久久久久蜜av免费网站 | 99免费在线播放99久久免费 | 久久精品国产亚洲 | 亚洲成人软件 | 中文 一区二区 | 欧美精品一区二区三区一线天视频 | 精品一区二区在线看 | 国产免费一区二区三区最新6 | 国产伦精品一区二区三区照片91 | 国产精品成人自产拍在线观看 | 日韩av影片在线观看 | 国产自制av | 国产精品大尺度 | 成人黄在线 | 久久久亚洲国产精品麻豆综合天堂 | 91精品国产一区二区三区 | 欧美一区免费在线观看 | 人人看人人做人人澡 | 国产一区欧美日韩 | 成人免费观看视频网站 | 爱干视频 | 欧美激情综合网 | 国产在线不卡视频 | 国产免费片 | 99草视频 | 婷婷深爱网| 国产精品av久久久久久无 | 六月丁香激情综合 | 六月色丁香 | 美女网色| 精品伊人久久久 | 在线日韩精品视频 | 色综合久久久久 | 瑞典xxxx性hd极品 | 8x成人免费视频 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲电影一区二区 | 97夜夜澡人人双人人人喊 | 亚洲午夜久久久久久久久久久 | 男女靠逼app| 久久96国产精品久久99软件 | 一区 二区 精品 | 日韩欧美综合精品 | 一本一道久久a久久综合蜜桃 | 欧美性生交大片免网 | 国产成人精品一区二区三区免费 | 在线看一区 | 成人影视免费看 | 视频一区二区免费 | 成人免费观看网站 | 黄网站大全 | 欧美一级黄色视屏 | 黄色的网站在线 | 日韩欧美一区二区三区黑寡妇 | 国产视频精品免费 | 亚洲另类视频 | 丁香六月色 | 在线视频观看亚洲 | 婷香五月 | 在线三级播放 | 午夜久久 | 免费一级日韩欧美性大片 | 国产成人1区 | 在线观看国产永久免费视频 | 2020天天干天天操 | 日韩一二三区不卡 | 国产精品久久久久久麻豆一区 | 久久国产精品99久久久久久老狼 | 成人小电影在线看 | 18av在线视频 | 91免费看片黄| 国精产品一二三线999 | 欧美天天综合网 | 午夜成人影视 | 亚洲国产资源 | 婷婷婷国产在线视频 | 欧美大片第1页 | 国产精品高清一区二区三区 | 久久免费一级片 | 黄色a在线观看 | 在线免费成人 | 成人午夜精品久久久久久久3d | 亚洲资源在线网 | 日韩高清一区在线 | 黄污污网站| 免费看的黄色 | 超碰在线人 | 久久免费看av| 国产精品岛国久久久久久久久红粉 | 日韩久久网站 | 国产精品专区在线 | 日韩精品视频久久 | 一区二区视频在线播放 | 精品久久久久久亚洲综合网 | 黄色精品一区二区 | 九九精品视频在线观看 | 少妇bbb好爽| 最近中文国产在线视频 | 99久久婷婷国产精品综合 | 国产99久久精品一区二区永久免费 | 激情五月伊人 | 91专区在线观看 | 在线观看黄色的网站 | 久久久国产影院 | 天天干,天天射,天天操,天天摸 | 91丨九色丨国产女 | 午夜精品久久久久久久久久 | 国产色综合天天综合网 | 97av超碰| 久久激情小说 | 日韩理论电影在线观看 | av在线影视 | 国产一区免费观看 | 91精品国产91久久久久久三级 | 色99网| 亚洲少妇影院 | 色在线免费观看 | 久久免费在线观看视频 | 91传媒视频在线观看 | av电影一区 | 成人av片免费看 | 国产精品女主播一区二区三区 | 一级片免费观看视频 | 欧美 亚洲 另类 激情 另类 | 天天色播 | 久久综合免费 | 丁香婷婷社区 | www.888av | 一本一道久久a久久综合蜜桃 | 精品国产91亚洲一区二区三区www | 久久99婷婷 | 永久免费精品视频 | 欧洲精品亚洲精品 | 久久人人精品 | 亚洲成色 | 天天天天天天操 | 婷婷激情综合网 | 国产精品久久久久av免费 | 中文字幕在线播放视频 | 国产精品色视频 | av动图| 视频在线在亚洲 | 999日韩 | 精品成人久久 | 天天爽夜夜爽精品视频婷婷 | 深夜免费小视频 | 欧美成人黄 | 亚洲 欧洲 国产 精品 | 国内一级片在线观看 | 一区二区电影在线观看 | 99精彩视频在线观看免费 | 黄污视频网站 | 午夜精品一区二区三区在线视频 | 国产成人一级电影 | 99精品在线视频播放 | 久久精品永久免费 | 中文字幕在线观看av | 亚洲精品久久久蜜臀下载官网 | 在线观看不卡的av | 欧美日韩在线观看视频 | 91香蕉国产在线观看软件 | 久久国产高清视频 | 国产成视频在线观看 | 日本在线观看中文字幕 | 五月天免费网站 | 国产黄色理论片 | 深爱激情五月综合 | 日本中文字幕在线一区 | 在线视频日韩精品 | 免费无遮挡动漫网站 | 成人黄色免费在线观看 | 国产午夜激情视频 | 久久国产精品色婷婷 | 韩日电影在线免费看 | 国产精品99久久久久人中文网介绍 | 91伊人久久大香线蕉蜜芽人口 | 99热这里只有精品久久 | 色在线免费观看 | 日韩精品一区二区在线 | 在线观看精品 | 中文字幕黄色av | 9i看片成人免费看片 | 亚洲永久国产精品 | 国产在线精品国自产拍影院 | 黄色资源在线观看 | 少妇精69xxtheporn | 国产欧美日韩一区 | 国产va精品免费观看 | 在线观看你懂的网址 | 久久黄色成人 | 日日夜夜操操操操 | 久草在线视频在线观看 | 国产精品18毛片一区二区 | 六月丁香激情综合色啪小说 | 国产99爱| 国产精品黄 | 日韩精品视频第一页 | 99久久精品免费看国产一区二区三区 | 国产精品99免费看 | 欧美日韩国产精品一区二区三区 | 久久成人高清 | 91精品久久久久久综合五月天 | 在线免费av电影 | 国产黄在线免费观看 | 欧美9999| 三级av免费观看 | 久草在线99 | 久久国产免| 国产成人黄色av | 亚洲激情 欧美激情 | 涩五月婷婷 | 亚洲综合色视频 | 亚洲欧洲美洲av | 日本中文字幕在线看 | 在线观看中文字幕 | 国产精品久久久久久久电影 | 高清免费在线视频 | 激情av在线资源 | 成人黄色短片 | 国产又粗又猛又色又黄视频 | 九月婷婷人人澡人人添人人爽 | 人人超碰97| 在线观看福利网站 | 黄色成人在线 | 国产一级精品在线观看 | 在线观看91| 日韩高清在线一区二区 | 国产不卡一| 国产精品久久久久久超碰 | 中文字幕在 | 久久99这里只有精品 | 五月天久久久久久 | 久久草草热国产精品直播 | 久99久视频 | 99视频在线观看视频 | 字幕网av| 人人超碰97 | 午夜av片 | 日韩中文字幕免费 | 九九色网 | 激情婷婷av | 国产精品二区在线观看 | 国产精品久久久久久久久久久久午夜片 | 综合精品在线 | 深爱激情亚洲 | 日免费视频 | 就操操久久 | 国产粉嫩在线 | 亚洲国产成人精品在线 | 亚洲v欧美v国产v在线观看 | 欧美激情视频免费看 | 黄网站免费看 | 四虎在线视频 | 一区二区av | 五月婷婷香蕉 | 成人日批视频 | 精品久久久久亚洲 | 96香蕉视频 | 日韩一区二区免费在线观看 | 成人av高清在线 | 国产精品毛片一区二区在线看 | 久久久久电影 | 在线观看黄色小视频 | 一区二区精品在线 | 天天天天天操 | 日韩av在线看 | 深爱开心激情网 | 天天干天天干天天干天天干天天干天天干 | 国产精品久久久久久久久久久久午 | 久久久69 | 奇人奇案qvod | 91片在线观看 | 99亚洲视频| av电影不卡在线 | 天天干夜夜干 | 999成人精品 | 91香蕉视频在线下载 | 国产1区2区3区精品美女 | 亚洲精品国产欧美在线观看 | 久久五月天综合 | 国产视频二区三区 | 免费视频久久 | 久久久国产一区二区三区四区小说 | 国内精品美女在线观看 | 日韩91精品 | 国内少妇自拍视频一区 | 国产高清不卡 | 精品欧美一区二区三区久久久 | 日韩高清免费在线观看 | 狠狠干成人 | 久久高清毛片 | 久热只有精品 | 久久久久亚洲精品 | 日韩天堂在线观看 | 国产视频黄| 九九精品毛片 | 中文字幕色在线视频 | 国产精选在线观看 | 国产欧美最新羞羞视频在线观看 | 国产第一页在线观看 | 九九九九热精品免费视频点播观看 | 一区二区精品视频 | 中文字幕av日韩 | 国产免费视频在线 | 中文字幕在线观 | 在线免费国产 | 一区二区欧美激情 | 亚洲成人中文在线 | 日韩免费在线视频观看 | 亚洲国产精品传媒在线观看 | 99国产精品一区二区 | 国产 中文 日韩 欧美 | 欧美黄网站 | 色婷婷久久一区二区 | 成人影片在线免费观看 | 国产中文字幕一区二区三区 | 免费黄色av. | 国产又粗又猛又色 | 久久精品久久精品久久39 | 久久国产精品成人免费浪潮 | 欧美国产日韩一区二区 | 超碰电影在线观看 | 久久爽久久爽久久av东京爽 | 91精品一区二区三区久久久久久 | 亚洲一区二区三区四区精品 | 福利网址在线观看 | 日韩av中文字幕在线 | 日本黄色a级大片 | 一区二区三区在线免费播放 | 日本久久不卡视频 | 免费一级片在线 | 日韩欧美在线免费 | 丁香激情综合国产 | 国产一级高清 | 在线视频在线观看 | 黄色不卡av| 国产 在线观看 | 亚洲人成影院在线 | 日韩xxxxxxxxx| 日韩精品三区四区 | 激情开心色 | 婷婷精品 | 骄小bbw搡bbbb揉bbbb | 2021国产精品视频 | 2000xxx影视| 亚洲1区 在线 | 欧美性色黄| 最新免费中文字幕 | www.久久99| 日日操天天射 | 中文字幕影片免费在线观看 | 免费日韩 | 中文字幕 国产专区 | 国产精品激情 | 亚洲乱码中文字幕综合 | 久久视频6 | www视频在线播放 | 伊人五月在线 | 人人干在线 | 久久免费视频99 | 探花视频在线观看+在线播放 | 精品久久电影 | 亚洲综合爱 | 亚洲视频免费视频 | 91在线蜜桃臀 | 欧美一级片免费在线观看 | 97国产情侣爱久久免费观看 | 射射射av | 久久精品国产99 | 日韩精品视频免费专区在线播放 | 国产一二区视频 | 激情久久久久久久久久久久久久久久 | 日韩精品在线视频免费观看 | 91成人在线网站 | 激情丁香5月 | 国产一级黄色av | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久久受www免费人成 | 激情综合网天天干 | 日韩免费播放 | 免费网站在线观看成人 | 国产99久久久久久免费看 | 久久麻豆视频 | 欧美日韩高清在线 | 国产一级久久久 | 国产一级淫片在线观看 | 免费观看mv大片高清 | 久久美女电影 | 日韩精品一区二区三区在线播放 | 久久在线一区 | 黄污在线看 | 国产高清av | 日韩在线观看三区 | 亚洲人成网站精品片在线观看 | 网址你懂的在线观看 | 天天添夜夜操 | 手机成人免费视频 | 不卡国产视频 | 中文字幕av日韩 | 中文字幕在线观看完整版 | 99视频在线精品 | 国内久久久久 | 激情 婷婷 | 99精品久久久 | 中文字幕在线看视频国产 | 在线视频观看成人 | 日韩在线视频网站 | 欧美日韩69 | 久草在线观看视频免费 | 成 人 黄 色 视频播放1 | 欧美精品久久久久a | 久久久国产一区 | 青草草在线| 丁香六月网 | 久久久国产精品视频 | 免费亚洲视频 | 成年人免费看片网站 | 在线视频黄 | 日韩一级黄色片 | 日韩最新av | 91精选| 国产成人一区二区三区免费看 | 国产一区在线免费 | av888.com | 超碰在线公开 | 在线观看91精品国产网站 | 深爱婷婷久久综合 | 国产精品igao视频网网址 | 日本午夜免费福利视频 | 手机av在线免费观看 | 日本在线观看视频一区 | av天天色 | 国产一区二区三区视频在线 | 欧美一区三区四区 | 91高清免费在线观看 | 国产精品ssss在线亚洲 | 久久高清免费 | 国产明星视频三级a三级点| 福利久久久 | 久久久免费毛片 | 精品国产一区二区三区免费 | av在线网站大全 | 中文字幕日韩电影 | 久久精品美女视频网站 | 人人爽人人爽人人爽人人爽 | 国产精品大片免费观看 | 成人av教育 | 日韩综合一区二区 | 久久av伊人| 不卡中文字幕在线 | 久久综合导航 | 香蕉网在线 | 一区二区三区四区精品 | 久久曰视频 | 欧美激情va永久在线播放 | 亚洲精品tv久久久久久久久久 | 亚洲精品久久久蜜桃直播 | 96香蕉视频 | 久久99国产精品免费网站 | 99在线国产| 99亚洲精品 | 久久1电影院 | 黄色免费高清视频 | 国产99久久精品一区二区300 | 精品美女在线视频 | 国产最新视频在线 | 亚洲爱视频| 亚洲婷婷网 | 欧美在线资源 | 手机在线小视频 | 天天干天天上 | 欧美日韩亚洲一 | 色鬼综合网 | 精品国产一区二区三区久久久蜜臀 | 免费av电影网站 | 999久久国产精品免费观看网站 | 黄色a视频免费 | 精品国产久 | 日韩精品在线视频免费观看 | 狠狠色噜噜狠狠 | 色综合久久精品 | 91九色视频 | 久久www免费人成看片高清 | 色综合久久久久综合99 | 欧美在线视频精品 | 91在线一区 | 日韩丝袜在线观看 | 丁香狠狠 | 欧洲在线免费视频 | 日韩高清一区 | 国产成人免费高清 | 国产在线精品视频 | 免费看国产一级片 | 亚洲理论电影 | 久久久久久久久久久久久9999 | 美女久久视频 | 一级黄色大片在线观看 | 成人sm另类专区 | 日日干干| 粉嫩高清一区二区三区 | 狂野欧美激情性xxxx欧美 | 91在线视频精品 |