青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評(píng)論-2670  文章-0  trackbacks-0

    今天照著C Minus的語(yǔ)法(略有修改)設(shè)計(jì)出了C Minus的語(yǔ)法樹(shù)。語(yǔ)法樹(shù)的設(shè)計(jì)盡量讓生成語(yǔ)法樹(shù)的代碼易于編寫(xiě)。每一個(gè)結(jié)構(gòu)的意義十分明確,而且結(jié)構(gòu)與結(jié)構(gòu)之間不需要有相互聯(lián)系。舉個(gè)例子,在生成語(yǔ)法樹(shù)的時(shí)候,一個(gè)變量定義“Point p;”由兩部分組成。其中第一部分是字符串"Point"而不是指向一個(gè)類(lèi)型定義的指針TypeDeclaration*。當(dāng)然至于Point代表什么,自有語(yǔ)義分析器代為理解。

    過(guò)幾天等畢業(yè)論文初稿寫(xiě)完了,我將使用Vczh Combinator Parser為C Minus構(gòu)造語(yǔ)法分析器。前天為Vczh Combinator Parser加上了錯(cuò)誤處理的能力,至此這個(gè)工具已經(jīng)可以為編譯器服務(wù)了。

    語(yǔ)法樹(shù)分為四大部分,其功能由四套類(lèi)繼承結(jié)構(gòu)承擔(dān),基類(lèi)分別是:
    VL_CMinusType:類(lèi)型表達(dá)式
    VL_CMinusExpression:值表達(dá)式
    VL_CMinusStatement:語(yǔ)句表達(dá)式
    VL_CMinusDeclaration:程序全局對(duì)象聲明

    下面是語(yǔ)法樹(shù)的代碼:

  1 /*******************************************************************************
  2 Vczh Library++ 2.0
  3 JIT::C簡(jiǎn)化版語(yǔ)法樹(shù)
  4 開(kāi)發(fā)者:陳梓瀚
  5 *******************************************************************************/
  6 #ifndef VL_JIT_CMINUS
  7 #define VL_JIT_CMINUS
  8 
  9 #include "..\..\..\Data\Data\VL_Data_Basic.h"
 10 #include "..\..\..\Data\Data\VL_Data_String.h"
 11 #include "..\..\..\Data\Data\VL_Data_List.h"
 12 #include "..\..\..\Data\Data\VL_Data_Map.h"
 13 
 14 namespace vl
 15 {
 16     namespace jit
 17     {
 18         namespace cminus
 19         {
 20             using namespace collection;
 21 
 22             class VL_CMinusExpressionInfo : public VL_Base
 23             {
 24             public:
 25                 VInt                            Line;
 26 
 27                 VL_CMinusExpressionInfo();
 28             };
 29 
 30 /*********************************************************************************************************
 31 類(lèi)型表達(dá)式
 32 *********************************************************************************************************/
 33 
 34             class VL_CMinusType : public VL_Base
 35             {
 36             public:
 37                 typedef VL_AutoPtr<VL_CMinusType>                            Ptr;
 38                 typedef VL_List<Ptr , false , VL_CMinusType>                List;
 39                 typedef VL_List<VL_Fullpair<VUnicodeString , Ptr> , false>    NamedList;
 40 
 41                 VL_CMinusExpressionInfo            Info;
 42             };
 43 
 44             class VL_CMinusNamedType : public VL_CMinusType
 45             {
 46             public:
 47                 VUnicodeString                    Name;
 48 
 49                 VL_CMinusNamedType();
 50                 VL_CMinusNamedType(VUnicodeString aName);
 51             };
 52 
 53             class VL_CMinusPointerType : public VL_CMinusType
 54             {
 55             public:
 56                 VL_CMinusType::Ptr                Type;
 57 
 58                 VL_CMinusPointerType();
 59                 VL_CMinusPointerType(VL_CMinusType::Ptr aType);
 60             };
 61 
 62             class VL_CMinusArrayType : public VL_CMinusType
 63             {
 64             public:
 65                 VL_CMinusType::Ptr                Type;
 66                 VInt                            Count;
 67 
 68                 VL_CMinusArrayType();
 69                 VL_CMinusArrayType(VL_CMinusType::Ptr aType , VInt aCount);
 70             };
 71 
 72             class VL_CMinusFunctionType : public VL_CMinusType
 73             {
 74             public:
 75                 VL_CMinusType::Ptr                ReturnType;
 76                 VL_CMinusType::List                ParameterTypes;
 77 
 78                 VL_CMinusFunctionType();
 79                 VL_CMinusFunctionType(VL_CMinusType::Ptr aReturnType , VL_CMinusType::List& aParameterTypes);
 80             };
 81 
 82             class VL_CMinusStructType : public VL_CMinusType
 83             {
 84             public:
 85                 VL_CMinusType::NamedList        MemberTypes;
 86 
 87                 VL_CMinusStructType();
 88                 VL_CMinusStructType(VL_CMinusType::NamedList& aMemberTypes);
 89             };
 90 
 91 /*********************************************************************************************************
 92 值表達(dá)式
 93 *********************************************************************************************************/
 94 
 95             class VL_CMinusExpression : public VL_Base
 96             {
 97             public:
 98                 typedef VL_AutoPtr<VL_CMinusExpression>                        Ptr;
 99                 typedef VL_List<Ptr , false , VL_CMinusExpression>            List;
100                 typedef VL_List<VL_Fullpair<VUnicodeString , Ptr> , false>    NamedList;
101 
102                 VL_CMinusExpressionInfo            Info;
103             };
104 
105             enum VLE_CMinusPrimitiveKind
106             {
107                 vcpkInt,
108                 vcpkFloat,
109                 vcpkBool,
110                 vcpkChar,
111                 vcpkWChar,
112                 vcpkString,
113                 vcpkWString,
114                 vcpkName,
115                 vcpkNull
116             };
117             class VL_CMinusPrimitiveExpression : public VL_CMinusExpression
118             {
119             public:
120                 VLE_CMinusPrimitiveKind            Kind;
121                 VInt                            IntValue;
122                 VDouble                            FloatValue;
123                 VBool                            BoolValue;
124                 VWChar                            CharValue;
125                 VUnicodeString                    StringValue;
126 
127                 VL_CMinusPrimitiveExpression(VInt Value);
128                 VL_CMinusPrimitiveExpression(VDouble Value);
129                 VL_CMinusPrimitiveExpression(VBool Value);
130                 VL_CMinusPrimitiveExpression(VWChar Value , VBool Unicode);
131                 VL_CMinusPrimitiveExpression(VUnicodeString Value , VBool Unicode);
132                 VL_CMinusPrimitiveExpression(VUnicodeString Value);
133             };
134 
135             enum VLE_CMinusUnaryOperator
136             {
137                 vcuoPositive,
138                 vcuoNegative,
139                 vcuoBitNot,
140                 vcuoNot,
141                 vcboAddress,
142                 vcboValue
143             };
144             class VL_CMinusUnaryExpression : public VL_CMinusExpression
145             {
146             public:
147                 VLE_CMinusUnaryOperator            Operator;
148                 VL_CMinusExpression::Ptr        Expression;
149 
150                 VL_CMinusUnaryExpression();
151                 VL_CMinusUnaryExpression(VLE_CMinusUnaryOperator aOperator , VL_CMinusExpression::Ptr aExpression);
152             };
153 
154             enum VLE_CMinusBinaryOperator
155             {
156                 vcboAdd,
157                 vcboSub,
158                 vcboMul,
159                 vcboDiv,
160                 vcboMod,
161                 vcboBitAnd,
162                 vcboBitOr,
163                 vcboBitXor,
164                 vcboAnd,
165                 vcboOr,
166                 vcboXor,
167                 vcboLess,
168                 vcboLessAndEqual,
169                 vcboGreater,
170                 vcboGreaterAndEqual,
171                 vcboEqual,
172                 vcboNotEqual,
173                 vcboSubScript,
174             };
175             class VL_CMinusBinaryExpression : public VL_CMinusExpression
176             {
177             public:
178                 VLE_CMinusBinaryOperator        Operator;
179                 VL_CMinusExpression::Ptr        Left;
180                 VL_CMinusExpression::Ptr        Right;
181 
182                 VL_CMinusBinaryExpression();
183                 VL_CMinusBinaryExpression(VLE_CMinusBinaryOperator aOperator , VL_CMinusExpression::Ptr aLeft , VL_CMinusExpression::Ptr aRight);
184             };
185 
186             class VL_CMinusInvokeExpression : public VL_CMinusExpression
187             {
188             public:
189                 VL_CMinusExpression::Ptr        Function;
190                 VL_CMinusExpression::List        Parameters;
191 
192                 VL_CMinusInvokeExpression();
193                 VL_CMinusInvokeExpression(VL_CMinusExpression::Ptr aFunction , VL_CMinusExpression::List& aParameters);
194             };
195 
196             class VL_CMinusTypeCastExpression : public VL_CMinusExpression
197             {
198             public:
199                 VL_CMinusType::Ptr                Type;
200                 VL_CMinusExpression::Ptr        Expression;
201 
202                 VL_CMinusTypeCastExpression();
203                 VL_CMinusTypeCastExpression(VL_CMinusType::Ptr aType , VL_CMinusExpression::Ptr aExpression);
204             };
205 
206             class VL_CMinusArrayBuildingExpression : public VL_CMinusExpression
207             {
208             public:
209                 VL_CMinusType::Ptr                Type;
210                 VL_CMinusExpression::List        Expressions;
211 
212                 VL_CMinusArrayBuildingExpression();
213                 VL_CMinusArrayBuildingExpression(VL_CMinusType::Ptr aType , VL_CMinusExpression::List& aExpressions);
214             };
215 
216             class VL_CMinusStructBuildingExpression : public VL_CMinusExpression
217             {
218             public:
219                 VL_CMinusType::Ptr                Type;
220                 VL_CMinusExpression::NamedList    MemberValues;
221 
222                 VL_CMinusStructBuildingExpression();
223                 VL_CMinusStructBuildingExpression(VL_CMinusType::Ptr aType , VL_CMinusExpression::NamedList& aMemberValues);
224             };
225 
226 /*********************************************************************************************************
227 語(yǔ)句表達(dá)式
228 *********************************************************************************************************/
229 
230             class VL_CMinusStatement : public VL_Base
231             {
232             public:
233                 typedef VL_AutoPtr<VL_CMinusStatement>                Ptr;
234                 typedef VL_List<Ptr , false , VL_CMinusStatement*>    List;
235 
236                 VL_CMinusExpressionInfo            Info;
237             };
238 
239             class VL_CMinusVariableStatement : public VL_CMinusStatement
240             {
241             public:
242                 VBool                            Const;
243                 VUnicodeString                    Name;
244                 VL_CMinusType::Ptr                Type;
245                 VL_CMinusExpression::Ptr        Expression;
246 
247                 VL_CMinusVariableStatement();
248                 VL_CMinusVariableStatement(VBool aConst , VUnicodeString aName , VL_CMinusType::Ptr aType , VL_CMinusExpression::Ptr aExpression);
249             };
250 
251             class VL_CMinusExpressionStatement : public VL_CMinusStatement
252             {
253             public:
254                 VL_CMinusExpression::Ptr        Expression;
255 
256                 VL_CMinusExpressionStatement();
257                 VL_CMinusExpressionStatement(VL_CMinusExpression::Ptr aExpression);
258             };
259 
260             enum VLE_CMinusAssignmentOperator
261             {
262                 vcaoAssignment,
263                 vcaoAdd,
264                 vcaoSub,
265                 vcaoMul,
266                 vcaoDiv,
267                 vcaoMod,
268                 vcaoBitAnd,
269                 vcaoBitOr,
270                 vcaoBitXor,
271                 vcaoAnd,
272                 vcaoOr,
273                 vcaoXor
274             };
275             class VL_CMinusAssignmentStatement : public VL_CMinusStatement
276             {
277             public:
278                 VLE_CMinusAssignmentOperator    Operator;
279                 VL_CMinusExpression::Ptr        Left;
280                 VL_CMinusExpression::Ptr        Right;
281 
282                 VL_CMinusAssignmentStatement();
283                 VL_CMinusAssignmentStatement(VLE_CMinusAssignmentOperator aOperator , VL_CMinusExpression::Ptr aLeft , VL_CMinusExpression::Ptr aRight);
284             };
285 
286             class VL_CMinusIfStatement : public VL_CMinusStatement
287             {
288             public:
289                 VL_CMinusExpression::Ptr        Condition;
290                 VL_CMinusStatement::Ptr            TrueBody;
291                 VL_CMinusStatement::Ptr            FalseBody;
292 
293                 VL_CMinusIfStatement();
294                 VL_CMinusIfStatement(VL_CMinusExpression::Ptr aCondition , VL_CMinusStatement::Ptr aTrueBody , VL_CMinusStatement::Ptr aFalseBody);
295             };
296 
297             class VL_CMinusWhileStatement : public VL_CMinusStatement
298             {
299             public:
300                 VL_CMinusExpression::Ptr        Condition;
301                 VL_CMinusStatement::Ptr            Body;
302 
303                 VL_CMinusWhileStatement();
304                 VL_CMinusWhileStatement(VL_CMinusExpression::Ptr aCondition , VL_CMinusStatement::Ptr aBody);
305             };
306 
307             class VL_CMinusDoWhileStatement : public VL_CMinusStatement
308             {
309             public:
310                 VL_CMinusExpression::Ptr        Condition;
311                 VL_CMinusStatement::Ptr            Body;
312 
313                 VL_CMinusDoWhileStatement();
314                 VL_CMinusDoWhileStatement(VL_CMinusExpression::Ptr aCondition , VL_CMinusStatement::Ptr aBody);
315             };
316 
317             class VL_CMinusBreakStatement : public VL_CMinusStatement
318             {
319             public:
320             };
321 
322             class VL_CMinusContinueStatement : public VL_CMinusStatement
323             {
324             public:
325             };
326 
327             class VL_CMinusReturnStatement : public VL_CMinusStatement
328             {
329             public:
330                 VL_CMinusExpression::Ptr        Expression;
331 
332                 VL_CMinusReturnStatement();
333                 VL_CMinusReturnStatement(VL_CMinusExpression::Ptr aExpression);
334             };
335 
336             class VL_CMinusBlockStatement : public VL_CMinusStatement
337             {
338             public:
339                 VL_CMinusStatement::List        Statements;
340 
341                 VL_CMinusBlockStatement();
342                 VL_CMinusBlockStatement(VL_CMinusStatement::List& aStatements);
343             };
344 
345 /*********************************************************************************************************
346 程序結(jié)構(gòu)
347 *********************************************************************************************************/
348 
349             class VL_CMinusDeclaration : public VL_Base
350             {
351             public:
352                 typedef VL_AutoPtr<VL_CMinusDeclaration>                Ptr;
353                 typedef VL_List<Ptr , false , VL_CMinusDeclaration*>    List;
354 
355                 VL_CMinusExpressionInfo            Info;
356                 VUnicodeString                    Name;
357             };
358 
359             class VL_CMinusTypeDeclaration : public VL_CMinusDeclaration
360             {
361             public:
362                 VL_CMinusType::Ptr                Type;
363 
364                 VL_CMinusTypeDeclaration();
365                 VL_CMinusTypeDeclaration(VUnicodeString aName , VL_CMinusType::Ptr aType);
366             };
367 
368             class VL_CMinusVariableDeclaration : public VL_CMinusDeclaration
369             {
370             public:
371                 VBool                            Const;
372                 VL_CMinusType::Ptr                Type;
373                 VL_CMinusExpression::Ptr        Expression;
374 
375                 VL_CMinusVariableDeclaration();
376                 VL_CMinusVariableDeclaration(VUnicodeString aName , VBool aConst , VL_CMinusType::Ptr aType , VL_CMinusExpression::Ptr aExpression);
377             };
378 
379             class VL_CMinusFunctionDeclaration : public VL_CMinusDeclaration
380             {
381             public:
382                 VL_CMinusType::Ptr                ReturnType;
383                 VL_CMinusType::NamedList        ParameterTypes;
384                 VL_CMinusStatement::Ptr            Body;
385 
386                 VL_CMinusFunctionDeclaration();
387                 VL_CMinusFunctionDeclaration(VUnicodeString aName , VL_CMinusType::Ptr aReturnType , VL_CMinusType::NamedList& aParameterTypes , VL_CMinusStatement::Ptr aBody);
388             };
389 
390             class VL_CMinusExternalFunctionDeclaration : public VL_CMinusDeclaration
391             {
392             public:
393                 VL_CMinusType::Ptr                ReturnType;
394                 VL_CMinusType::List                ParameterTypes;
395                 VUnicodeString                    Alias;
396 
397                 VL_CMinusExternalFunctionDeclaration();
398                 VL_CMinusExternalFunctionDeclaration(VUnicodeString aName , VL_CMinusType::Ptr aReturnType , VL_CMinusType::List& aParameterTypes , VUnicodeString aAlias);
399             };
400 
401             class VL_CMinusProgram : public VL_Base
402             {
403             public:
404                 VL_CMinusDeclaration::List        Declarations;
405             };
406         }
407     }
408 }
409 
410 #endif
posted on 2009-04-24 00:58 陳梓瀚(vczh) 閱讀(3095) 評(píng)論(5)  編輯 收藏 引用 所屬分類(lèi): JIT

評(píng)論:
# re: JIT腳本引擎:C Minus語(yǔ)言語(yǔ)法樹(shù)定型 2009-04-26 22:42 | yindf
整個(gè)定義看起來(lái)很清晰,不知道后面的實(shí)現(xiàn)怎么樣?  回復(fù)  更多評(píng)論
  
# re: JIT腳本引擎:C Minus語(yǔ)言語(yǔ)法樹(shù)定型 2009-04-27 05:33 | 陳梓瀚(vczh)
語(yǔ)法分析不是接口的一部分,是用來(lái)給測(cè)試程序調(diào)用的,所以再爛都無(wú)所謂。不過(guò)我用了之前自己做的combinator parser,寫(xiě)得再亂也很清晰。  回復(fù)  更多評(píng)論
  
# re: JIT腳本引擎:C Minus語(yǔ)言語(yǔ)法樹(shù)定型 2009-04-28 16:58 | 空明流轉(zhuǎn)
@陳梓瀚(vczh)
NO,這個(gè)最清晰了:我在QQ上喊一句,vc啊,幫我做個(gè)編譯器吧。你就幫我把方案搞定,嘎嘎。  回復(fù)  更多評(píng)論
  
# re: JIT腳本引擎:C Minus語(yǔ)言語(yǔ)法樹(shù)定型 2009-04-29 09:20 | au
# re: JIT腳本引擎:C Minus語(yǔ)言語(yǔ)法樹(shù)定型 2009-05-18 16:29 | 旱圣
T_T.........
沒(méi)看懂。。。。。  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲福利视频在线| 久久精品一区蜜桃臀影院| 国产亚洲在线| 亚洲尤物影院| 99在线精品视频在线观看| 欧美成人国产一区二区| 狠狠久久亚洲欧美专区| 久久久久免费视频| 久久久久一本一区二区青青蜜月| 国产亚洲欧洲| 免费观看欧美在线视频的网站| 久久婷婷麻豆| 亚洲精品视频在线观看免费| 亚洲黄色免费| 欧美成人免费网| 中文国产成人精品久久一| 亚洲天堂成人在线观看| 国产午夜精品全部视频播放| 欧美成人蜜桃| 欧美视频免费在线| 欧美伊人久久久久久久久影院 | 悠悠资源网亚洲青| 欧美大片在线观看一区二区| 欧美日韩国产成人高清视频| 亚洲一区激情| 久久综合色天天久久综合图片| 亚洲东热激情| 一区二区三区精品| 国内精品久久久久久久影视蜜臀 | 久久久精品一品道一区| 欧美激情一区二区三区在线| 亚洲美女视频在线免费观看| 欧美二区在线观看| 亚洲一区二区高清视频| 欧美一区二区三区免费看| 亚洲日本中文字幕免费在线不卡| 欧美另类亚洲| 久久亚洲国产精品一区二区| 免费看成人av| 久久精品中文字幕一区二区三区| 欧美va天堂| 久久久欧美一区二区| 欧美久色视频| 久久视频一区二区| 欧美日韩亚洲精品内裤| 欧美高清在线播放| 国产精品亚洲人在线观看| 亚洲精品久久久蜜桃| 韩国欧美一区| 一本色道久久88综合亚洲精品ⅰ | 国产亚洲精品久久久久久| 欧美激情中文字幕一区二区| 国产毛片一区| 亚洲曰本av电影| 亚洲淫性视频| 国产精品国产a级| 亚洲精品自在久久| 亚洲麻豆国产自偷在线| 久久综合久久综合久久综合| 玖玖玖免费嫩草在线影院一区| 国产日产欧美a一级在线| 亚洲一区二区三| 午夜在线观看免费一区| 国产精品乱码一区二区三区| 在线中文字幕一区| 亚洲一级二级| 欧美日韩精品系列| 欧美一二三区精品| 欧美va天堂| 久久免费少妇高潮久久精品99| 国产精品人人爽人人做我的可爱 | 亚洲一区综合| 欧美精品国产精品| 亚洲黄色一区| 亚洲精品在线观看免费| 久久综合久久美利坚合众国| 美国十次成人| 黄色亚洲在线| 久久久天天操| 欧美电影在线观看| 亚洲激情成人| 欧美高清视频一二三区| 99国产精品久久久久久久成人热 | 欧美精品一区二区三区一线天视频| 美腿丝袜亚洲色图| 91久久精品美女| 欧美成人性网| 亚洲精品视频一区| 欧美国产日产韩国视频| 亚洲一级黄色| 欧美午夜免费| 亚洲激情二区| 香蕉久久精品日日躁夜夜躁| 国产精品久久国产精品99gif | 性做久久久久久久免费看| 国产精品久久午夜夜伦鲁鲁| 亚洲永久免费av| 99热在线精品观看| 国产精品久久一卡二卡| 亚洲尤物精选| 久久久噜噜噜久噜久久 | 欧美sm视频| 亚洲精品免费观看| 午夜精彩视频在线观看不卡 | 欧美日韩国产二区| 亚洲一区二区欧美| 噜噜噜噜噜久久久久久91| 91久久精品国产91久久| 欧美色网在线| 久久久中精品2020中文| 亚洲视频免费看| 久久免费视频网站| 一区二区三区四区蜜桃| 国产午夜精品久久久久久久| 欧美chengren| 亚洲综合色视频| 欧美激情一区二区三区不卡| 在线精品视频免费观看| 国产视频欧美| 欧美激情综合色综合啪啪| 亚洲一区二区四区| 欧美激情一区二区三区高清视频| 亚洲欧美日产图| 亚洲人成欧美中文字幕| 国产女人aaa级久久久级| 欧美电影免费观看大全| 亚洲欧美另类久久久精品2019| 亚洲国产精品传媒在线观看| 欧美在线国产| 亚洲成色精品| 一区二区三区在线免费观看 | 国产精品99久久久久久久久| 暖暖成人免费视频| 欧美一区三区三区高中清蜜桃| 亚洲日韩欧美视频| 国产精品区一区二区三| 国产精品黄色在线观看| 欧美大尺度在线观看| 欧美在线3区| 亚洲一区二区视频| 一区二区精品| 亚洲欧洲日韩综合二区| 免费欧美在线| 久久精品亚洲一区二区| 午夜久久美女| 宅男噜噜噜66一区二区| 亚洲精品一区二区三区四区高清 | 久久综合图片| 久久精品最新地址| 久久伊人免费视频| 国产专区欧美专区| 国产日韩欧美二区| 国产精品一级二级三级| 欧美午夜视频网站| 欧美婷婷久久| 欧美午夜宅男影院| 欧美日韩国产黄| 欧美激情综合网| 欧美成人精品三级在线观看 | 亚洲国产欧美国产综合一区| 嫩草影视亚洲| 欧美肥婆在线| 欧美国产欧美亚州国产日韩mv天天看完整| 久久漫画官网| 性欧美精品高清| 久久精品官网| 欧美xart系列高清| 亚洲福利视频三区| 亚洲日本aⅴ片在线观看香蕉| 亚洲第一黄色| 亚洲欧洲日产国码二区| 亚洲国产精品久久久久婷婷884| 免费欧美电影| 亚洲欧洲综合另类| 99re66热这里只有精品4| 一区二区久久久久久| 亚洲在线视频一区| 欧美在线播放| 噜噜噜躁狠狠躁狠狠精品视频 | 久久久www免费人成黑人精品| 欧美自拍偷拍| 欧美成人一区二区三区| 欧美日韩国产一区二区三区| 国产精品久久久久久久久久久久 | 欧美日韩精品免费看| 国产精品美女久久久久aⅴ国产馆| 国产精品成人一区二区艾草| 国产美女在线精品免费观看| 黄色成人在线网址| 在线成人h网| 日韩一级裸体免费视频| 亚洲专区国产精品| 免费观看亚洲视频大全| 亚洲精品人人| 亚洲欧美激情视频在线观看一区二区三区 | 国产精品呻吟| 亚洲大片在线观看| 亚洲在线第一页| 欧美国产日韩免费| 99亚洲视频|