锘??xml version="1.0" encoding="utf-8" standalone="yes"?>美玉足脚交一区二区三区图片,在线日韩中文字幕,欧美激情视频一区二区三区免费http://www.shnenglu.com/Plator/category/7159.html瀛︽湳璁ㄨ鍗氬zh-cnWed, 28 May 2008 07:25:14 GMTWed, 28 May 2008 07:25:14 GMT60絎竴嬈′嬌鐢╢lexhttp://www.shnenglu.com/Plator/archive/2008/05/28/51366.html鑿?qiáng)棣?/dc:creator>鑿?qiáng)棣?/author>Wed, 28 May 2008 02:47:00 GMThttp://www.shnenglu.com/Plator/archive/2008/05/28/51366.htmlhttp://www.shnenglu.com/Plator/comments/51366.htmlhttp://www.shnenglu.com/Plator/archive/2008/05/28/51366.html#Feedback1http://www.shnenglu.com/Plator/comments/commentRss/51366.htmlhttp://www.shnenglu.com/Plator/services/trackbacks/51366.html緇忚佸笀浠嬬粛錛岃屼笖鏈榪戣繘琛屽疄楠屼簩錛堝皢姝e垯琛ㄨ揪寮忚漿鎹負(fù)DFA錛岀劧鍚庤漿鎹負(fù)浠g爜錛涙兂鍋氫竴涓被浼間簬flex鐨勮蔣浠訛級(jí)瑙夊緱flex寰堝濡欙紝杈撳叆涓涓鍒欒〃杈懼紡灝辮兘澶熻緭鍑哄搴旂殑鎵弿紼嬪簭錛岃繖涔熷紑濮嬬湡姝d綋鐜拌佸笀璇寸殑鑷姩鍖栥傛垜涓鐩村璁$畻鏈虹殑涓涓粓鏋侀棶棰橈紙“浠涔堣兘澶熻鏈夋晥鍦拌嚜鍔ㄥ寲”錛夊緢鎰熷叴瓚o紝鍥犳鎯沖厛浠?/span>flex寮濮嬪榪欐柟闈㈡湁鐐規(guī)劅鎬х殑璁よ瘑錛?/span>

鍦ㄧ綉涓婃悳绱?/span>flex錛屽畨瑁?/span>flex錛屽厛涓嬭澆flex錛堝師鏈墦綆楁斁涓婃潵鐨勶紝浣嗘槸鑰冭檻鍒扮増鏉冪殑闂錛岃繕鏄笉瑕佷簡銆傞渶瑕佺殑鏈嬪弸錛屾垜鍙互鍙戠粰浣狅級(jí)錛岀劧鍚庢寜鐓ч粯璁ょ殑姝ラ閫愭瀹夎銆?/span>

瀹夎鍚庯紝璁劇疆鐜鍙橀噺錛屽皢Path鎸囧悜flex.exe鎵鍦ㄧ殑鏂囦歡澶癸紙鏈満涓婁負(fù)錛?/span>C:\Program Files\GnuWin32\bin錛屼竴鑸寜榛樿鏂瑰紡瀹夎鍚?/span>flex.exe閮藉湪璇ユ枃浠跺す鍐咃級(jí)錛屽叿浣撴楠わ細(xì)

→瀵?#8220;鎴戠殑鐢?shù)鑴?#8221;鍥炬爣鎸夊彸閿?#8594;閫夋嫨“灞炴?#8221;→閫夋嫨“楂樼駭”→鍗曞嚮“鐜鍙橀噺”→鍦?#8220;緋葷粺鍙橀噺”涓煡鎵?/span>Path欏癸紝騫墮夋嫨涔?#8594;鎸?#8220;緙栬緫”→鍦?#8220;鍙橀噺鍊?#8221;鐨勬渶鍚庝竴欏規(guī)坊鍔?#8220;;C:\Program Files\GnuWin32\bin”錛屾寜紜畾瀹屾垚銆?/span>


鏈榪戞垜鏄厛浠庤鏈?/span>TINY璇█寮濮嬶紝TINY璇█鐨?/span>lex鏂囦歡鍦ㄦ簮浠g爜鐨?/span>LEX鏂囦歡澶瑰唴

1.       鍦?/span>tiny.l鐨勬渶鍚庢坊鍔狅細(xì)

int yywrap()

{

return 1;

}

鐢ㄦ潵緇撴潫鎵弿

2.       鍦?/span>console涓婅緭鍏?/span>flex tiny.l錛岀敓鎴?/span>lex.yy.c錛屽皢鍏舵浛鎹?/span>scan.c錛岀紪璇戦摼鎺ョ敓鎴?/span>tiny鐨勭紪璇戝櫒銆?/span>

 

鍙傝冩枃鐚細(xì)

http://course.cugnc.com/bianyi/shiyan/CHAPTER/f1.htm

http://blog.csdn.net/litchh/archive/2004/07/14/40983.aspx

http://www.cnscn.org/read.php?tid-10862.html



]]>
MFC涓嶭EX 緇撳悎瑕佹敞鎰忕殑闂http://www.shnenglu.com/Plator/archive/2008/05/24/50983.html鑿?qiáng)棣?/dc:creator>鑿?qiáng)棣?/author>Sat, 24 May 2008 15:33:00 GMThttp://www.shnenglu.com/Plator/archive/2008/05/24/50983.htmlhttp://www.shnenglu.com/Plator/comments/50983.htmlhttp://www.shnenglu.com/Plator/archive/2008/05/24/50983.html#Feedback0http://www.shnenglu.com/Plator/comments/commentRss/50983.htmlhttp://www.shnenglu.com/Plator/services/trackbacks/50983.html鐢變簬flex寰寰涓烘垜浠敓鎴愮殑鏄?/span>C浠g爜錛?/span>lex.yy.c錛夛紝鑰屽疄闄呬笂鎴戜滑閫氬父瑕佹妸瀹冧滑搴旂敤鍒?/span>C++涓紝鐗瑰埆鏄簲鐢ㄥ埌Windows搴旂敤紼嬪簭涓潵錛屽湪MFC宸ョ▼涓嬫瀯閫犺瘝娉曞垎鏋愮▼搴忋?/span>

鎴戜滑寰寰鍙槸灝嗕駭鐢熺殑lex.yy.c鐩存帴娣誨姞鍒?/span>MFC宸ョ▼灝卞畬浜嬶紝浣嗘槸緙栬瘧鏃訛紝鐢變簬鍚勭鍚勬牱鐨勫師鍥狅紝鑰屼駭鐢熷ぇ閲忕殑璇硶閿欒錛岄毦浠ヤ慨鏀廣傛湰浜烘渶榪戝湪MFC涓嬫瀯閫犱竴涓墿鍏?/span>TINY璇█鐨勮瘝娉曞垎鏋愪篃鏄亣鍒頒簡涓浜涢棶棰橈紝鏌ラ槄浜嗗ぇ閲忚祫鏂欙紙宸茬粡灝嗕富瑕佺殑鍙傝冭祫鏂欐斁鍒?/span>lex瀛︿範(fàn)鏍忕洰涓婏紝璇風(fēng)湅錛?a href="http://www.shnenglu.com/Plator/category/7159.html">http://www.shnenglu.com/Plator/category/7159.html錛夛紝鑰楄垂浜嗘垜涓ゅぉ鐨勬椂闂磋В鍐寵繖浜涢棶棰樸傚洜姝ゆ垜鎯沖啓鏈枃錛屽皢鎶婁竴浜涙敞鎰忛棶棰樺彊榪板涓嬶紝甯屾湜瀵逛竴浜涙湅鍙嬫湁鎵甯姪銆?/span>

 

1.       瑕佸皢lex.yy.c鏀逛負(fù)CPP鏂囦歡錛?/span>lex.yy.cpp銆傚洜涓?/span>MFC鏄?/span>C++宸ョ▼錛岃嫢涓嶄慨鏀瑰垯浼?xì)鍑虹幇閿欒锛?/span>

2.       灝?/span>#include <stdio.h>鏀逛負(fù)#include <stdafx.h>錛屼笉鐒朵細(xì)鍑虹幇濡備笅閿欒錛?/span>unexpected end of file while looking for precompiled header directive錛?/span>

3.       灝?/span>flex瀹夎鐩綍涓?/span>include鏂囦歡澶圭殑unistd.h娣誨姞鍒?/span>MFC宸ョ▼鍐咃紝騫朵慨鏀?/span>#include <unistd.h>錛屼負(fù)#include "unistd.h"銆傚洜涓?/span>unistd.h鏂囦歡涓畾涔変簡璇嶆硶鍒嗘瀽闇瑕佺敤鍒頒竴浜涘ご鏂囦歡銆?/span>

4.       濡傛灉lex婧愭枃浠墮渶瑕佺敤input璇誨彇瀛楃錛屽垯搴旇鎹㈢敤yyinput錛屽洜涓?/span>input浼?xì)涓?/span>C++涓殑嫻佸悕璇嶉噸澶嶏紝浼?xì)鍑虹幇缂栬瘧閿欒锛?/span>

5.       娉ㄦ剰涓浜?/span>I/O渚嬬▼鐨勫簲鐢紝鍏蜂綋璇瘋錛?a href="http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html">http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html

 

鍙槸鐭煭鍑犱釜閿欒錛屼絾鏄В鍐崇殑榪囩▼鍙傝冧簡澶ч噺璧勬枡錛岃櫧鐒朵笉鐭ラ亾榪欎簺璧勬枡鍑鴻嚜浣曚漢涔嬫墜錛屼絾鏄湪姝ゆ劅璋㈣繖浜涗綔鑰咃紒



]]>
Lex 鍏ラ棬 [杞澆]http://www.shnenglu.com/Plator/archive/2008/05/24/50982.html鑿?qiáng)棣?/dc:creator>鑿?qiáng)棣?/author>Sat, 24 May 2008 15:28:00 GMThttp://www.shnenglu.com/Plator/archive/2008/05/24/50982.htmlhttp://www.shnenglu.com/Plator/comments/50982.htmlhttp://www.shnenglu.com/Plator/archive/2008/05/24/50982.html#Feedback0http://www.shnenglu.com/Plator/comments/commentRss/50982.htmlhttp://www.shnenglu.com/Plator/services/trackbacks/50982.htmlFirst!
lex紼嬪簭鐨勭粨鏋勬槸榪欐牱鐨勶紒

瀹氫箟
%%
瑙勫垯
%%
鐢ㄦ埛浠g爜

 

涓涓?Lex 紼嬪簭鍒嗕負(fù)涓変釜孌碉細(xì)絎竴孌墊槸 C 鍜?Lex 鐨勫叏灞澹版槑錛岀浜屾鍖呮嫭妯″紡錛圕 浠g爜錛夛紝絎笁孌墊槸琛ュ厖鐨?C 鍑芥暟銆?榪欎簺孌典互%%鏉ュ垎鐣屻?涓嬮潰鏄竴涓鏁頒笌瀛楁暟鐨勭粺璁″伐鍏楓?/p>


        int num_lines = 0, num_chars = 0;
 %%
\n      ++num_lines; ++num_chars;
.       ++num_chars;

%%
main()
        {
        yylex();
        printf( "# of lines = %d, # of chars = %d\n",
                num_lines, num_chars );
        }

 

Second!
瀵笷irst鍐呭鐨勫洖欏?
C 鍜?Lex 鐨勫叏灞澹版槑
榪欎竴孌典腑鎴戜滑鍙互澧炲姞 C 鍙橀噺澹版槑銆傝繖閲屾垜浠皢涓哄瓧鏁扮粺璁$▼搴忓0鏄庝竴涓暣鍨嬪彉閲忥紝鏉ヤ繚瀛樼▼搴忕粺璁″嚭鏉ョ殑瀛楁暟銆傛垜浠繕灝嗚繘琛?Lex 鐨勬爣璁板0鏄庛?

瀛楁暟緇熻紼嬪簭鐨勫0鏄?/p>

       %{
        int wordCount = 0;
        %}
        chars [A-za-z\_\'\.\"]
        numbers ([0-9])+
        delim [" "\n\t]
        whitespace {delim}+
        words {chars}+
        %%

 

涓や釜鐧懼垎鍙鋒爣璁版寚鍑轟簡 Lex 紼嬪簭涓繖涓孌電殑緇撴潫鍜屼笁孌典腑絎簩孌電殑寮濮嬨?

Lex 鐨勬ā寮忓尮閰嶈鍒?
璁╂垜浠湅涓涓?Lex 鎻忚堪鎴戜滑鎵瑕佸尮閰嶇殑鏍囪鐨勮鍒欍傦紙鎴戜滑灝嗕嬌鐢?C 鏉ュ畾涔夋爣璁板尮閰嶅悗鐨勫姩浣溿傦級(jí)緇х畫鐪嬫垜浠殑瀛楁暟緇熻紼嬪簭錛屼笅闈㈡槸鏍囪鍖歸厤鐨勮鍒欍?
瀛楁暟緇熻紼嬪簭涓殑 Lex 瑙勫垯

       {words} { wordCount++; /*
        increase the word count by one*/ }
        {whitespace} { /* do
        nothing*/ }
        {numbers} { /* one may
        want to add some processing here*/ }
        %%

 
C 浠g爜
Lex 緙栫▼鐨勭涓夋錛屼篃灝辨槸鏈鍚庝竴孌佃鐩栦簡 C 鐨勫嚱鏁板0鏄庯紙鏈夋椂鏄富鍑芥暟錛夈傛敞鎰忚繖涓孌靛繀欏誨寘鎷?yywrap() 鍑芥暟銆?Lex 鏈変竴濂楀彲渚涗嬌鐢ㄧ殑鍑芥暟鍜屽彉閲忋?鍏朵腑涔嬩竴灝辨槸 yywrap銆備竴鑸潵璇達(dá)紝yywrap() 鐨勫畾涔夊涓嬩緥銆傛垜浠皢鍦?楂樼駭 Lex 涓帰璁ㄨ繖涓闂銆?
瀛楁暟緇熻紼嬪簭鐨?C 浠g爜孌?/p>

       void main()
        {
        yylex(); /* start the
        analysis*/
        printf(" No of words:
        %d\n", wordCount);
        }
        int yywrap()
        {
        return 1;
        }

 

Lex 緙栫▼鐨勫熀鏈厓绱犲氨榪欐牱鎼炲畾浜嗭紝瀹冨皢甯姪浣犵紪鍐欑畝鍗曠殑璇嶆硶鍒嗘瀽紼嬪簭銆?
Third
楂樼駭Lex
Lex 鏈夊嚑涓嚱鏁板拰鍙橀噺鎻愪緵浜嗕笉鍚岀殑淇℃伅錛屽彲浠ョ敤鏉ョ紪璇戝疄鐜板鏉傚嚱鏁扮殑紼嬪簭銆備笅琛ㄤ腑鍒楀嚭浜嗕竴浜涘彉閲忓拰鍑芥暟錛屼互鍙?qiáng)瀹冧滑鐨勪娇鐢ㄣ?璇﹀敖鐨勫垪琛ㄨ鍙傝?Lex 鎵嬪唽銆?
Lex 鍙橀噺
   yyin  FILE* 綾誨瀷銆?瀹冩寚鍚?lexer 姝e湪瑙f瀽鐨勫綋鍓嶆枃浠躲?br>   yyout FILE* 綾誨瀷銆?瀹冩寚鍚戣褰?lexer 杈撳嚭鐨勪綅緗?緙虹渷鎯呭喌涓嬶紝yyin 鍜?yyout 閮芥寚鍚戞爣鍑嗚緭鍏ュ拰杈撳嚭銆?br>   yytext 鍖歸厤妯″紡鐨勬枃鏈瓨鍌ㄥ湪榪欎竴鍙橀噺涓紙char*錛夈?br>   yyleng 緇欏嚭鍖歸厤妯″紡鐨勯暱搴︺?br>   yylineno 鎻愪緵褰撳墠鐨勮鏁頒俊鎭傦紙lexer涓嶄竴瀹氭敮鎸併傦級(jí)

Lex 鍑芥暟
   yylex() 榪欎竴鍑芥暟寮濮嬪垎鏋愩?瀹冪敱 Lex 鑷姩鐢熸垚銆?br>   yywrap() 榪欎竴鍑芥暟鍦ㄦ枃浠訛紙鎴栬緭鍏ワ級(jí)鐨勬湯灝捐皟鐢ㄣ傚鏋滃嚱鏁扮殑榪斿洖鍊兼槸1錛屽氨鍋滄瑙f瀽銆?鍥犳瀹冨彲浠ョ敤鏉ヨВ鏋愬涓枃浠躲備唬鐮佸彲浠ュ啓鍦ㄧ涓夋錛岃繖灝辮兘澶熻В鏋愬涓枃浠躲?鏂規(guī)硶鏄嬌鐢?yyin 鏂囦歡鎸囬拡錛堣涓婅〃錛夋寚鍚戜笉鍚岀殑鏂囦歡錛岀洿鍒版墍鏈夌殑鏂囦歡閮借瑙f瀽銆傛渶鍚庯紝yywrap() 鍙互榪斿洖 1 鏉ヨ〃紺鴻В鏋愮殑緇撴潫銆?br>   yyless(int n) 榪欎竴鍑芥暟鍙互鐢ㄦ潵閫佸洖闄や簡鍓?n? 涓瓧絎﹀鐨勬墍鏈夎鍑烘爣璁般?br>   yymore() 榪欎竴鍑芥暟鍛婅瘔 Lexer 灝嗕笅涓涓爣璁伴檮鍔犲埌褰撳墠鏍囪鍚庛?
鍒版涓烘錛屽彲鑳戒綘鐪嬪埌l(fā)ex紼嬪簭榪樹細(xì)鑼冩檿錛屾病鍏崇郴錛屼笅闈㈡垜浠帴鐫鏉ワ紝鍒嗘瀽涓涓被pascal璇硶鐨勬瀬綆鏋愬櫒錛?
/* 榪欎釜灝辨槸娉ㄩ噴浜?/
  /* scanner for a toy Pascal-like language */
鐢蟲槑閮ㄥ垎寮濮?br>%{ 鍐呯殑涓滆タ浼?xì)鍘煘畞涓嶅姩鍦板嚭鐜板湪杈撳嚭鏂囦欢涓?}%

  %{
     /* need this for the call to atof() below */
     #include <math.h>
  %}
  DIGIT    [0-9]
  ID       [a-z][a-z0-9]*
  %%
妯″紡閮ㄥ垎寮濮?
  {DIGIT}+    {
    printf( "An integer: %s (%d)\n", yytext,
    atoi( yytext ) );
  }
  {DIGIT}+"."{DIGIT}*        {
    printf( "A float: %s (%g)\n", yytext,
    atof( yytext ) );
  }
  if|then|begin|end|procedure|function        {
    printf( "A keyword: %s\n", yytext );
  }
  {ID}        printf( "An identifier: %s\n", yytext );
  "+"|"-"|"*"|"/"   printf( "An operator: %s\n", yytext );
  "{"[^}\n]*"}"     /* eat up one-line comments */
  [ \t\n]+          /* eat up whitespace */
  .           printf( "Unrecognized character: %s\n", yytext );
  %%
琛ュ厖閮ㄥ垎寮濮?
  main( argc, argv )
   int argc;
   char **argv;
  {
    ++argv, --argc;  /* skip over program name */
    if ( argc > 0 )
      yyin = fopen( argv[0], "r" );
    else
      yyin = stdin;
    yylex();
  }
鎯寵鐪熸浜嗚Вlex, [[姝e垯琛ㄨ揪寮廬] 鏄叧閿?
Four
yytext 鍖歸厤妯″紡鐨勬枃鏈瓨鍌ㄥ彉閲? 鍙互閫氳繃鍦ㄧ敵鏄庨樁孌典嬌鐢?pointer鎴?array鏉ユ帶鍒舵槸涓涓瓧絎︽寚閽堣繕鏄竴涓瓧絎︽暟緇勩傛寚閽堟ā寮忎笌鏁扮粍妯″紡鍚勬湁鐗圭偣錛屽鑷村湪yytex鐢蟲槑涓婁篃涓嶄竴鏍鳳紝鍏蜂綋璇峰弬鑰僱ex鎵嬪唽錛?
鍦ㄦā寮忛樁孌典腑

  妯″紡            鍔ㄤ綔
  [ \t]+        putchar( ' ' );
  [ \t]+$       /* ignore this token */

妯″紡閮ㄥ垎鏄鍒欒〃杈懼紡錛屽姩浣滈儴鍒嗘槸澶勭悊鏂規(guī)硶錛屽姩浣滈儴鍒嗗鏋滄椂{寮澶達(dá)紝閭d箞錛屽姩浣滃皢浼?xì)鎸伨l埌},濡傛灉鍔ㄤ綔涓嚭鐜頒簡鎷彿{},寮濮嬮噰鐢?%{ %}鏉ヨ〃紺哄姩浣滃幓鍖烘銆傚姩浣滈儴鍒嗗鏋滄椂 |,灝辮〃紺轟笌涓嬩竴鏉¤鍒欐墽琛岀浉鍚岀殑鍔ㄤ綔銆?
濂界殑錛屾垜浠潵鐪嬩竴涓洿涓哄疄鐢ㄤ竴鐐圭殑lex紼嬪簭銆?br>鎴戜滑鍏堝畾涔変笁涓姩浣?
ECHO 灝唝ytext杈撳嚭
BEGIN 寮濮嬩竴涓潯浠跺鐞嗗潡
REJECT 鎸囩ず綆鏋愬櫒瀵瑰綋鍓嶈鍒欎笉鍋氬鐞嗭紝鑰屾槸閲囩敤絎簩鍖歸厤瑙勫垯銆?
  int word_count = 0;
  %%
  frob        special(); REJECT;
  [^ \t\n]+   ++word_count;
濡傛灉frob娌℃湁REJECT鍔ㄤ綔錛宖rob灝嗕笉浼?xì)琚鏁板Q屽洜涓鴻В鏋愬櫒鍦ㄩ氬父鎯呭喌涓嬶紝姣忎釜琚尮閰嶇殑瀵硅薄鍙細(xì)瀵逛竴涓姩浣滅敓鏁堬紝澶氫釜REJECT涔熸槸鍏佽鐨勶紝浼?xì)瀵绘壘涓嬩竴涓渶閰嶇殑瑙勫垯鏉ュ仛澶勭悊銆傛墍浠ワ紝涓嬮潰鐨勮鍒欎細(xì)鎶婅緭鍏ョ殑"abcd"澶勭悊鍚庤緭鍑?abcdabcaba".
  %%
  a        |
  ab       |
  abc      |
  abcd     ECHO; REJECT;
  .|\n     /* eat up any unmatched character */

`yymore()' 鍛婅瘔瑙f瀽鍣ㄤ笅涓嬈″尮閰嶇殑瑙勫垯錛屾弧瓚崇殑閮ㄥ垎灝嗕細(xì)娣誨姞鍒板綋鍓峺ytext鍊煎緱鍚庨潰鑰屼笉鏄浛鎹㈠畠銆?渚嬪錛屾寚瀹氱殑杈撳叆"mega-kludge"緇忚繃涓嬮潰鐨勭▼搴忓鐞嗗悗灝嗕細(xì)杈撳嚭"mega-mega-kludge"銆?
  %%
  mega-    ECHO; yymore();
  kludge   ECHO;
絎竴涓?"mega-" 琚弧瓚沖茍涓旇緭鍑? 鐒跺悗 "kludge" 婊¤凍, 浣嗘槸騫舵病鏈夋浛鎹箣鍓嶇殑"mega-"鑰屾槸"kludge"闄勫姞鍒頒粬鐨勫悗闈紝鐒跺悗杈撳嚭鐨勫叾瀹炴槸"mega-kludge".
yymore()闇瑕佷袱浠朵簨鎯呴渶瑕佹敞鎰忋傜涓錛寉ymnore()渚濊禆浜庤〃鐜板綋鍓嶅尮閰嶉」鐨勯暱搴yleng鐨勫鹼紝鎵浠ヤ嬌鐢▂ymore涓嶅厑璁告敼鍙榶yleng鐨勫箋傜浜岋紝yymore()鐨勪嬌鐢ㄤ細(xì)浣胯В鏋愬櫒浠樺嚭涓鐐圭偣鎬ц兘鐨勪唬浠楓?
鏈墆ymore()灝辨湁yyless()
yyless(n) 榪斿洖褰撳墠鍖歸厤欏歸櫎浜嗗紑濮嬬殑n涓瓧絎﹀唴鐨勬墍鏈夌殑鍐呭鍒拌緭鍏ョ紦瀛樺尯錛岃В鏋愬櫒澶勭悊涓嬩竴涓尮閰嶆椂錛屽畠浠皢浼?xì)琚噸鏂拌В鏋愩倅yless灝嗕細(xì)瀵艱嚧yytext涓巠yleng鐨勮皟鏁淬傦紙yyleng灝嗕細(xì)絳変簬=n錛?濡傝緭鍏?foobar"琚笅闈㈢殑紼嬪簭澶勭悊鍚庯紝灝嗕細(xì)杈撳嚭"boobarbar". 鍥犱負(fù)鍓峮=3涓瓧絎oo澶栫殑瀛楃bar琚噸鏂拌繑鍥炲埌杈撳叆緙撳瓨鍖轟簡銆?
  %%
  foobar    ECHO; yyless(3);
  [a-z]+    ECHO;
鍙傛暟0瀵逛簬yyless灝嗕細(xì)瀵艱嚧鏁翠釜褰撳墠鍖歸厤灝嗕細(xì)琚噸鏂拌В鏋愩傞櫎闈炰綘鏀瑰彉浜嗚В鏋愬櫒鏈潵鐨勫鐞嗘祦紼?濡備嬌鐢╞egin),榪欏皢浼?xì)瀵艰嚧弩@鐜粨鏉熴傞渶瑕佹敞鎰忕殑鏄紝yyless鏄竴涓畯錛屽茍涓斿湪flex杈撳叆鏂囦歡涓嬌鐢紝涓嶈兘鍦ㄥ叾浠栨簮鏂囦歡涓嬌鐢ㄣ?
unput(c) 灝嗗瓧絎鏀懼洖鍒拌緭鍏ユ祦涓紝璇ュ瓧絎﹀彲浠ラ噸鏂拌瑙f瀽銆備笅闈㈢殑鍔ㄤ綔灝嗗綋鍓嶇殑鍖歸厤鍊奸檮涓婃嫭鍙峰悗閲嶆柊榪涜鍖歸厤銆?
 {
  int i;
  /* Copy yytext because unput() trashes yytext */
  char *yycopy = strdup( yytext );
  unput( ')' );
  for ( i = yyleng - 1; i >= 0; --i )
    unput( yycopy[i] );
  unput( '(' );
  free( yycopy );
 }
娉ㄦ剰: 鐢變簬姣忔unput()灝嗘寚瀹氱殑瀛楃娣誨姞鍒拌緭鍏ユ簮鐨勫紑澶達(dá)紝鎵浠ュ皢瀛楃涓叉坊鍔犲埌杈撳叆婧愬紑澶村繀欏諱粠鍚庨亾鍓嶅鐞嗐備竴涓瘮杈冮噸瑕佺殑娼滃湪闂鏄嬌鐢╱nput()鐨勬椂鍊欙紝濡傛灉閲囩敤浜?pointer鎸囬拡妯″紡淇濆瓨yytext,unput浼?xì)鐮村潖yytext鐨勫唴瀹癸紝浠庢渶鍙寵竟鐨勫瓧絎﹀紑濮嬪皢浼?xì)鐮村潖宸﹁竟鐨勪竴涓瓧絎︺傚鏋滃湪unput()鍚庤鐢ㄥ埌yytext,浣犻鍏堝繀欏誨鍒朵竴浠統(tǒng)ytext,鎴栬呯敤%array妯″紡鏉ヤ繚瀛榶ytext. 鏈鍚庝綘涓嶈兘鏀句竴涓狤OF鍘昏瘯鍥炬爣蹇楄緭鍏ユ祦鐨勭粨鏉熴?
input 浠庤緭鍏ユ簮涓鍙栦笅涓涓瓧絎︺備緥濡傦紝涓嬮潰鏈夌殑渚嬪瓙灝嗕細(xì)鍚冩帀C璇█娉ㄩ噴

  %%
  "/*"        {
            register int c;
            for ( ; ; )
                {
                while ( (c = input()) != '*' &&
                        c != EOF )
                    ;    /* eat up text of comment */
                if ( c == '*' )
                    {
                    while ( (c = input()) == '*' )
                        ;
                    if ( c == '/' )
                        break;    /* found the end */
                    }
                if ( c == EOF )
                    {
                    error( "EOF in comment" );
                    break;
                    }
                }
            }

娉ㄦ剰: 濡傛灉綆鏋愬櫒閲囩敤鐢–++緙栬瘧錛宨nput()琚珁yinput()鐨勬浛浠o紝鍥犱負(fù)input()涓嶤++涓殑嫻佸悕縐癷nput鍐茬獊銆?
YY_FLUSH_BUFFER 鍒鋒柊瑙f瀽鍣ㄥ唴閮ㄧ紦瀛樹互渚夸簬涓嬩竴嬈$殑鍖歸厤宸ヤ綔錛岄鍏堝畠浼?xì)鋴社敤YY_INPUT濉厖緙撳瓨鍖恒傝繖鏄氱敤yy_flush_buffer()鐨勪竴涓壒渚嬶紝灝嗕細(xì)鍦ㄥ杈撳叆緙撳瓨涓弿榪般?
yyterminate()鍙互鍦ㄥ姩浣滃唴閮ㄨ繑鍥炴弿榪板尯鍩熶腑浣跨敤錛屽畠?yōu)畣缁堟瑙f瀽鍣q惰繑鍥?緇欒В鏋愬櫒璋冪敤鑰咃紝琛ㄧず鎿嶄綔瀹屾垚銆傜己鐪佹儏鍐典笅錛屽埌杈炬枃浠剁粨鏉熶綅緗篃浼?xì)琚皟鐢ㄥQ屽畠鏄竴涓畯錛屽茍涓斿彲鑳介噸瀹氫箟銆?/p>


Lex榪涢樁
妯″紡
妯″紡鍦ㄧ涓闃舵鎴栫浜屼釜闃舵浣跨敤錛屼篃灝辨槸鍦ㄧ敵鏄庢垨瑙勫垯闃舵涓嚭鐜幫紝妯″紡瀹氫箟浜嗗尮閰嶇殑鐩爣錛岀洰鏍囪鍖歸厤鍚庡皢浼?xì)鎵ц鍔ㄤ綔銆?br>瀵逛簬妯″紡涓嶆兂鍋氬お澶氳鏄庯紝浣跨敤姝e垯琛ㄨ揪寮忓畾涔夛紝鍙互鍙傜湅 regex 鎴?pcre.

寮濮嬫潯浠?br>lex鎻愪緵浜嗘牴鎹潯浠舵縺媧昏鍒欑殑鏈哄埗銆傚湪<sc>鍓嶇紑鐨勮鍒欏皢浼?xì)鍦ㄨВ鏋愬櫒鍦?sc"鐨勫紑濮嬫潯浠朵笅琚尮閰嶃?/p>

<STRING>[^"]*        { /* eat up the string body ... */            ...            }
灝嗕細(xì)鍦ㄥ惎鍔ㄦ潯浠?STRING"鐨勬儏鍐典笅琚縺媧匯?/p>

<INITIAL,STRING,QUOTE>\.        { /* handle an escape ... */            ...            }
灝嗕細(xì)鍦?"INITIAL", "STRING", "QUOTE"涓夎呬箣涓鐨勬潯浠朵笅琚縺媧匯?/p>

寮濮嬫潯浠跺湪杈撳叆婧愮殑瀹氫箟(絎竴錛夐儴鍒嗚鐢蟲槑錛屽湪‘%s' 鎴?’%x'鍚庤窡闅忕潃鍚嶅瓧鍒楄〃銆?%s鐢蟲槑浜嗗寘鍚殑寮濮嬫潯浠訛紝%x鐢蟲槑浜嗘帓浠栫殑寮濮嬫潯浠躲傚紑濮嬫潯浠惰BEGIN鍔ㄤ綔嬋媧匯傜洿鍒頒笅涓涓狟EGIN鍔ㄤ綔錛屾弧瓚沖紑濮嬫潯浠跺悕縐扮殑瑙勫垯灝嗕細(xì)琚鍒欙紝涓嶆弧瓚沖惎鍔ㄦ潯浠剁殑瑙勫垯灝嗕笉浼?xì)琚墽琛屻?/p>


濡傛灉鏄寘鍚潯浠訛紝娌℃湁寮濮嬫潯浠剁殑瑙勫垯涔熶細(xì)琚縺媧繪墽琛岋紝濡傛灉鏃舵帓浠栨潯浠訛紝鍙湁婊¤凍寮濮嬫潯浠剁殑瑙勫垯鎵嶄細(xì)琚墽琛屻?/p>

鍏鋒湁鐩稿悓鎺掍粬鏉′歡鐨勮鍒欑殑闆嗗悎鍙互浣胯В鏋愬櫒鐙珛浜庡叾浠栫殑瑙勫垯銆傚洜姝わ紝鎺掍粬鏉′歡鍙互瀹規(guī)槗鍦板垱寤哄井鍨嬭В鏋愬櫒澶勭悊杈撳叆婧愪腑鐨勭嫭绔嬩笌鍏朵粬閮ㄥ垎鐨勪竴閮ㄥ垎錛堝錛屾敞閲婏級(jí)銆傚鏋滃浜庡寘鍚笌鎺掍粬鏉′歡榪樻湁娣鋒穯錛屽彲浠ョ湅涓嬮潰鐨勪緥瀛愩?/p>

%s example%%<example>foo   do_something();bar            something_else();
絳夊悓浜?/p>


%x example%%<example>foo   do_something();<INITIAL,example>bar    something_else();
涓婇潰鐨勭▼搴忎腑濡傛灉娌℃湁<INITIAL,example>錛屽湪example鏉′歡涓媌ar瑙勫垯灝嗘案榪滀笉浼?xì)琚珛葊媧匯傚鏋滀嬌鐢?lt;example>錛屽皢浼?xì)瀵艰嚧鍙兘鍦╡xmaple寮濮嬫潯浠朵笅嬋媧伙紝鑰孖NITIAL鏉′歡涓嬩笉浼?xì)琚珛葊媧匯傝岀涓涓▼搴忎腑鍦ㄤ換浣曟潯浠朵笅bar閮借浼?xì)婵媧匯傚洜涓虹涓涓▼搴忕敤example鏃?s錛屾椂鍖呭惈鏉′歡銆傞〉鍙互閫氳繃鐗規(guī)畩寮濮嬫潯浠?lt;*>鏉ラ厤緗換浣曞紑濮嬫潯浠訛紝涓婇潰鐨勭▼搴忚繕鍙互鍐欎負(fù)錛?/p>

%x example%%<example>foo   do_something();<*>bar    something_else();
緙虹渷瑙勫垯錛堟樉紺轟換浣曟湭琚尮閰嶇殑瀛楃錛夊湪寮濮嬫潯浠朵笅浠嶇劧鐢熸晥銆傜瓑鍚屼簬錛?/p>

<*>.|\\n     ECHO;
‘BEGIN(0)’鍦ㄦ棤寮濮嬫潯浠剁殑瑙勫垯嬋媧繪潯浠朵笅榪斿洖鍘熷鐘舵侊紝榪欎釜鐘舵佸悓浜庡紑濮嬫潯浠朵笅鐨?INITIAL',鎵浠?#8216;BEGIN(INITIAL)'絳夊悓浜?#8217;BEGIN(0)'銆?br>BEGIN琛屼負(fù)鍦ㄨ鍒欓儴鍒嗙殑寮澶存槸榛樿鐨勪唬鐮侊紙BEGIN actions can also be given as indented code at the beginning of the rules section.璇風(fēng)炕璇戯級(jí)渚嬪錛屼笅闈㈢殑浠g爜灝嗕細(xì)浠呴渶SPECIAL寮濮嬫潯浠訛紝涓嶇鍚堥倅ylex()琚皟鐢ㄥ茍涓斿叏灞鍙橀噺enter_special鏄痶rue銆?/p>

        int enter_special;%x SPECIAL%%        if ( enter_special )            BEGIN(SPECIAL);<SPECIAL>blahblahblah...more rules follow...
涓轟簡璇存槑寮濮嬫潯浠訛紝鎴戜滑鐢ㄤ袱縐嶆柟娉曞鐞?123.456".緙虹渷灝嗕細(xì)琚В鏋愪負(fù) '123','.','456'涓変釜鏍囪錛屽鏋渆xpect-floats鍚庨潰灝嗕細(xì)琚В鏋愪負(fù)嫻偣鏁?123.456

%{#include <math.h>%}%s expect%%expect-floats        BEGIN(expect);<expect>[0-9]+"."[0-9]+      {            printf( "found a float, = %f\n",                    atof( yytext ) );            }<expect>\n           {            /* that's the end of the line, so             * we need another "expect-number"             * before we'll recognize any more             * numbers             */            BEGIN(INITIAL);            }[0-9]+      {            printf( "found an integer, = %d\n",                    atoi( yytext ) );            }"."         printf( "found a dot\n" );
涓嬮潰鐨勪唬鐮佽兘澶熸槸琚獵璇█娉ㄩ噴騫朵笖緇熻琛屾暟銆?/p>

%x comment%%        int line_num = 1;"/*"         BEGIN(comment);<comment>[^*\n]*        /* eat anything that's not a '*' */<comment>"*"+[^*/\n]*   /* eat up '*'s not followed by '/'s */<comment>\n             ++line_num;<comment>"*"+"/"        BEGIN(INITIAL);
瀹為檯涓婏紝緙栧啓楂橀熻В鏋愮▼搴忕殑鍔炴硶鏃跺湪姣忎釜瑙勫垯涓仛灝藉彲鑳藉鐨勫尮閰嶃?/p>

This scanner goes to a bit of trouble to match as much text as possible with each rule. In general, when attempting to write a high-speed scanner try to match as much possible in each rule, as it's a big win.

娉ㄦ剰: 寮濮嬫潯浠剁殑鍚嶅瓧瀹為檯涓婃椂涓涓暣褰㈠煎茍涓旇兘澶熻淇濆瓨錛屾墍浠ワ紝涓婇潰鐨勪唬鐮佸彲浠ユ墿灞曚負(fù)錛?/p>

%x comment foo%%        int line_num = 1;        int comment_caller;"/*"         {             comment_caller = INITIAL;             BEGIN(comment);             }...<foo>"/*"    {             comment_caller = foo;             BEGIN(comment);             }<comment>[^*\n]*        /* eat anything that's not a '*' */<comment>"*"+[^*/\n]*   /* eat up '*'s not followed by '/'s */<comment>\n             ++line_num;<comment>"*"+"/"        BEGIN(comment_caller);
鑰屼笖錛屽彲鑳芥槗浣跨敤YY_START瀹忔潵璁塊棶褰撳墠鐨勫紑濮嬫潯浠躲傚涓婇潰鐨勮祴鍊兼潯浠跺彲浠ユ敼鍐欎負(fù)

comment_caller = YY_START

YYSTATE鏄痀Y_START鐨勫埆鍚嶏紙鍥犱負(fù)AT&T lex浣跨敤浜哬YSTATE錛夈?br>娉ㄦ剰 寮濮嬫潯浠舵病鏈変粬浠殑鍚嶅瓧絀洪棿; %s 涓?%x 鐢蟲槑涓?#define褰㈠紡涓鏍楓?/p>

鍒拌繖閲岋紝鏃朵竴涓嬌鐢ㄦ帓浠栧紑濮嬫潯浠跺浣曞尮閰岰椋庢牸鐨勫紩鐢ㄥ瓧絎︿覆鐨勫鐞嗐傚寘鍚殑鎵╁睍鐨勮漿涔夛紝浣嗕笉鍖呮嫭媯(gè)鏌ワ紝鍥犱負(fù)浠g爜澶暱銆?/p>

%x str%%        char string_buf[MAX_STR_CONST];        char *string_buf_ptr;\"      string_buf_ptr = string_buf; BEGIN(str);<str>\"        { /* saw closing quote - all done */        BEGIN(INITIAL);        *string_buf_ptr = '\0';        /* return string constant token type and         * value to parser         */        }<str>\n        {        /* error - unterminated string constant */        /* generate error message */        }<str>\\[0-7]{1,3} {        /* octal escape sequence */        int result;        (void) sscanf( yytext + 1, "%o", &result );        if ( result > 0xff )                /* error, constant is out-of-bounds */        *string_buf_ptr++ = result;        }<str>\\[0-9]+ {        /* generate error - bad escape sequence; something         * like '\48' or '\0777777'         */        }<str>\\n  *string_buf_ptr++ = '\n';<str>\\t  *string_buf_ptr++ = '\t';<str>\\r  *string_buf_ptr++ = '\r';<str>\\b  *string_buf_ptr++ = '\b';<str>\\f  *string_buf_ptr++ = '\f';<str>\\(.|\n)  *string_buf_ptr++ = yytext[1];<str>[^\\\n\"]+        {        char *yptr = yytext;        while ( *yptr )                *string_buf_ptr++ = *yptr++;        }
閫氬父錛屽涓婇潰鐨勪緥瀛愪腑鎵鐪嬪埌浣狅紝浼?xì)鏈夎澶氱浉鍚屽紑濮嬫潯浠剁殑澶勭悊銆傚紑濮嬫潯浠惰寖鍥村彲浠ョ畝鍖栭噸澶嶆搷浣溿?/p>


<SCs>{}
SCs 鏄竴涓垨寮濮嬫潯浠剁殑鍒楄〃銆傚湪榪欎釜寮濮嬫潯浠惰寖鍥村唴錛屾瘡涓鍒欏皢浼?xì)鑷姩鍏锋湁鍓嵕~ `<SCs>' 鐩村埌 `}' 涓庡紑濮嬬殑 `{' 鍖歸厤.  渚嬪

<ESC>{    "\\n"   return '\n';    "\\r"   return '\r';    "\\f"   return '\f';    "\\0"   return '\0';}
絳変環(huán)浜?

<ESC>"\\n"  return '\n';<ESC>"\\r"  return '\r';<ESC>"\\f"  return '\f';<ESC>"\\0"  return '\0';
寮濮嬫潯浠墮〉鍙互宓屽錛屼笅闈㈡椂涓変釜綆$悊寮濮嬫潯浠跺爢鏍堢殑鍙傛暟銆?

`void yy_push_state(int new_state)'
灝嗗綋鍓嶇殑寮濮嬫潯浠跺帇鏍堬紝鍒囨崲鍒?new_state 涓庝嬌鐢?`BEGIN new_state'綾諱技銆?
`void yy_pop_state()'
浠庢爤欏跺脊鍑猴紝綾諱技浜?BEGIN.
`int yy_top_state()'
榪斿洖鏍堥《鍊鹼紝涓嶆敼鍙樻爤鍐呭銆?
寮濮嬫潯浠舵爤鍔ㄦ佸闀匡紝娌℃湁鍥哄畾闄愬埗錛屽鏋滃唴瀹圭敤灝斤紝紼嬪簭绔熶細(xì)緇堟銆?

涓轟簡浣跨敤寮濮嬫潯浠舵爤錛岄渶瑕佷嬌鐢?`%option stack' 鎸囦護(hù)銆?

 


澶氳緭鍏ョ紦瀛樺尯

 

涓浜涘厑璁竔nclude鏂囦歡瑙f瀽鍣ㄧ殑瑙f瀽鍣ㄨ姹備粠鍑犱釜杈撳叆嫻佷腑璇誨彇鍐呭銆俌Y_INPUT鍙湪緇撴潫緙撳瓨鏃惰璋冪敤錛岀鍒?include 鍚庨渶瑕佸垏鎹㈣緭鍏ユ簮錛岃岃В鏋愪竴涓弿榪頒篃璁?dāng)R渶瑕佸緢闀挎椂闂淬備負(fù)浜嗚В鍐蟲綾婚棶棰橈紝瑙f瀽鍣ㄦ彁渚涗簡鍒涘緩騫跺湪澶氫釜杈撳叆緙撳瓨涓垱寤虹殑鏈哄埗銆傝緭鍏ョ紦瀛樺彲浠ラ氳繃涓嬮潰鐨勬柟寮忓垱寤?

YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )


鍙傛暟涓轟笌緙撳瓨鍏寵仈鐨勮緭鍏ユ枃浠舵寚閽堬紝浠ュ強(qiáng)瓚沖鐨勫彲緇存寔size瀛楃錛堝鏋滀笉紜畾錛宻ize鍙互浣跨敤YY_BUF_SIZE)銆傝繑鍥炰竴涓猋Y_BUFFER_STATE,鍙互浼犻掑埌鍏朵粬鐨勫鐞嗚繃紼嬨俌Y_BUFFER_STATE鏄竴涓笉鍙緇撴瀯yy_buffer_state鐨勬寚閽堬紝鎵浠ュ彲浠ュ畨鍏ㄥ湴浣跨敤`((YY_BUFFER_STATE) 0)'鏉ュ垵濮嬪寲YY_BUFFER_STATE錛屽鏋滀綘鎰挎剰錛屼綘鍙互鍦ㄨВ鏋愬櫒涔嬪鐨勬簮紼嬪簭涓紩鐢ㄨ繖涓笉閫忔槑緇撴瀯鏉ユ紜殑鐢蟲槑杈撳叆緙撳瓨銆傚彲浠ラ氳繃涓嬮潰鐨勫弬鏁版潵閫夋嫨涓涓紦瀛樺尯銆?

void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )


鍒囨崲瑙f瀽鍣ㄧ殑杈撳叆緙撳瓨灝嗕細(xì)瀵艱嚧璁版帴涓嬫潵鐨勫尮閰嶉」鏉ヨ嚜浜庢柊鐨勭紦瀛樹腑銆倅y_switch_to_buffer鍙兘鍑虹幇鍦▂ywrap涓負(fù)緇х畫瑙f瀽鍋氬噯澶囷紝鏇挎崲鎵撳紑涓涓柊鐨勬枃浠跺茍鎵цyyin. 閫氳繃yy_switch_to_buffer 鎴?yywrap鍒囨崲杈撳叆婧愪笉鏀瑰彉寮濮嬫潯浠躲?

 

void yy_delete_buffer( YY_BUFFER_STATE buffer )


鐢ㄤ簬鏀跺洖涓庣紦瀛樺叧鑱旂殑絀洪棿銆備綘鍙互浣跨敤涓嬮潰鐨勫嚱鏁版竻絀哄綋鍓嶅唴瀹?

void yy_flush_buffer( YY_BUFFER_STATE buffer )


姝ゅ嚱鏁板簾寮冪紦瀛樺唴瀹癸紝涓嬩竴涓В鏋愬櫒璇曞浘鍖歸厤涓涓唴瀹規(guī)椂灝嗕細(xì)浣跨敤YY_INPUT鏉ユ洿鏂扮紦瀛樺尯銆?/p>

`yy_new_buffer()' 鏄?`yy_create_buffer()' 鐨勪竴涓埆鍚嶏紝鐢ㄤ簬鎻愪緵C++浣跨敤new 涓?delete鎿嶄綔鍒涘緩涓庨攢姣佸姩鎬佸璞$殑鍏煎鎬с?/p>

鏈鍚? YY_CURRENT_BUFFER 瀹忚繑鍥?YY_BUFFER_STATE 鎸囬拡錛岃〃紺哄綋鍓嶇殑緙撳瓨銆?/p>

榪欓噷鏄竴涓墿灞昳nclude浣跨敤鐨勪竴涓В鏋愬櫒 (`<<EOF>>' 鐗規(guī)у皢浼?xì)鍦ㄤ互鍚庤璁?:


/* "incl" 鐘舵佺敤浜庤幏鍙杋nclude鐨勬枃浠跺悕 */
%x incl

%{
#define MAX_INCLUDE_DEPTH 10
YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
int include_stack_ptr = 0;
%}

%%
include             BEGIN(incl);

[a-z]+              ECHO;
[^a-z\n]*\n?        ECHO;

<incl>[ \t]*      /* eat the whitespace */
<incl>[^ \t\n]+   { /* got the include file name */
        if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
            {
            fprintf( stderr, "Includes nested too deeply" );
            exit( 1 );
            }

        include_stack[include_stack_ptr++] =
            YY_CURRENT_BUFFER;

        yyin = fopen( yytext, "r" );

        if ( ! yyin )
            error( ... );

        yy_switch_to_buffer(
            yy_create_buffer( yyin, YY_BUF_SIZE ) );

        BEGIN(INITIAL);
        }

<<EOF>> {
        if ( --include_stack_ptr < 0 )
            {
            yyterminate();
            }

        else
            {
            yy_delete_buffer( YY_CURRENT_BUFFER );
            yy_switch_to_buffer(
                 include_stack[include_stack_ptr] );
            }
        }


鎻愪緵涓変釜榪囩▼鏉ュ疄鐜板唴瀛樺瓧絎︿覆鑰屼笉鏄枃浠惰緭鍏ョ紦瀛樼殑瑙f瀽銆傚畠浠兘瑕佸垱寤轟竴涓緭鍏ョ紦瀛樻潵瑙f瀽瀛楃涓詫紝騫朵笖榪斿洖YY_BUFFER_STATE (鍙互鍦ㄥ畬鎴愯В鏋愬悗鐢?`yy_delete_buffer()' 鍒犻櫎).錛屼篃鍙互閫氳繃`yy_switch_to_buffer()'鏉ュ垏鎹? 涓嬩竴嬈¤皟鐢╜yylex()' 灝嗕細(xì)瑙f瀽瀛楃涓層?/p>

`yy_scan_string(const char *str)'                             瑙f瀽0緇撳熬瀛楃涓層?br>`yy_scan_bytes(const char *bytes, int len)'               瑙f瀽bytes寮濮嬬殑len涓瓧絎?鍙兘鍖呭惈 0 瀛楃)


娉ㄦ剰錛屼笂闈㈢殑涓や釜鍑芥暟浼?xì)鍒涘缓瀛椊W︿覆鎴栧瓧鑺備覆鐨勫壇鏈?榪欎篃璁告椂鏈熸湜鐨勶紝鍥犱負(fù)`yylex()' 浼?xì)淇敼琚В鏋惥~撳瓨鐨勫唴瀹?  鍙互浣跨敤涓嬮潰鐨勬柟寮忔潵鎷掔粷浣跨敤鍓湰:

`yy_scan_buffer(char *base, yy_size_t size)'

灝嗕細(xì)浠巄ase寮濮嬭В鏋愶紝鍖呭惈size涓瓧鑺? 鏈鍚庣殑涓や釜瀛楄妭蹇呴』鏄?YY_END_OF_BUFFER_CHAR (ASCII NUL)銆備粬浠笉浼?xì)琚В鏋? 瑙f瀽鑼冨洿浠?`base[0]'  鍒?`base[size-2]'錛堝寘鍚級(jí)銆傚鏋滀綘娌¤兘鎸夌収榪欑瑙勫畾浣跨敤base錛堝錛屽繕璁頒簡鏈鍚庣殑涓や釜YY_END_OF_BUFFER_CHAR瀛楄妭), `yy_scan_buffer()' 灝嗕細(xì)榪斿洖絀烘寚閽堣屼笉鍒涘緩YY_BUFFER_STATE銆倅y_size_t綾誨瀷鏄釜鏁村瀷錛屽彲浠ヨ漿鍖栦負(fù)鏁存暟鏉ュ弽鏄燽uffer鐨勯暱搴︺?/p>

 


鏂囦歡緇撴潫瑙勫垯


鐗規(guī)畩瑙勫垯 "<<EOF>>" 鍙槸瑙勫垯鍦ㄦ枃浠剁粨鏉熶綅緗彂鐢熶笖yywrap()榪斿洖闈?鍊箋?濡傦紝娌℃湁鏇村鐨勬枃浠惰澶勭悊). 榪欎釜鍔ㄤ綔蹇呴』瀹屾垚涓嬮潰鍥涗歡浜嬫儏涔嬩竴:

璧嬪肩粰yyin涓涓柊鐨勬枃浠?(鏃╂湡鐗堟湰鐨刦lex, 姝ゆ搷浣滃悗蹇呴』璋冪敤鐗規(guī)畩鍔ㄤ綔 YY_NEW_FILE; 榪欎釜鎿嶄綔宸茬粡涓嶉渶瑕佷簡);
鎵ц涓涓繑鍥炵敵鏄?
鎵ц涓涓壒孌婄殑`yyterminate()' 鍔ㄤ綔;
鎴栬呬嬌鐢╜yy_switch_to_buffer()' 鍒囨崲鍒頒竴涓柊鐨勮緭鍏ョ紦瀛樺尯.


<<EOF>> 涓嶈兘涓庡叾浠栨ā寮忎竴璧蜂嬌鐢紱瀹冧篃璁鎬粎鍦ㄥ紑濮嬫潯浠跺垪琛ㄧ敵鏄庛傚鏋滄寚瀹氫簡涓嶅悎娉?<<EOF>> 瑙勫垯, 瀹冨皢浼?xì)搴旂敤鍒版墍鏈夌殑寮濮嬫潯浠惰屼笉浠呮槸 <<EOF>> 鍔ㄤ綔. 鎸囧畾 <<EOF>> 瑙勫垯浠呭湪 initial 寮濮嬫潯浠朵笅鍖歸厤錛屽氨鏄敤:

<INITIAL><<EOF>>


涓嬮潰鐨勮鍒欏彲浠ュ彂鐜拌薄涓嶅叧闂殑娉ㄩ噴綾葷殑闂銆?/p>

%x quote
%%

...other rules for dealing with quotes...

<quote><<EOF>>   {
         error( "unterminated quote" );
         yyterminate();
         }
<<EOF>>  {
         if ( *++filelist )
             yyin = fopen( *filelist, "r" );
         else
            yyterminate();
         }


 



]]>
Flex鍐呭瓨娉勯湶闂[杞澆]http://www.shnenglu.com/Plator/archive/2008/05/24/50981.html鑿?qiáng)棣?/dc:creator>鑿?qiáng)棣?/author>Sat, 24 May 2008 15:25:00 GMThttp://www.shnenglu.com/Plator/archive/2008/05/24/50981.htmlhttp://www.shnenglu.com/Plator/comments/50981.htmlhttp://www.shnenglu.com/Plator/archive/2008/05/24/50981.html#Feedback0http://www.shnenglu.com/Plator/comments/commentRss/50981.htmlhttp://www.shnenglu.com/Plator/services/trackbacks/50981.html鎴戝啓浜嗕竴涓狥lex鐨勪緥瀛愭祴璇曪紝榪欎釜渚嬪瓙鑳芥妸SQL璇彞緹ゆ寜鐓у垎鍙烽殧寮錛屾斁鍏ヤ竴涓猯ist錛屽茍涓旇鍑烘瘡涓鍙QL鐨勮搗濮嬪拰緇撴潫鐨勪綅緗紝浠ュ強(qiáng)璇QL鐨勭被鍨嬶紝渚嬪鏄竴涓┖SQL榪樻槸鍙惈娉ㄩ噴鐨凷QL錛岃繕鏄竴涓爣鍑哠QL銆侳lex榪欎釜宸ュ叿鐢熸垚璇誨叆鍚庣紑鏄痩鐨勮瘝娉曟枃浠訛紝鐒跺悗杈撳嚭涓涓猯ex.yy.c鐨勬枃浠訛紝鎴戝啓浜嗕釜紼嬪簭嫻嬭瘯榪欎釜lex.yy.c銆傛垜鐨勭洰鏍囨槸鎶婅繖涓В鏋愬櫒鍋氭垚MFC DLL鎴栬呰兘杈撳嚭xml鐨勬爣鍑嗙▼搴忥紝榪欐牱浠ュ悗鐨勫厓鏁版嵁欏圭洰灝辮兘鐩存帴鐢ㄤ簡錛岀敋鑷寵兘閫氳繃GUI鐣岄潰澶勭悊SQL錛屼絾鏄疐lex鐢熸垚鐨?c鏂囦歡MFC紼嬪簭鏃犳硶鐩存帴浣跨敤錛岄鍏堣娉ㄩ噴鎺塩鏂囦歡涓殑#include <unistd.h>榪欎竴琛岋紝榪欒浼?xì)鎶ラ敊锛屽啀淇敼b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;榪欎竴琛岋紝璁゜->yy_is_interactive = 0,鐒跺悗鍦ㄦ妸.c鏂囦歡鐨勭殑寮澶寸殑#include <stdio.h>鏇挎崲鎴?include <stdafx.h>錛岃繖鏍峰氨琛屼簡涔堬紵榪樹笉琛岋紝VC2003緙栬瘧榪樻槸鎶ラ敊錛屾垜榧撴崳鍗婂ぉ鎵嶅彂鐜幫紝闇瑕佹妸lex.yy.c鏂囦歡閲嶅懡鍚嶆垚lex.yy.cpp灝卞彲浠ヤ簡錛岃繖涓緋誨垪鎿嶄綔澶鏉備簡錛屾垜鍐欎簡涓涓壒澶勭悊鏂囦歡鐢熸垚cpp錛岀劧鍚庡張鍐欎簡涓涓猇C鐨勫畯鏉ヤ慨鏀規(guī)枃浠訛紝榪欐牱錛屾寜涓や笅榧犳爣涓鍒囧氨閮絆K浜嗭紝鍢垮樋錛屾噿浜哄氨鍠滄鑷姩鍖栥?br>鐒跺悗鍐欎簡綆鍗曠殑鐣岄潰杈撳叆SQL榪涜瑙f瀽錛岃В鏋愭晥鏋滀笉閿欙紝浣嗘槸榪愯鍚庡嵈鍙戠幇浜嗕袱澶勫唴瀛樻硠闇詫紝涓澶勬槸16386瀛楄妭錛屼竴澶勬槸40瀛楄妭銆傚湪榪欓噷鍏堢粰闈炵▼搴忓憳鏅強(qiáng)涓涓嬪唴瀛樻硠闇茬殑鐭ヨ瘑錛屼換浣曚竴涓綆楁満紼嬪簭錛屽湪榪愯鐨勬椂鍊欏瓨鏀炬暟鎹槸闇瑕佸唴瀛樼殑錛岄渶瑕佸灝戝唴瀛樻槸紼嬪簭鍚戞搷浣滅郴緇熺敵璇風(fēng)殑錛岃繖鍧楀唴瀛樼敤瀹屼簡灝辨妸瀹冭繕緇欐搷浣滅郴緇燂紝鎿嶄綔緋葷粺鍙互鍐嶅垎閰嶇粰鍏朵粬紼嬪簭銆傚氨鍍忔垜浠幓楗鍚冮キ錛岄キ鑿滃氨鏄暟鎹紝鍐呭瓨灝辨槸紕楀拰紕熷瓙錛屾垜浠偣浜嗚彍鍙堢偣姹わ紝榪欐椂鍊欑涓嶅浜嗭紝鎴戜滑灝變細(xì)鍠婁竴澹幫細(xì)“鑰佹澘錛屽啀鎷夸袱涓鏉ョ洓姹?#8221;錛岃繖灝辨槸鍐呭瓨鐢寵錛岀瓑鎴戜滑鍚冨畬浜嗘姽鍢翠拱鍗曡蛋浜猴紝鏈嶅姟鍛樻敹鎷劇瀛愬拰紕楋紝榪欏氨鏄唴瀛樺洖鏀訛紝濡傛灉鎴戜滑鐪嬪埌榪欏楗鐨勭澶紓浜簡錛屼簬鏄伔鍋鋒嬁璧頒竴涓紙榪欎簨鎴戠粡甯稿共錛夛紝榪欏氨鏄唴瀛樻硠闇層傚鏋滃伔紕楃殑浜哄お澶氫簡錛岃繖瀹墮キ棣嗙殑紕楀氨涓嶅浜嗭紝浣犲啀鐢寵瑕佺鑰佹澘灝變細(xì)璇寸涓嶅浜嗭紝璇風(fēng)◢絳変竴涓嬶紝浜庢槸浣犱滑鍑犱釜浜哄彧鑳界敤涓涓鍚冮キ錛屽悆鐨勫緢鎱紝榪欏氨鍙唴瀛樹笉瓚熾侰++鍜孋鐨勭▼搴忓お鐏墊椿浜嗭紝璇鋒眰紕楀拰閫佸洖紕楅兘鏄▼搴忓憳鑷繁鏉ュ仛錛屽氨鍍忎竴涓キ棣嗘病浜虹湅綆★紝瀹屽叏闈犱釜浜鴻嚜瑙夋ф潵緇存寔錛屽洜姝や笉綆℃槸姘村鉤宸篃濂斤紝鐤忓拷涔熷ソ錛孋/C++紼嬪簭浼?xì)寰堝?guī)槗浜х敓鍐呭瓨娉勯湶錛宩ava鍜孋#灝卞ソ澶氫簡錛屼粬浠氨鐩稿綋浜庨キ棣嗛棬鍙f湁鎼滆韓鐨勶紝浣犱竴涓涔熷甫涓嶈蛋銆?br>榪欓噷鎴戝彂鐜頒簡涓ゅ鍐呭瓨娉勯湶錛屼竴鍏?6KB宸﹀彸錛屼綘鍙兘浼?xì)璇存?6KB錛岀幇鍦ㄥ唴瀛橀兘濂藉嚑涓狦B錛岃繖涔堢偣綆椾粈涔堬紝浣嗘槸濡傛灉榪欐槸涓涓湇鍔″櫒涓婂父騫翠笉鍋滄満榪愯鐨勭▼搴忥紝鏈夊緢澶氫漢鏉ヨ闂紝浼?xì)寰堝揩鎶婂唴瀛樺悆鎺夌殑銆傝櫧鐒舵垜榪欎釜紼嬪簭涓嶆槸鏈嶅姟鍣ㄤ笂榪愯鐨勭▼搴忥紝浣嗘槸鎴戣兘瀹瑰繊紼嬪簭鐨刡ug錛屽嵈涓嶈兘瀹瑰繊鍐呭瓨娉勯湶錛屾兂褰撳勾鎴戝垰鍒氬啓C(jī)++紼嬪簭鐨勬椂鍊欙紝紼嬪簭鏈夊唴瀛樻硠闇詫紝鎴戞媧繪壘涓嶅嚭鏉ユ槸鍝噷鐨勯棶棰橈紝鏈鍚庡彧鑳藉憡璇夊鎴瘋鎴戣繖涓▼搴忚姹傚唴瀛樺錛屼綘鐨勭數(shù)鑴戦渶瑕佸鍔犲唴瀛橈紝浜庢槸瀹㈡埛澧炲姞浜嗗唴瀛橈紝浣嗗嵆浣胯繖鏍蜂篃涓嶈錛岃繕闇瑕佸崐澶滈噸鍚竴涓嬫満鍣ㄦ墠鍙互銆傚湪姝ゆ垜瀵硅瀹㈡埛琛ㄧず娣辨繁鐨勬瓑鎰忥紝浠庢鎴戝彂瑾擄紝鍐嶄篃涓嶈鎴戠殑紼嬪簭鏈変竴涓瓧鑺傜殑鍐呭瓨娉勯湶錛屼簬鏄繁灞辮嫤緇僣oding鍜岃皟璇曟妧鏈紝緇忚繃澶氬勾鐨勬蹈娣紝鑷繁鍐欑殑浠g爜鑲畾涓嶄細(xì)鏈夎繖鏍風(fēng)殑閿欒浜嗭紝鑰屼笖鍒漢鐨勫澶嶆潅鐨勯棶棰樹唬鐮佹垜鎷胯繃鏉ュ氨璋冭瘯錛屽氨璺熼キ绔繃鏉ュ氨鍚冧竴鏍積asy銆?br>榪欏洖鐨勯棶棰樻垜璁や負(fù)寰坋asy錛岃皟璇曞憲錛屼竴寮濮嬩互涓烘槸list鏈夐棶棰橈紝榪欐槸寰堝鏄撳嚭闂鐨勫湴鏂癸紝CList鏄竴涓ā鏉跨被錛岀敤浜嗗ソ澶氬勾浜嗭紝濂界敤閲忓張瓚籌紝鎴戜滑涓鐩寸敤瀹冿紝浣嗘槸CList閲岄潰濡傛灉鏀懼叆鎸囬拡鐨勮瘽灝辮娉ㄦ剰浜嗭紝綆鍗曠殑Removeall鏄笉琛岀殑錛岃繕闇瑕佷竴涓竴涓殑delete鎺夐噷闈㈢殑瀵硅薄鎸囬拡錛屾垜璺熻釜浜嗕竴閬嶏紝涓嶆槸瀹冪殑闂錛屾瘡嬈″唴瀛樻硠闇茬殑澶у皬閮芥槸閭d箞澶氾紝涓巐ist鐨勫ぇ灝忔病鍏崇郴銆傞毦閬撴槸鎴戝啓鐨凜SQLSet鍜孋SQLNode榪欎袱涓被鏈夐棶棰橈紵浠旂粏鏌ヤ簡涓閬嶄篃娌¢棶棰橈紝濂囦簡鎬簡錛岄毦閬撴槸lex.yy.c涓嶈兘鍜孧FC娣峰湪涓璧風(fēng)敤錛屾垜鏈夋妸榪欎釜紼嬪簭鎷嗗嚭鏉ワ紝鐢ㄧ函c鍋氫簡涓閬嶏紝鏋滅劧娌℃姤鍛婂唴瀛樻硠闇詫紝濂藉儚鏄棶棰樿В鍐充簡銆備絾鏄垜濡傛灉綆鍗曠殑鍦ㄧ▼搴忛噷闈㈢敤MFC CString綾伙紝灝變細(xì)鎶ュ憡娉勯湶錛孋String榪欐洿鏄箙緇忚冮獙鐨勫叡浜т富涔夋垬澹紝涓嶅彲鑳芥湁闂鐨勶紝澶護(hù)浜哄洶鎯戜簡錛屽悗鏉ラ氳繃鑹拌嫤鐨勫唴瀛樻鏌ュ彂鐜幫紝鍏跺疄綰痗鐨勭▼搴忎篃鏈夊唴瀛樻硠闇詫紒鍙笉榪嘨C2003娌℃湁鎶ュ憡緗簡錛岃繖綆鐩存槸VC鐨勪竴涓ぇbug錛佽繖澶鎴戝け鏈涗簡錛屼互鍓嶇敤VC6鎴戞瘮杈冨枩嬈umega鐨勮皟璇曟彃浠訛紝瀹冭兘鍙戠幇姣旇緝闅愮鐨刡ug鍜屾硠闇詫紝浣嗘槸VC2003鎴戣寰楀簲璇ヤ笉閿欎簡錛屽氨娌″幓鎵捐繖鏍風(fēng)殑鎻掍歡錛屾病鎯沖埌鍟婃病鎯沖埌錛屽井杞繕鏄拷鎮(zhèn)犱簡鎴戜竴涓嬨?br>鐜板湪闂灝遍泦涓湪Flex鐢熸垚鐨刲ex.yy.c涓婁簡錛岃繖涓▼搴忓緢闀匡紝濂藉嚑鍗冭錛岃屼笖浣滆呰偗瀹氭槸C鐨勯珮鎵嬶紝寰堝鍦版柟娌$湅鎳傦紝澶墰浜嗭紝鎴戜粠澶村埌灝懼ぇ姒傛祻瑙堜竴閬嶏紝閲岄潰濂藉嚑澶勭敵璇蜂簡鍐呭瓨錛屽彲鑳藉氨鏄畠浠殑闂錛屼絾鏄繖紼嬪簭澶鏉備簡鏃犳硶涓嬫墜鍟婏紝閮侀椃涔嬩腑涓婄綉google錛岃緭鍏lex memory leak錛岀粨鏋滃彂鐜頒簡Adobe鏈変竴涓駭鍝佷篃鍙獸lex錛岃屼笖涔熸湁鍐呭瓨娉勯湶闂錛屾垜鍊掞紝浠涔堜笘閬撳晩錛屾垜鍙堝姞鍏ュ叧閿瓧lex.yy.c錛岃繖鍥炴悳鍑烘潵鐨勫浜嗭紝鍘熸潵涓嶆涓涓漢鍙戠幇浜嗚繖涓棶棰橈紝寰堝浜洪兘鍦ㄦ姤鍛婅繖涓棶棰橈紝浣嗘槸璁ㄨ閮芥病緇撴灉錛屾壘鍒癋lex鐨勮佸sourceforge.net錛屾墦綆楁姇璇変竴涓嬩綔鑰咃紝鐪嬪埌涓婇潰鏈夎璁猴紝鍙堟悳绱簡涓涓嬶紝浣滆呴拡瀵瑰唴瀛樻硠闇茬殑闂璇翠簡錛屽浜庡埗浣滆В鏋愰潪C鐨勮В鏋愬櫒鏉ヨ錛屽彲鑳戒細(xì)鏈夋硠闇查棶棰橈紝瑙e喅鐨勬柟妗堟槸鍦ㄤ綘鐪熺殑鍑嗗緇撴潫瑙f瀽鐨勬椂鍊欏姞涓婅繖涓ゅ彞浠g爜錛?br>yy_delete_buffer(YY_CURRENT_BUFFER);
yy_init = 1;
鎴戝姞涓婁簡錛屽ソ浜嗭紝鍥版壈鎴戜袱澶╃殑闂瑙e喅浜嗭紝榪欎笅涓栫晫娓呴潤浜嗐備絾鏄湅鍒板叾浠栫殑甯栧瓙璇碆ison涔熶細(xì)鏈夊唴瀛樻硠闇詫紝鍓嶉潰鐨勮礬榪樺緢闀褲?

]]>
Lex涓璉/O渚嬬▼鐨勮В閲?/title><link>http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html</link><dc:creator>鑿?qiáng)棣?/dc:creator><author>鑿?qiáng)棣?/author><pubDate>Sat, 24 May 2008 04:05:00 GMT</pubDate><guid>http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html</guid><wfw:comment>http://www.shnenglu.com/Plator/comments/50940.html</wfw:comment><comments>http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Plator/comments/commentRss/50940.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Plator/services/trackbacks/50940.html</trackback:ping><description><![CDATA[Lex鍏佽鐩存帴浣跨敤I/O渚嬬▼銆傚畠浠槸錛? <ol> <li> <div align=justified><strong><em>input()</em></strong>錛岃繑鍥炰笅涓涓緭鍏ュ瓧絎︼紱 </div> <li> <div align=justified><strong><em>output(c)</em></strong>錛屽皢瀛楃c鍐欏叆杈撳嚭 </div> <li> <div align=justified><strong><em>unput(c)</em></strong>錛屽皢瀛楃c鍘嬪洖杈撳叆嫻侊紝涓嬫<strong><em>input()</em></strong>鏃惰璇誨嚭銆?</div> </li> </ol> <p>榪欎簺渚嬬▼閮芥湁榛樿鐨勫畯瀹氫箟錛屼絾鏄敤鎴峰彲浠ラ噸鍐欏畠浠互閫傚簲涓嶅悓鐨勯渶姹傘傝繖浜涗緥紼嬪畾涔変簡澶栭儴鏂囦歡鍜屽唴閮ㄥ瓧絎︿箣闂寸殑鍏崇郴錛屽茍涓斿彧鑳藉悓鏃跺瓨鍦ㄦ垨鏇存敼銆傚畠浠彲浠ヨ閲嶅啓浣垮緱杈撳叆鎴栬呰緭鍑鴻瀹氬悜鍒扮壒孌婄殑浣嶇疆錛屽寘鎷叾浠栫殑紼嬪簭鎴栬呭唴瀛橈紱浣嗘槸瀛楃闆嗙殑浣跨敤蹇呴』鍦ㄦ暣涓緥紼嬩腑淇濇寔緇熶竴錛?strong><em>input</em></strong>蹇呴』榪斿洖0浠ヨ〃紺烘枃浠剁粨鏉燂紱<strong><em>unput</em></strong>鍜?strong><em>input</em></strong>涔嬮棿鐨勫叧緋誨繀欏諱繚鐣欙紝鍚﹀垯Lex涓嶈兘瀹屾垚鍚戝墠鎼滅儲(chǔ)鐨勬搷浣溿侺ex鍦ㄤ笉闇瑕佺殑鏃跺欎笉浼?xì)鍚戝墠鎼滅储锛屼絾鏄瘡涓涓互+*?$緇撳熬鐨勩佹垨鑰呭惈鏈?鐨勮鍒欓渶瑕佽繖涓姛鑳姐傚悓鏍鳳紝褰撲竴涓〃杈懼紡鏄彟涓涓殑鍓嶇紑鏃訛紝鍚戝墠鎼滅儲(chǔ)涔熸槸蹇呬笉鍙皯鐨勩傚弬闃呬笅鏂囦腑鏈夊叧Lex浣跨敤鐨勫瓧絎﹂泦鐨勮璁恒傞粯璁ょ殑Lex搴撲嬌鐢?00涓瓧絎︿綔涓哄鐢ㄩ檺鍒躲?</p> <br>錛堜絾鏄繖浜涘湪C++涓技涔庡瓨鍦ㄩ棶棰橈紝鎴戜篃姝e湪璋冭瘯錛? <img src ="http://www.shnenglu.com/Plator/aggbug/50940.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Plator/" target="_blank">鑿?qiáng)棣?/a> 2008-05-24 12:05 <a href="http://www.shnenglu.com/Plator/archive/2008/05/24/50940.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://www284tv.com" target="_blank">亚洲精选在线</a>| <a href="http://sese135.com" target="_blank">美女精品视频一区</a>| <a href="http://www297777.com" target="_blank">久久在线免费视频</a>| <a href="http://yw3329.com" target="_blank">欧美一区免费视频</a>| <a href="http://aqdit2022.com" target="_blank">国产一区二区成人久久免费影院</a>| <a href="http://tsjcmm.com" target="_blank">欧美影院午夜播放</a>| <a href="http://nbpacking.com" target="_blank">久久精品国产999大香线蕉</a>| <a href="http://51jieyanla.com" target="_blank">狠狠色香婷婷久久亚洲精品</a>| <a href="http://5588gww.com" target="_blank">男男成人高潮片免费网站</a>| <a href="http://www672hh.com" target="_blank">欧美成人一区在线</a>| <a href="http://176sfsf.com" target="_blank">亚洲一区二区三区三</a>| <a href="http://5858yp.com" target="_blank">亚洲午夜精品在线</a>| <a href="http://wxsanyuan.com" target="_blank">激情久久中文字幕</a>| <a href="http://nmbgbc.com" target="_blank">亚洲日韩欧美一区二区在线</a>| <a href="http://pktether.com" target="_blank">男女激情久久</a>| <a href="http://shanghaijiagu.com" target="_blank">亚洲欧美在线免费</a>| <a href="http://by21999.com" target="_blank">久久色在线观看</a>| <a href="http://dadepaimai.com" target="_blank">亚洲视频在线免费观看</a>| <a href="http://yunduaner.com" target="_blank">亚洲欧美日韩在线高清直播</a>| <a href="http://51120guahao.com" target="_blank">在线观看的日韩av</a>| <a href="http://szzzzzzz.com" target="_blank">一区二区三区四区五区精品</a>| <a href="http://www369cf.com" target="_blank">国内精品免费午夜毛片</a>| <a href="http://by274.com" target="_blank">亚洲经典自拍</a>| <a href="http://605054.com" target="_blank">国内精品视频在线观看</a>| <a href="http://59jf.com" target="_blank">亚洲精品免费看</a>| <a href="http://www9797abc.com" target="_blank">国产专区一区</a>| <a href="http://by3259.com" target="_blank">一区二区三区久久精品</a>| <a href="http://94wr.com" target="_blank">亚洲国产成人不卡</a>| <a href="http://626tw.com" target="_blank">亚洲欧美日韩精品久久奇米色影视</a>| <a href="http://www-67499.com" target="_blank">国产在线精品自拍</a>| <a href="http://123lifenet.com" target="_blank">99国产麻豆精品</a>| <a href="http://tubcup.com" target="_blank">亚洲福利在线看</a>| <a href="http://xy3977.com" target="_blank">亚洲欧美一区二区三区在线</a>| <a href="http://devwang.com" target="_blank">亚洲乱码日产精品bd</a>| <a href="http://tv-miya188.com" target="_blank">欧美一区二区视频在线观看2020</a>| <a href="http://223zzz.com" target="_blank">一区二区av在线</a>| <a href="http://8013sf.com" target="_blank">玖玖综合伊人</a>| <a href="http://niceboybao.com" target="_blank">久久精品一区二区三区不卡</a>| <a href="http://338pv.com" target="_blank">欧美日韩在线一二三</a>| <a href="http://339254.com" target="_blank">欧美成人国产一区二区</a>| <a href="http://caoav8.com" target="_blank">国产亚洲欧美日韩一区二区</a>| <a href="http://devwang.com" target="_blank">韩国欧美国产1区</a>| <a href="http://www-888005.com" target="_blank">99精品欧美一区二区三区</a>| <a href="http://s3yx.com" target="_blank">欧美一区91</a>| <a href="http://785448.com" target="_blank">午夜精品一区二区三区电影天堂</a>| <a href="http://3644688.com" target="_blank">欧美高清视频在线播放</a>| <a href="http://jxrisen.com" target="_blank">欧美一区二区免费视频</a>| <a href="http://wg246.com" target="_blank">欧美天天在线</a>| <a href="http://777777hd.com" target="_blank">亚洲天堂成人</a>| <a href="http://483134.com" target="_blank">一本久久精品一区二区</a>| <a href="http://p54y.com" target="_blank">久久久亚洲综合</a>| <a href="http://yw8333.com" target="_blank">久久久久久久综合色一本</a>| <a href="http://9238479.com" target="_blank">国产精品xxxxx</a>| <a href="http://www34523.com" target="_blank">一区二区精品在线观看</a>| <a href="http://tyaisen.com" target="_blank">亚洲欧洲一区二区天堂久久 </a>| <a href="http://376524.com" target="_blank">亚洲午夜国产成人av电影男同</a>| <a href="http://www-833898.com" target="_blank">久久免费偷拍视频</a>| <a href="http://www-68689.com" target="_blank">久久亚洲综合色一区二区三区</a>| <a href="http://www-14333.com" target="_blank">国产精品一二一区</a>| <a href="http://www-ty177.com" target="_blank">亚洲天堂成人在线视频</a>| <a href="http://wwwiqiuxia.com" target="_blank">中文在线不卡视频</a>| <a href="http://wslsp.com" target="_blank">欧美日韩在线高清</a>| <a href="http://www-00468.com" target="_blank">99香蕉国产精品偷在线观看</a>| <a href="http://shuoqe.com" target="_blank">9l国产精品久久久久麻豆</a>| <a href="http://sdjinchuan.com" target="_blank">欧美成人自拍</a>| <a href="http://wwwhaodd116.com" target="_blank">亚洲欧洲日韩女同</a>| <a href="http://9658888.com" target="_blank">99精品国产在热久久下载</a>| <a href="http://yw1998.com" target="_blank">欧美精品www</a>| <a href="http://491342.com" target="_blank">一区二区三区高清在线</a>| <a href="http://88488848.com" target="_blank">亚洲午夜激情网页</a>| <a href="http://18mmcg.com" target="_blank">国产精品嫩草影院av蜜臀</a>| <a href="http://myav2.com" target="_blank">亚洲一本视频</a>| <a href="http://788111c.com" target="_blank">久久久九九九九</a>| <a href="http://wwwmm7777.com" target="_blank">精品91免费</a>| <a href="http://9niuw.com" target="_blank">欧美xx视频</a>| <a href="http://798814.com" target="_blank">日韩一级在线观看</a>| <a href="http://1616mz.com" target="_blank">午夜精品久久久久久久久久久久久</a>| <a href="http://www-833898.com" target="_blank">国产精品v欧美精品v日韩精品</a>| <a href="http://7sscc.com" target="_blank">亚洲欧美国产一区二区三区</a>| <a href="http://862323.com" target="_blank">久久人人97超碰精品888</a>| <a href="http://86868o.com" target="_blank">激情欧美一区二区</a>| <a href="http://1000078.com" target="_blank">欧美激情亚洲国产</a>| <a href="http://7n7l.com" target="_blank">一本色道88久久加勒比精品</a>| <a href="http://goldteddy.com" target="_blank">午夜精品福利视频</a>| <a href="http://huayoue.com" target="_blank">狠狠色综合色区</a>| <a href="http://hnautos.com" target="_blank">欧美激情成人在线</a>| <a href="http://zyjzz.com" target="_blank">亚洲一区中文</a>| <a href="http://free18teen.com" target="_blank">免费国产自线拍一欧美视频</a>| <a href="http://2jjzz.com" target="_blank">亚洲免费观看高清完整版在线观看</a>| <a href="http://480192.com" target="_blank">欧美日韩视频在线第一区</a>| <a href="http://8p3c.com" target="_blank">亚洲欧美电影院</a>| <a href="http://hellomusiczone.com" target="_blank">蜜乳av另类精品一区二区</a>| <a href="http://gjjlzs.com" target="_blank">亚洲乱码视频</a>| <a href="http://638179.com" target="_blank">国产视频久久久久久久</a>| <a href="http://www3344cao.com" target="_blank">老巨人导航500精品</a>| <a href="http://033530.com" target="_blank">一区二区久久久久久</a>| <a href="http://www3344xz.com" target="_blank">欧美日韩中文在线</a>| <a href="http://budanbao.com" target="_blank">久久久久久高潮国产精品视</a>| <a href="http://www-82622.com" target="_blank">亚洲人成77777在线观看网</a>| <a href="http://laodaohang.com" target="_blank">欧美日韩在线播放</a>| <a href="http://www227zh.com" target="_blank">久久久国产精品一区</a>| <a href="http://gzpurefaith.com" target="_blank">亚洲人成在线观看</a>| <a href="http://www-49hk.com" target="_blank">久久久人成影片一区二区三区观看</a>| <a href="http://www333444123.com" target="_blank">亚洲精华国产欧美</a>| <a href="http://czjrby.com" target="_blank">国产欧美短视频</a>| <a href="http://tsjcmm.com" target="_blank">欧美日韩成人精品</a>| <a href="http://sqms2013.com" target="_blank">久久久久久一区二区三区</a>| <a href="http://jigu100.com" target="_blank">日韩亚洲国产欧美</a>| <a href="http://22abb.com" target="_blank">欧美电影电视剧在线观看</a>| <a href="http://by2735.com" target="_blank">午夜精品一区二区三区在线</a>| <a href="http://56667r.com" target="_blank">亚洲人成人77777线观看</a>| <a href="http://km43yy.com" target="_blank">国产日韩欧美不卡在线</a>| <a href="http://06le.com" target="_blank">一本久久综合亚洲鲁鲁</a>| <a href="http://xingda-sh.com" target="_blank">亚洲欧美日韩系列</a>| <a href="http://cqjk120.com" target="_blank">亚洲毛片网站</a>| <a href="http://47b8.com" target="_blank">亚洲国产精品久久久久秋霞不卡</a>| <a href="http://830085.com" target="_blank">欧美一级视频精品观看</a>| <a href="http://989766.com" target="_blank">亚洲伦伦在线</a>| <a href="http://mmmm26.com" target="_blank">91久久久亚洲精品</a>| <a href="http://488089.com" target="_blank">久久国产88</a>| <a href="http://9lunli.com" target="_blank">亚洲综合国产</a>| <a href="http://ym5571.com" target="_blank">一区二区国产精品</a>| <a href="http://xb735.com" target="_blank">亚洲欧洲精品一区二区</a>| <a href="http://fjnexpo.com" target="_blank">国产综合视频</a>| <a href="http://345fz.com" target="_blank">国产亚洲成av人在线观看导航 </a>| <a href="http://567acg.com" target="_blank">国产精品一级</a>| <a href="http://www446168.com" target="_blank">欧美乱人伦中文字幕在线</a>| <a href="http://zhengnuoxin.com" target="_blank">久久久91精品国产一区二区三区</a>| <a href="http://7755cc.com" target="_blank">亚洲影院在线</a>| <a href="http://www456456.com" target="_blank">亚洲视频在线观看</a>| <a href="http://pp88qq.com" target="_blank">日韩一级大片在线</a>| <a href="http://c7lc.com" target="_blank">亚洲日本成人</a>| <a href="http://858185gg.com" target="_blank">亚洲国产清纯</a>| <a href="http://belerbb.com" target="_blank">亚洲黄色天堂</a>| <a href="http://hlyjh.com" target="_blank">亚洲人成网站精品片在线观看</a>| <a href="http://xxxx48.com" target="_blank">欧美高清视频www夜色资源网</a>| <a href="http://133868.com" target="_blank">久久人人爽人人爽爽久久</a>| <a href="http://saobitv.com" target="_blank">欧美一区二区三区视频</a>| <a href="http://jiangnanmm.com" target="_blank">亚洲女女女同性video</a>| <a href="http://rezel-zj.com" target="_blank">亚洲视频精品</a>| <a href="http://567acg.com" target="_blank">亚洲专区国产精品</a>| <a href="http://xxx6688.com" target="_blank">亚洲免费视频网站</a>| <a href="http://wwwavzz.com" target="_blank">午夜国产精品影院在线观看</a>| <a href="http://478884.com" target="_blank">亚洲欧美国内爽妇网</a>| <a href="http://7755mm.com" target="_blank">亚洲综合视频一区</a>| <a href="http://taotuango.com" target="_blank">午夜老司机精品</a>| <a href="http://imaben.com" target="_blank">久久爱www</a>| <a href="http://343119.com" target="_blank">久久一区国产</a>| <a href="http://65kf.com" target="_blank">亚洲大片在线</a>| <a href="http://www49966.com" target="_blank">亚洲精品免费电影</a>| <a href="http://htzhuanli.com" target="_blank">一区二区三区不卡视频在线观看</a>| <a href="http://521531.com" target="_blank">一区二区高清在线观看</a>| <a href="http://6666785.com" target="_blank">亚洲视频自拍偷拍</a>| <a href="http://mathck.com" target="_blank">欧美中文字幕不卡</a>| <a href="http://xjhzgy.com" target="_blank">久久夜色精品国产亚洲aⅴ</a>| <a href="http://022291.com" target="_blank">裸体一区二区三区</a>| <a href="http://32666066.com" target="_blank">欧美激情一级片一区二区</a>| <a href="http://chinashixin.com" target="_blank">欧美人与禽性xxxxx杂性</a>| <a href="http://116016.com" target="_blank">欧美日韩视频在线第一区</a>| <a href="http://sxxawef.com" target="_blank">亚洲成人自拍视频</a>| <a href="http://www01614.com" target="_blank">国产日韩精品在线播放</a>| <a href="http://0934photo.com" target="_blank">国产精品久久久久久久一区探花 </a>| <a href="http://2424ddd.com" target="_blank">国产亚洲精品美女</a>| <a href="http://ww3838.com" target="_blank">伊伊综合在线</a>| <a href="http://xwsj2020.com" target="_blank">夜夜精品视频一区二区</a>| <a href="http://gaysexcube.com" target="_blank">亚洲永久精品大片</a>| <a href="http://jinlijun.com" target="_blank">久久久综合免费视频</a>| <a href="http://cuucs.com" target="_blank">亚洲大片在线</a>| <a href="http://118626cc.com" target="_blank">亚洲一区欧美激情</a>| <a href="http://2996611.com" target="_blank">久久久久国产精品厨房</a>| <a href="http://6k6a.com" target="_blank">欧美精品国产精品</a>| <a href="http://xxxx90.com" target="_blank">国产欧美日韩亚洲精品</a>| <a href="http://www49853b.com" target="_blank">精品动漫3d一区二区三区免费 </a>| <a href="http://chunhuigk.com" target="_blank">一区二区在线视频观看</a>| <a href="http://4c7175.com" target="_blank">亚洲免费黄色</a>| <a href="http://854277.com" target="_blank">久久九九久精品国产免费直播</a>| <a href="http://y4088.com" target="_blank">欧美电影美腿模特1979在线看</a>| <a href="http://ddixx.com" target="_blank">日韩亚洲欧美成人</a>| <a href="http://chunshanketang.com" target="_blank">久久aⅴ国产紧身牛仔裤</a>| <a href="http://www-216678.com" target="_blank">免费一区视频</a>| <a href="http://balqueen.com" target="_blank">国产亚洲成精品久久</a>| <a href="http://977dy.com" target="_blank">亚洲人成艺术</a>| <a href="http://2302345.com" target="_blank">亚洲色图自拍</a>| <a href="http://jav69me.com" target="_blank">亚洲国产精品成人综合</a>| <a href="http://739191g.com" target="_blank">亚洲视频免费看</a>| <a href="http://ddh345.com" target="_blank">免费欧美日韩</a>| <a href="http://pigkrtv.com" target="_blank">国产一区视频在线看</a>| <a href="http://422608.com" target="_blank">在线天堂一区av电影</a>| <a href="http://7770790.com" target="_blank">老司机精品导航</a>| <a href="http://8w82.com" target="_blank">樱桃成人精品视频在线播放</a>| <a href="http://666777v3.com" target="_blank">亚洲宅男天堂在线观看无病毒</a>| <a href="http://b871.com" target="_blank">亚洲欧美日韩综合aⅴ视频</a>| <a href="http://3c3c3c.com" target="_blank">老司机一区二区三区</a>| <a href="http://www-69669.com" target="_blank">夜夜嗨av色综合久久久综合网</a>| <a href="http://www-988900.com" target="_blank">久久精品国产v日韩v亚洲</a>| <a href="http://maokk88.com" target="_blank">欧美视频免费在线观看</a>| <a href="http://yymh1056.com" target="_blank">亚洲国产精品va在看黑人</a>| <a href="http://cibocentre.com" target="_blank">欧美在线一二三</a>| <a href="http://56701sy.com" target="_blank">亚洲无人区一区</a>| <a href="http://sese135.com" target="_blank">欧美日韩午夜精品</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>