国产一区二区三区香蕉-2020国产成人精品视频-欧美日韩亚洲三区-www.91桃色-最美情侣中文第5季免费观看-久草毛片-国产成人精品av-男女猛烈拍拍拍无挡视频-中文字幕看片-色视频欧美一区二区三区-久久久久久久久久影院-一级a爱片久久毛片-精品久久久久久无码中文字幕一区-欧美色图网站-无码色偷偷亚洲国内自拍-国产一区在线免费观看

代寫COMP4403、代做Java編程語言

時間:2024-05-07  來源:  作者: 我要糾錯



COMP4403 - Compilers and Interpreters
Assignment 2
This is an individual assignment which involves modifying the LALR assignment 2 compiler for the PL0 language to add array types and operations on arrays.

Assignment Compiler Files
All sources for the assignment PL0 compiler are available as a2.zip (below). Please be sure to use the version for this assignment and not the one used for the tutorials or another assignment. There are differences (like the lexical tokens you need for this assignment are only defined in the assignment version).
a2.zipSun 14 Apr 2024 12:12:22 AEST Save this .zip file and follow the instructions for setting up a compiler project in IntelliJ
Setting up and running PL0 in IntelliJThu 21 May 2020 16:46:06 AEST
Brief documentation on assignment 2 filesSun 7 Apr 2024 18:29:52 AEST
Here is the documentation for
Java CUP [HTML]
JFlex [HTML]
For the most part you will not need these.
Please pay attention to course Blackboard announcments, and ensure you follow the course discussion board (https://edstem.org/) for any updates and further information on the assignment.

Do not use imports for external packages other than those in java.util.*. Note that IntelliJ may offer the option of importing an external package to resolve an issue; please avoid accepting this option because it will often add an erroneous import that you will not need. Such imports lead to the compilation failing in the environment in which your compiler will be assessed because that environment does not include the external libraries. Please check you are not importing external libraries before submitting.
You must only modify the files that must be submitted (see below).
You must not modify any other files because we will be testing your implementation using the existing other files with your submitted files.
Please do not reformat the files because we would like to just print the differences between the originals and the versions you hand in.
Please keep the length of lines in your files below 100 characters, so that we can print them sensibly.
Please avoid using non-standard characters, e.g. Chinese characters, including in the comments. Non-standard characters are not accepted by the Java compiler used to test your assignment and all comments should be readable by the person assessing your assignment.
Please remove any debugging output before your assignment is submitted because debugging output will cause your program to fail our automated testing of your assignment.
Either avoid using tabs or set your tabs stops to 4 spaces (this is the default for IntelliJ/Eclipse) so that your files will print sensibly.
Read the fine print in detail before you start! And, most important, when you have finished implementing the assignment, come back and reread the fine print again.
Overview
Array types
An array type may be declared in a type definition. In the following declarations
    const N = 3;
    type
         V = array of int;
         M = array of V;
V is an array type with elements of type integer, and M is an array type with elements of type V. Each element of M is itself an array of integers. One may declare a variable to be of an array type:
    var 
        vec : V;
        mat: M;
Arrays are indexed by integers. The length of an instance of an array will be fixed when the array is created. (The minimum length of an array is one.) Once an array has been instantiated, its first index will be index 0 and its last index will be the length of the array minus one. An instance of an array may be created using a new expression. For example,

    vec := new V[N];
    mat := new M[N-1]
assigns to variable vec a new (dynamically allocated) array with three elements, each of type integer, with indices 0 to 2 (inclusive); and assigns to variable mat a new array with two elements, each of type V, with indices 0 to 1 (inclusive).
The length of an initialised array may be accessed. For example

    write vec.length
writes the length of array vec. Elements of initialised arrays may be assigned appropriate values:
    vec[0] := 100;
    mat[0] := new V[10];
    mat[0][9] := 200;
    mat[1] := vec;  // array assignment (mat[1] and vec now refer to the same array)
    mat[1][0] := 300
After the array assignment mat[1] := vec, both mat[1] and vec refer to the same array. And so, for example, after the assignment mat[1][0] := 300 both mat[1][0] and vec[0] will have the same value (300). The values of the elements may be accessed, for example, the following
    vec[1] := mat[0][9] - 1
assigns to index 1 of the array vec the value of mat[0][9] minus one.
Syntax Changes
The reserved keywords "array", "of" and "new" have already been added to the lexical analyser input file (PL0.flex) as the tokens KW_ARRAY, KW_OF and KW_NEW, and the symbol "." has been added as the token PERIOD. They have also been added to the terminal definitions in PL0.cup.
The syntax is given here in BNF. The syntax for type definitions (Type) is extended with an additional alternative for array types:
Type →   ...  |  "array" "of" Type
A reference to an element of an array can be used as an LValue either within an expression or on the left side of an assignment:

LValue →   IDENTIFIER  |  LValue "[" Condition "]"
A new array expression or an access to the length attribute of an array can be used as a Factor in an expression:
Factor →   ...  |  "new" TypeIdentifier "[" Condition "]"  |  LValue "." IDENTIFIER
You need to add these productions and their associated actions to build the symbol table entries and abstract syntax trees to PL0.cup.

The Parser Generator Java-CUP
The parser specification for the compiler is specified in the file PL0.cup. You will need to add productions (and their associated actions) to the specification and then run the parser generator Java-CUP (manually or automatically) to generate the files CUPParser.java and CUPToken.java. Do not modify these two Java files directly (even if you think you understand them (do you really?)) - remake them from PL0.cup. You should make the compiler before you change anything just to see what forms of messages to expect. When you make the compiler (before you modify it) there will be some warning messages about the terminal symbols like ILLEGAL being declared but never used; these are to be expected at this stage. Any new warning/error messages will be significant. Beware that if there are Java-CUP errors reported, the Java files for the parser will not be generated, so check for Java-CUP errors first. There is HTML documentation for Java-CUP available from the class web page (with the assignment).
The Scanner Generator JFlex
All the lexical tokens for this version of the compiler have already been added to the lexical analyser.
The file Lexer.java is automatically generated by the scanner generator JFlex from PL0.flex; again, do not modify Lexer.java - remake Lexer.java from PL0.flex.

Both Java-CUP and JFlex are available with the assignment files on the course web page, with instructions on how to run them in IntelliJ. Java archives for Java-CUP and JFlex are part of the IntelliJ project for the assignment.

Static Semantic Restrictions
Array types
In an array type declaration, array of t,
the element type, t, can be any type including another array type, but cycles in type definitions are not permitted, e.g. the following is not valid as the definitions of types C and D form a cycle.
        C = array of D;
        D = array of C;
      
In Type.java a class ArrayType has already been added to represent array types within the compiler. The type of array of t is ArrayType(T), where T is the type of t:
syms ⊢ typeof(t) = T
                                                                        
syms ⊢ typeof(array of t) = ArrayType(T)
In a new expression, new id[e], the type identifier id must be that of an array type; the expression e must be compatible with the integer type; and the type of the new expression will correspond to the array type of the type identifier:

id ∈ dom(syms)
syms(id) = TypeEntry(ArrayType(T))
syms   ⊢   e : int
                                                                        
syms   ⊢   new id[e] : ArrayType(T)

For a reference to the length attribute of an array, e.id, expression e must have an array type, and identifier id must be the identifier "length". A reference to the length of an array, e.id is of type integer:

syms ⊢ e : ArrayType(T)
id = "length"
                                                                        
syms ⊢ e.id : int

For a reference to an element of an array, e1[e2], expression e1 must have an array type, and expression e2, used as the array index, must be compatible with the integer type (the type of array indices). The type of a reference to an element of an array, e1[e2], is a reference to the element type of the array:

syms ⊢ e1 : ArrayType(T)
syms ⊢ e2 : int
                                                                        
syms ⊢ e1[e2] : ref(T)
Note that the type of e1[e2] is ref(T) rather than T so that the subscripted array element can be used as an L-value, e.g., it can be used on the left side of an assignment.
Assignment of arrays is allowed but other operations on arrays (e.g., comparison, etc.) are not supported.

Dynamic Semantics
Arrays
Arrays are dynamically allocated via a new expression. As such, the value of an array will be an absolute (i.e. global) address: the address where the length of the array and the elements of the array are stored. The value of an array will be null (StackMachine.NULL_ADDR) until it has been otherwise assigned.
When one array is directly assigned to another, such as in

    vec2 := vec1
then the value (an absolute address) stored by vec2 will become the same value (an absolute address) stored by vec1. Hence, following the assignment, vec1 and vec2 will refer to the same array object in memory.
The expression new id[e] dynamically allocates space on the heap to store both the length, e, of the new array, as well as all of its e elements; it writes the length of the new array to that address at an offset of 0; and it evaluates to the absolute address of the new array that has been allocated.

The length of a new array should be checked at run time to ensure that it is greater than or equal to the minimum length of an array (one): if it is not then this is a run time error, and the stack machine should be stopped with an exit code of StackMachine.INVALID_ARRAY_LENGTH.

Objects dynamically allocated via a new array expression have a life time that is not restricted to that of the variable to which they were allocated. For example, a new array may be created within a procedure and assigned to a local variable within that procedure. Provided that variable's value (the absolute address of the allocated array) is assigned to a variable or field that is accessible via variables global to the procedure, before the procedure exits, the object will remain accessible.

Although we dynamically allocate arrays via the new expression, we won't implement garbage collection of objects that are no longer accessible.

A reference to the length of an array, i.e. e.length, should evaluate to the length of the array.

The dynamic semantics of array accessing, i.e. e1[e2], is conventional. An element of an array may be used like a variable whose type is the same as the element type of the array. For example, if the element type is int then it may be "assigned to", read, written and used in arithmetic expressions and comparisons (but if you start worrying about each of these you are making way more work for yourself than you need to).

If the value of an array is null (StackMachine.NULL_ADDR) when either at attempt is made to access its length, or to access one of its elements then this is a run time error and the stack machine should be stopped with an exit code of StackMachine.NULL_ARRAY.

Accesses to array elements should be bounds checked at run time, i.e., the value of the index expression should be checked to make sure that it is a valid index of the array. If it is not, then this is a run time error and the stack machine should be stopped with an exit code of StackMachine.OUT_OF_BOUNDS. (See the discussion of the genBoundsCheck method below.)

Variables of an array type are local variables and hence are allocated on the stack just like any other local variable. The main difference from scalar variables is that the value stored in the local variable will be the absolute address of an array. The absolute address of the array (unless it is StackMachine.NULL_ADDR) can then be used to access the length of the array, and the elements of the array.

Object Code
The PL0 compiler generates code for the Stack Machine. A description of the stack machine is available in StackMachineHandout.pdf. See also the file StackMachine.java (near the end) for details of the instruction set.
Dynamic allocation of arrays
There is an instruction, ALLOC_HEAP, which assumes that there is an integer on the top of the stack that represents the size of the object to be allocated. It pops that value from the stack and replaces it with the absolute address of a newly allocated object of that size. The stack machine does not support disposing objects or garbage collection.
If there is insufficient space then ALLOC_HEAP will fail with a "memory overflow" message. In the implementation of the stack machine there is a single array representing the whole of memory: the stack (the bottom end of the array) and the heap of dynamically allocated objects (the top end). If either pushing onto the stack reaches the lower limit of the heap, or allocating on the heap reaches the top of the stack, then there is insufficient memory and the program aborts (with the same error message in both cases).

You need to be aware that the instructions LOAD_FRAME and STORE_FRAME expect an address that is an offset from the frame pointer for the current (procedure) scope. You can use instruction TO_LOCAL to convert an absolute address into an address relative to the current frame pointer.

Reporting runtime errors
Under exceptional circumstances, the STOP instruction can be used to stop execution of the stack machine. The top of the stack is popped to get an exit code.
Array indexing and bounds checking
The BOUND instruction expects that the following have been loaded (pushed) onto the stack (in this order):
a value to be bounds checked,
a lower bound, and
an upper bound.
The BOUND instruction pops the upper and lower bound as well as the value to be checked. If the value to be checked is not within the given bounds (inclusive) then value false is pushed on top of the stack, else the value true is pushed on top of the stack.

The genBoundsCheck method of the Code class can be used to generate code for checking that a value is within bounds. It assumes the value to check is already on the stack. If the bounds check succeeds the value checked is left on the top of stack, otherwise the stack machine interpreter halts with an StackMachine.OUT_OF_BOUNDS runtime error.
Additional stack machine instructions
Additional instructions (not in the Stack Machine handout) STORE_STACK and LOAD_STACK have been added to the Stack Machine. You do not have to use these instructions, however you may find them useful. For a precise description of their behaviour, refer to StackMachine.java.
STORE_STACK: The value of the second top of the stack is stored at the (absolute) address given by the stack pointer minus one (sp-1), minus the top of the stack. The two values on the stack are popped.

LOAD_STACK: The top of the stack is replaced with the contents of the memory location whose (absolute) address is given by the stack pointer minus one (sp-1), minus the top of the stack.
Tests
Some tests are available in the test-pgm directory (in a2.zip), and can be used to help you to debug your code. All of the tests can be run together using the Test_LALR configuration. You can also individually run a test using PL0_LALR on a selected PL0 program. The test cases of the form test-base*.pl0 are useful for regression testing, to make sure that you haven't broken any existing functionality in the compiler, and the other tests can help you find bugs in the new compiler features.
This assignment compiler is provided solely for the purposes of doing this assignment and your solutions must never be shared, especially publicly, even after completion of the course. Such publication would be considered both student misconduct and a breach of copyright.

If the assignment is submitted after the deadline, without an approved extension, a late penalty will apply. The late penalty shall be 10% of the maximum possible mark for the assessment item will be deducted per calendar day (or part thereof), up to a maximum of seven (7) days. After seven days, no marks will be awarded for the item. A day is considered to be a 24 hour block from the assessment item due time. Negative marks will not be awarded.

Submission
Please keep the length of lines in your files below 100 characters, so that we can print them sensibly. You should avoid using tabs or set your tabs stops to 4 spaces so that when we print them (with tab stops set to 4 spaces) they will print sensibly. Do not forget to remove any code generating debugging output and any rogue external imports before submission.
You must submit your completed assignment electronically through the assessment section of the course BlackBoard site (the BlackBoard Assessment page rather than the course web pages).

You need to submit the following list of individual files (not a .zip or any other form of archive file) for evaluation and marking. Note that file names are case-sensitive.

PL0.cup
ExpNode.java
ExpTransform.java
StaticChecker.java
CodeGenerator.java
You can submit your assignment multiple times, but only the last copy submitted will be retained for marking.
Assessment
The assignment is marked out of a total of 15 marks.
Marks will be allocated as follows:

3.5 - Syntax analysis and tree building
5.5 - Static semantics checking
6.0 - Code generation
Marks will be awarded for the correctness of the changes to each category. Readability and modular structure will also be criteria. For readability, we expect that you follow good software engineering practice, such as appropriate choices of variable names, consistent indentation, appropriate comments where needed, etc. For modularity we expect you introduce new methods where it makes sense to help structure the program and to avoid unnecessary duplication of code. Use of generic Java utility interfaces (like Set, Map, List, Queue, ...) and their implementations (like HashSet, ..., TreeMap, ..., LinkedList, ...) is encouraged. We expect you to produce well structured programs that are not unnecessarily complex, both structurally (e.g. complex control flow that is hard to follow), and in terms of execution time and space requirements, (e.g. an O(n) algorithm is preferred to an O(n2) algorithm, and a O(log n) algorithm is even better).
We will not be concerned with the quality of syntactic error recovery because the parser generator CUP takes care of that for the most part, but you must handle semantic errors appropriately, including handling the situation when there is a syntax error, i.e., your compiler should not crash because of a syntax error.

Your assignment files will be compiled in the context of the remaining assignment files and put through a sequence of tests. The total mark for this assignment will be limited by the overall success of the development in the following way:

The program submitted does not compile: Maximum 8/15.
The program submitted will not correctly handle any test case with the new facilities: Maximum 10/15.
You are not required to correct any bugs that may exist in the original compiler. However, we would appreciate being informed of any such bugs that you detect, so that we can correct them, or any improvements to the compiler you might like to suggest.

請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp
















 

標簽:

掃一掃在手機打開當前頁
  • 上一篇:EBU4201代做、代寫Java設(shè)計編程
  • 下一篇:代做COCMP5328、代寫Python設(shè)計程序
  • 無相關(guān)信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區(qū)
    昆明西山國家級風景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網(wǎng)下載 歐冠直播 WPS下載

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    主站蜘蛛池模板: 欧美色图亚洲天堂 | 国产69久久精品成人看 | 免费视频91 | 亚洲香蕉一区 | 日韩视频中文字幕 | 91福利视频免费观看 | 日韩1级片 | 欧美综合一区二区三区 | 久久riav| 精品自拍av | 超人碰碰操 | 欧美色鬼| 日韩一级片在线播放 | jizzzxxxx| 日韩三区在线观看 | 极品尤物在线观看 | 色94色欧美sute亚洲线路二 | www.成人.com| 国产调教打屁股xxxx网站 | 久久久久a | 国产日韩片 | 91成人品 | 看av网址| 国产视频aaa | 国产裸体永久免费无遮挡 | 亚洲产国偷v产偷自拍网址 亚洲成色777777女色窝 | 中文字幕观看在线 | 超碰碰碰碰| 国产思思| 91久久爱 | 国产精品免费观看视频 | 亚洲欧美日韩激情 | 国产精品偷乱一区二区三区 | 日韩亚洲欧美一区 | 色一区二区三区四区 | www.av在线播放 | 一级伦理农村妇女愉情 | 日韩一级黄色 | 欧美亚洲视频在线观看 | 欧美性色网 | 91极品身材尤物theporn | 麻豆国产一区二区三区四区 | 在线免费看黄网站 | 这里只有精品在线观看 | 激情综合亚洲 | 五月激情婷婷综合 | 91久久色| 色九九| 毛片大全在线观看 | 日韩av手机在线 | 精品免费在线 | 一级黄色片一级 | 久久精品探花 | 久久av网| 国产精选自拍 | 黄色三级网站在线观看 | 国产精品久久久久精囗交 | 深夜福利视频在线观看 | 免费看一级一片 | 国产日本精品视频 | 国产黄色一级片 | 四虎少妇做爰免费视频网站四 | 性视频欧美 | 男人的天堂欧美 | 久操视频在线观看 | 亚洲综合五区 | 国产女人18水真多18精品一级做 | 久久综合伊人77777蜜臀 | 国产91调教 | 伊人久久大香线蕉成人综合网 | 亚洲成av人片 | 五月婷婷六月婷婷 | 亚洲欧美综合乱码精品成人网 | 四虎影院在线视频 | a天堂在线观看 | 99xav| 精品国产乱码久久久久久蜜柚 | 欧美狠狠干 | 国产欧美日韩在线 | 国产日本欧美一区二区 | 精品视频一二区 | 午夜视频在线观看一区二区 | 色婷婷综合久久 | 亚洲理论片 | 制服av在线 | а√中文在线资源库 | 国产又粗又猛视频 | 亚洲av成人精品毛片 | 亚洲香蕉成人av网站在线观看 | 久久99精品国产 | 久久一道本 | 国产又粗又猛又爽又黄91 | 九色国产在线 | 日日av| 黄色片视频免费观看 | 亚洲福利在线视频 | 亚洲综合激情五月久久 | a级片黄色 | 张津瑜警花国产精品一区 | 神马午夜av | 亚洲成人三级 | 国产精品hd | 你懂的在线观看网址 | 在线视频久草 | 日韩在线免费视频观看 | 综合久草 | 六月丁香久久 | 奇米第四色7777 | 黄网站色视频 | 国产福利片在线 | 国产精品国产三级国产专区53 | 天天看天天摸 | 男人天堂最新网址 | 国产区第一页 | 色又色 | 色先锋在线 | 欧美亚洲二区 | 很黄的网站在线观看 | 亚洲大片在线播放 | 视频区小说区 | 青草久久久| 激情导航| 日韩精品一区二区在线 | 91刺激 | 久操社区 | 天堂av影院 | 日韩在线 中文字幕 | 欧美日韩在线不卡 | 欧美日韩在线免费视频 | 国产91免费看 | 日韩中文视频 | www.日韩.com| 日本女优中文字幕 | 亚州综合网 | 成人在线a | 久久久久麻豆 | av免费观看久久 | 色福利hd写真video | 奇米在线观看 | 好吊妞视频一区二区三区 | 国产在线精品成人免费怡红院 | 成人网入口 | 在线午夜视频 | 欧美三级韩国三级日本三斤在线观看 | 欧美做爰猛烈床戏大尺度 | 天天拍天天射 | 国产视频久久久久 | 四虎影视永久免费 | 久久女人| 99视频| 美女啪啪av | 亚洲美女中文字幕 | 波多野结衣福利 | 黄色免费小视频 | www.久久网| 四虎网址在线观看 | 日韩av一区二区在线 | 天堂在线观看免费视频 | 国产第一页在线观看 | 日本三级视频在线 | 亚洲精品视频在线观看视频 | 欧美一级欧美三级 | a国产视频 | 亚洲伊人一区二区 | 巨骚综合| 国产精品99一区二区三区 | 综合网五月天 | 久久免费观看视频 | 99re只有精品 | 1024视频污 | 最近日本中文字幕 | 国产黄a三级三级三级看三级男男 | 久久久久国| 变态 另类 国产 亚洲 | 综合五月婷婷 | 日本久久高清 | 好男人www| 少妇性色av | 亚洲第一中文字幕 | jizz国产在线 | 欧美日韩精品中文字幕 | 网站在线免费观看 | 国产精品视频不卡 | 日本中文字幕第一页 | 中文在线精品 | 国产一国产一级毛片视频 | 久久午夜网 | 国产主播精品 | 国产你懂的| 尤物网站在线 | 99爱精品 | 日本免费在线播放 | 黄色视屏免费 | 欧美日韩一卡二卡三卡 | www.蜜桃av | 综合久久精品 | 激情婷婷久久 | 亚洲女人毛片 | av一区免费 | 色狠狠干 | 风间由美av在线 | 日韩新片王网 | 麻豆精品国产 | 国产在线欧美在线 | 亚洲免费色 | 96精品在线 | 亚洲aⅴ在线 | 欧美 日韩 国产 成人 在线 | 中文字幕在线观看资源 | 国产91免费在线观看 | 国产欧美一区二区三区精华液好吗 | 亚洲精品久久久久avwww潮水 | 亚洲图片 激情小说 | 高清乱码毛片 | 日韩精品一区二区三区丰满 | 99只有精品 | 在线免费污视频 | 国产第6页| 亚洲综合五区 | 国产在线视频二区 | 一级在线免费观看 | 久草视频在线观 | www.国产com | 午夜免费av | 国产三级在线看 | 天堂网视频在线观看 | 国产97在线观看 | 白白色免费在线视频 | 毛片a区 | 国产精品7| 日韩高清一级 | 亚洲第一色播 | 免费av看 | 欧美亚洲国产日韩 | 日韩av一卡二卡 | 毛片黄片免费看 | 国产精品自在线 | 欧美综合在线观看 | 就要干就要操就要射 | 久久福利国产 | 国产一区二区三区四区在线观看 | 国产丝袜一区二区 | 精品孕妇一区二区三区 | 国产91免费看 | 91亚色| 亚洲国产一区二区在线 | av色先锋 | 国产成人愉拍精品久久 | 在线一二三区 | 日本免费黄色 | 欧美色视 | 国产在线观 | 久久久精品日本 | 亚洲无限码 | 亚洲精品一区二三区 | 国产ts变态重口人妖hd | 麻豆av免费在线观看 | 天天做天天爱天天爽综合网 | 少妇综合网| 国产精品久久久av | 久久久久9 | 天天干天天干天天操 | 国产美女作爱视频 | 91精品国产麻豆国产自产在线 | 欧州一区二区 | 在线免费观看视频 | 国产一二三 | 欧美日韩少妇精品 | 日韩欧美一二三区 | 国产三级三级三级三级三级 | 午夜激情免费视频 | 国产欧美视频一区二区三区 | 2025国产精品 | 亚洲精一区 | 国产精品网站在线观看 | 国产精品久久久久久久成人午夜 | 久久综合久 | 久草视频免费在线播放 | 日韩欧美亚洲精品 | 欧州一区二区 | 精品美女久久 | 日日夜夜精品免费 | 亚洲视频你懂的 | 国产超碰在线 | 国产精品视频专区 | 欧美囗交做爰视频 | 牛牛精品视频 | 国产乱码77777777 | 97超碰97 | 国产精品视频大全 | 香蕉狠狠爱视频 | 成人aaa| 亚洲热在线观看 | 日韩精品在线免费观看 | 丁香综合 | 欧美高清不卡 | 精品国产视频 | 已婚少妇露脸日出白浆 | 6080日韩午夜伦伦午夜伦 | 亚洲二区视频 | 欧美激情一区二区三区四区 | 国产91久久久 | 国产精品久久久久久久久夜色 | 欧美亚洲专区 | 玖玖爱在线精品视频 | 在线观看欧美日韩视频 | www.亚洲综合 | 激情图片网站 | 最新中文字幕日本 | 久久天天干 | 国产精品午夜一区二区 | 91九色在线| 国产精品免费久久 | 超碰66| 婷婷激情视频 | 天天操夜夜骑 | 亚洲国产精品久久久久久6q | 五十路毛片 | 国产精品久久久久久久久免费桃花 | 亚洲欧美在线综合 | 国产不卡一区在线 | 久久久噜噜噜 | 久久久精品影视 | 星空大象在线观看免费播放 | 精品亚洲成人 | 性高潮久久久久久久久 | 日韩在线一区二区三区四区 | 欧美大色网 | 国产精品免费视频观看 | 51国产偷自视频区免费播放 | 色综合中文网 | 一级做a爰片久久毛片16 | 免费福利在线视频 | 精品三级在线 | 91免费 看片 | 五月天激情国产综合婷婷婷 | 尤物视频在线观看国产 | 不卡av在线 | 天天躁日日躁狠狠躁喷水 | 国产精选一区 | 精品国偷自产国产一区 | 精品欧美久久 | 伊人国产精品 | 超碰91在线 | 久久成人福利 | 粉嫩久久99精品久久久久久夜 | 日韩a√| 不卡av网站在线观看 | 久久99免费视频 | 国产激情视频一区 | 欧美乱码视频 | 不卡中文字幕 | 日日爽夜夜操 | 亚洲精品国产精品乱码不卡 | 18+视频在线观看 | 激情视频一区二区三区 | 在线超碰91 | 特黄一级视频 | 操人视频在线观看 | 91伊人久久| 亚洲成人av一区二区三区 | 日韩在线视频一区二区三区 | 高潮毛片7777777毛片 | 国产黄色影院 | 亚洲伊人伊色伊影伊综合网 | h片在线| www.黄色片.com | 91精品国产综合久久香蕉最新版 | 不卡二区 | 亚洲精品中文字幕在线 | 国产超碰人人模人人爽人人添 | 日日夜夜综合网 | 免费观看黄色网址 | 久久狠 | 天天干天天摸 | 91视频在线 | 新天堂av | 日本呦呦 | 一个色av| 国产一级片一区二区 | 欧洲亚洲天堂 | 中文字幕av高清 | 亚洲欧洲av | 成人福利在线视频 | 国产对白精品刺激二区国语 | 色婷婷影院 | 欧美va亚洲va | 亚洲男女在线观看 | 色婷婷av一区二区三区软件 | 96免费视频| 啪啪福利视频 | 欧美肥老妇 | 91久久人人 | 日韩欧美中 | 国产精品日韩av | 日韩二三区 | 国产高清视频免费 | 欧美999 | 五月天久久久久 | 九九久久网 | 午夜www| 伊人久久精品 | 日韩特级黄色片 | 亚洲视频一区二区在线观看 | 国产九色 | 一区二区三区成人 | 老色批网站 | 日本高清视频网站 | 色婷婷伊人 | 污片在线免费观看 | 欧美人与动物xxxx | 久久久久黄 | 欧美亚洲91 | 成人午夜激情 | 真实亲伦对白清晰在线播放 | 欧美黄色一级大片 | 国产精品不卡在线 | 狠狠干2022 | 成人午夜视频在线免费观看 | 偷拍亚洲综合 | 一区视频在线 | av青青草 | 四虎视频在线观看 | 久色成人 | av网站免费在线 | 波多野结衣一级 | 少妇一级淫片免费放中国 | 国模私拍在线观看 | 国产51视频 | 日日爽夜夜爽 | 亚洲成人二区 | 四虎黄色片 | 欧美在线播放一区 | 国产精品九九视频 | 深夜av在线| 中文av在线播放 | 天天操天天操天天操天天 | 人人爽人人爽人人爽 | 操丝袜少妇 | 亚洲欧美亚洲 | 国产成人在线一区 | 日韩成人福利 | 看毛片的网站 | 69精品久久久久久 | 国产激情文学 | 俺来也在线视频 | 中文字幕日韩精品视频一区视频二区 | 91久久久久久久久久 | 黄色av网站免费 | 成人精品视频99在线观看免费 | 国产精品自拍一区 | 亚洲欧美精选 | 天天爱天天色 | 亚洲综合影视 | 国产精品久久久久久久久久久久久久 | 国产视频福利在线观看 | 四虎视频国产精品免费入口 | 一级免费黄视频 | 久久国产精品免费 | 久久黄色av | 亚洲成熟毛多妇女av毛片 | 超91在线 | 日本激情一区二区三区 | 久久一区二区视频 | 久久精品国产亚洲a∨蜜臀 意大利三级全黄裸体 | 国产三级高清 | av免费大片 | 欧美成人精品在线观看 | 成人国产精品免费观看动漫 | 成人在线你懂的 | 亚洲久草av| 91免费视频网址 | 国产老妇av | 欧美三区四区 | 亚洲在线影院 | 快播色图 | 国内外成人在线视频 | 久久涩视频| 美女免费毛片 | 16一17女人毛片 | 亚洲欧美色图 | 欧美黑人一级爽快片淫片高清 | 国产91精品久久久久久久网曝门 | 伊人网av在线 | 国产麻豆精品久久一二三 | 亚洲在线视频一区 | 亚洲最大福利视频 | 超碰人人超碰 | 四虎影库在线播放 | 精品综合网 | 操碰在线观看 | 欧美自拍一区 | 国产免费视频 | 影音先锋三级 | 中文字幕网站在线 | 成人黄网免费观看视频 | 毛片视频免费观看 | 色噜噜一区二区 | 91九色国产视频 | 欧美色亚洲 | 亚洲精品成人 | www.999av| 美女激情网站 | 91视频在线免费观看 | 欧美精品久久久久久 | 日韩成人黄色 | 亚洲视频在线看 | 日韩精品av一区二区三区 | 国产极品在线播放 | 狠操av | 日日日日干 | 国产欧美日 | 日本一级做a爱片 | 成av人片一区二区三区久久 | 91福利视频免费观看 | 中文字幕精 | 中文字幕 亚洲视频 | 国产黄色视| 国产日韩在线观看视频 | 欧美h在线观看 | 超碰免费成人 | 在线观看成人黄av免费 | 国产免费激情视频 | 综合激情五月婷婷 | 少妇又色又爽又黄的视频 | 男女做事网站 | 97精品欧美一区二区三区 | 国产精品高清网站 | 久久精品9 | 高清免费av | 国产精品另类 | 91影音| 色性av| 日在线视频 | 久久av高潮av无av萌白 | 国产小视频免费观看 | 亚洲天堂网在线观看视频 | 超碰2021| 欧美国产日韩一区 | 久久久精品亚洲 | 国产精品黄 | 91亚洲国产 | 国产最新毛片 | www.夜色321.com | 亚洲激情五月婷婷 | 91av高清| av天天看 | 欧美黄色大片在线观看 | 亚洲性视频 | 中国黄色a级片 | 亚洲成人77777 | 老司机精品福利视频 | 40到50岁中老年妇女毛片 | 丰满女邻居的色诱4hd | 免费成人av | 国产日韩av在线 | 免费在线你懂的 | 免费在线观看日韩av | 男女激情啪啪 | 日韩在线www| 一本色道精品久久一区二区三区 | 日本少妇激三级做爰在线 | 国产又粗又长又大视频 | h肉动漫无修一区二区无遮av | 亚洲天堂色图 | 中文av免费 | 亚洲欧美丝袜精品久久久 | 久久久久久黄 | 香蕉视频色 | 国产96视频 | 青青草久 | 狠狠躁日日躁夜夜躁av | 国产精品成人免费看片 | 国产精品日日摸天天碰 | 亚洲国产视频在线观看 | 中文字幕2021| 99久久精品一区二区成人 | 一区二区高清视频 | 男人阁久久 | 在线久久 | 国产精品污www一区二区三区 | 亚色在线观看 | 在线a视频 | 欧美成人精品 | www.日本黄色| 超污视频软件 | 国产精品视频一区二区三区四区国 | 超碰66| 91大神网址 | 亚洲激情99 | av老司机在线观看 | 多啪啪免费视频 | 国产精品人人 | 国产精品久久九九 | 黄色av网站免费看 | 五月天激情开心网 | av看片| 91精品国产麻豆国产自产在线 | 久久.com| 日日操日日操 | 激情婷婷丁香 | 懂色av一区| 欧美影院一区二区三区 | 亚洲a图| www天堂在线 | caoprom在线| 男人都懂的网站 | 大尺度做爰啪啪床戏 | 国产在成人精品线拍偷自揄拍 | 风间由美在线视频 | 日韩中文字幕不卡 | 日韩美女av在线 | 亚洲天堂精品在线观看 | 日韩国产综合 | 国产91在线播放精品91 | 国产伦精品一区二区三区照片 | 浪浪视频污 | 国产一区二区在线不卡 | 欧美日本韩国一区二区三区 | 人人上人人干 | 91丨九色丨国产在线 | 国产精品久久久久久久久动漫 | 超碰人人爱 | 国产精品日日做人人爱 | 久久久久99精品成人片三人毛片 | www色婷婷 | 国产精品5区 | 成年人免费黄色 | 91在线视频观看 | 激情青青草 | 免费特级毛片 | 蜜桃视频日韩 | 欧美成人精品一区二区三区 | wwwjavhd| a最新天堂网资源 | 日韩综合av | 新狠狠干 | 午夜寂寞视频 | 最新黄色av | 毛片少妇 | 中文字幕日韩一级 | 亚洲一区二区精华液 | 高跟91白丝 | 91九色蝌蚪91por成人 | 一区二区三区av夏目彩春 | 天堂在线中文字幕 | 盗摄精品av一区二区三区 | 国产麻豆一区二区三区在线观看 | 超碰男人 | 深爱婷婷 | av福利网| 日韩欧美第一页 | 免费精品一区二区 | 成人tv | 成人免费福利视频 | 国产精品美女久久久久av超清 | 日韩精品免费视频 | 后进极品白嫩翘臀在线视频 | 免费观看一区二区 | 91破解版无限看 | 亚洲综合色吧 | 欧美精品一区二区在线播放 | 成人国产黄色 | 69精品久久久久久 | 日本大胆裸体做爰视频 | 成人免费视频大全 | www.999热| 亚洲乱色 | 中文字幕男人天堂 | 91视频免费看 | bbbbbbbbb毛片大片按摩 | 啪啪中文字幕 | 欧美色就是色 | 黄色激情网址 | 天天综合天天 | 香蕉视频亚洲一级 | 99热2| 一区二区欧美日韩 | 中文字幕成人在线 | 一本色道久久综合亚洲精品酒店 | 亚洲视频国产一区 | 最新色网址 | 国产喷水吹潮视频www | 狠狠躁日日躁夜夜躁老司机 | 国产99在线观看 | 国产美女无遮挡免费视频 | 91桃色视频在线观看 | 中文字幕日韩精品在线 | 亚洲一区二区三区中文字幕 | 欧美激情在线 | 国产女人18毛片水18精 | 午夜污| 欧美色图狠狠干 | 久久精品区 | 成人国产精品免费观看动漫 | 久久久欧美精品sm网站 | 超碰66| 国产深夜视频 | 亚洲视频在线观看一区二区 | 午夜小视频网站 | 久久国产剧情 | 在线观看视频一区二区 | 中文字幕另类 | 老司机久久 | 在线观看免费毛片视频 | 国产精选久久久 | 国产精品毛片一区二区 | 超黄网站在线观看 | 一区二区在线免费 | 在线观看的免费 | 天天天色 | 国产精品亚洲视频 | 国产精品久久久久久久久夜色 | 精品国产乱码一区二区三区a | 韩国一级淫一片免费放 | 国产精选h网站 | 中文字幕在线观看91 | 91精品婷婷国产综合久久竹菊 | 久久精品综合网 | 国产精品v亚洲精品v日韩精品 | 精品国产一区二区三 | 天堂成人网 | 日韩1级片 | 看黄色一级片 | 97免费超碰| 性xx色xx综合久久久xx | www.中文字幕在线观看 | 成人av免费播放 | 中文字幕第23页 | 国产露脸国语对白在线 | 久久精品国产精品亚洲毛片 | 99精品色 | 成人日b视频 | 性开放网站 | 中文字幕二区三区 | 好骚综合av| www.天天操| 色网址在线观看 | www.69av.com| 日韩av一级 | 国产最爽的乱淫视频国语对白 | 色在线视频 | 理伦毛片| 天天草av | 国产精品乱轮 | 男人舔女人下部高潮全视频 | 亚洲三区av | 中文字幕视频在线 | 日韩在线三区 | 99国产在线视频 | 成人一二区 | 黄色免费在线观看网站 | 婷婷开心激情网 | 国产午夜视频在线 | 亚洲成人欧美成人 | 91成年影院 | youjizz日本人 | 日韩激情文学 | 三级黄色免费 | 在线观看亚洲 | 午夜成人在线视频 | 午夜寂寞影院在线观看 | 韩国av在线免费观看 | 亚洲三区视频在线观看 | 欧美在线日韩 | 天天干天天谢 | 波多野在线 | 中文字幕偷拍 | 亚洲欧美在线播放 | 男人午夜免费视频 | 青青草原在线免费观看视频 | 成年人视频在线看 | 国产伦精品一区二区三区高清版禁 | 性生活三级视频 | 亚洲狼人综合 | 天天射夜夜 | 性欧美1819性猛交 | 国产视频在线一区 | 欧美精品一二三四 | 色哟哟在线观看视频 | 国产精品成人免费精品自在线观看 | 一二三区中文字幕 | 免费视频中文字幕 | 亚洲天堂久久新 | 国产精品久久久久久久免费 | 日韩精品一区二区在线 | 都市激情综合 | 免费看黄色一级视频 | 亚洲欧美视频 | 极品色av| 久久艹网站 | 欧洲一级片 | 中文字幕av片 | 91亚洲欧美激情 | 欧美日韩另类视频 | 久久噜噜噜精品国产亚洲综合 | 久久久久免费精品视频 | 久久精品久久久久久久久久久久久 | 欧美一级做| 伊人成人22 | av在线影片 | 中文在线中文资源 | 午夜一区在线观看 | 91av在线播放 | 久久婷综合 | 日韩在线一区二区 | 国产精品久久久久精囗交 | 伊人伦理 | exo妈妈mv在线播放高清免费 | 日本特黄特黄刺激大片 | 91高潮胡言乱语对白刺激国产 | 91九色ts另类人妖 | 国产伊人久| 国产精品视频一区二区三区不卡 | 欧美一区二区三区四区视频 | 青青草一区二区 | 99在线免费观看 | 欧美交受高潮1 | 国产偷亚洲偷欧美偷精品 | 四虎影院免费视频 | 日韩视频一区二区三区 | 女人洗澡一级特黄毛片 | 亚洲图片欧美 | 久久伊人超碰 | 黑人巨大精品欧美黑白配亚洲 | 337p粉嫩色噜噜噜大肥臀 | 波多野结衣高清视频 | 老司机午夜免费视频 | 国产色影院 | 又色又爽又黄18网站 | 欧美成人精品激情在线观看 | 99国产精品99久久久久久粉嫩 | 一卡二卡三卡在线观看 | 国产精品国产三级国产aⅴ 精品欧美久久 | 有码一区| 黄色一级视频免费观看 | 99精品视频在线观看免费 | 国产尻逼视频 | 欧美不在线| av网址网站| 有码视频在线观看 | 亚洲www永久成人夜色 | 欧美视频| 天堂av免费| 在线观看免费国产精品 | 亚洲精品在线视频免费观看 | 久久婷婷色 | 欧美综合激情 | 9i看片成人免费看片 | 一集毛片 | 欧美性猛交69 | 打开免费观看视频在线播放 | 欧美一级欧美三级在线观看 | 欧美日韩亚洲成人 | 曰批视频在线观看 | 最新中文字幕一区 | 欧美黄色激情视频 | 国产suv精品一区二区 | 操操干干 | 在线播放网址 | 你操综合 | 亚洲国产精品999 | 久久五月亭 | 香蕉视频2020 | 日韩中文字幕高清 | 国产精品人成在线观看免费 | 精品国产视频 | 国产精品一区二 | 一 级 黄 色 片免费网站 | 干爹你真棒插曲mv在线观看 | 色站综合 | 日韩成人在线免费视频 | 97超碰人人澡人人爱学生 | 国产精品精 | avt天堂网 | 在线观看日韩中文字幕 | 天天射夜夜操 | 国产中出视频 | 特大黑人巨交吊性xxxxhd | 木下凛凛子av一区二区三区 | 久久综合亚洲 | 91精品国产aⅴ一区二区 | 亚洲欧美另类国产 | www.久久伊人 | 国产一区二区在线观看视频 | 男女午夜视频 | 国产一级免费在线观看 | 三级中文字幕 | 亚洲欧美综合乱码精品成人网 | 国产91在线播放精品91 | 亚洲永久精品一区二区三区 | 国内自拍视频在线观看 | 国产精品综合久久久久久 | 欧美性生交xxxxx久久久缅北 | 色就是色欧美 | 成人动漫一区二区 | 香蕉久久夜色精品国产更新时间 | 黄色伊人| 永久免费视频 国产 | 欧美一性一乱一交一视频 | 91成人国产综合久久精品 | 午夜久久福利 | 精品少妇一区二区三区视频免付费 | 久久这里只有精品99 | 四虎黄色网址 | 高跟鞋肉丝交足91 | 国产一区在线免费观看 | 超碰国产在线观看 | 国产永久在线 | 免费国产一级 | 丁香花婷婷 | 久久人人爽人人爽人人片亚洲 | 免费国产在线观看 | av在线播放网 | 欧美午夜精品久久久久久人妖 | 欧美黑人精品一区二区不卡 | 黄色av网站在线 | 午夜在线 | 91成人小视频 | 国产主播精品 | 国产尤物在线 | 日韩福利| 91丨porny丨户外露出 | 在线视频久 | www.久久久久 | 日本美女影院 | 国产日产亚洲精品 | 在线免费小视频 | x88av在线| 一区二区视 | 午夜啪啪网站 | av在线播放地址 | 依人九九 | 麻豆精品一区二区 | 亚洲69av | 国产精品一区不卡 | 成人免费在线观看 | 91一区二区三区 | 乳孔很大能进去的av番号 | 国产精品18p | 久日精品视频 | 亚洲欧美丝袜中文综合 | 国产乱在线| 国产福利小视频 | www.国产色| 在线视频中文字幕 | 超碰97人人草 | 中文字幕不卡免费视频 | 337p粉嫩大胆噜噜噜噜一区二区 | 成人av一区二区三区在线观看 | a在线| 国产丝袜在线 | www.久久视频| 久操这里只有精品 | 亚洲射 | 日本一区二区三区四区五区 | 久久精品中文 | 国产视频第一页 | 欧美图片一区二区三区 | 男人天堂综合 | 亚洲综合色站 | 国产乱论 | 久久视频免费看 | 性色av网站 | 日韩特一级 | 男人的天堂视频 | 欧美激情在线 | 男人天堂亚洲 | 98久久 | 欧美日韩国产三区 | 亚洲成人av一区 | 9i精品福利一区二区三区 | 另类小说婷婷 | 久久久精品久久久久 | 久久精品国产77777蜜臀 | 久久久久草 | 黄色录像a级片 | 人人草人人爱 | 欧美国产三级 | 精品一区二区三区久久久 | 国产网址视频 | 欧美一级淫片免费视频魅影视频 | 中国一级女人毛片 | 2000xxx影院 在线视频 | 成人7777 | japanese国产| 波多野吉衣一区二区三区 | 欧美中文字幕在线视频 | 国产98在线 | 亚洲天堂资源在线 | 精品国产一区二区三区久久久久久 | 88xxav| 国产suv精品一区二区 | 爽爽影院在线 | 超碰cc | 国产91视频在线观看 | 国产成人精品网站 | 六月综合网 | 国产福利一二 |