亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flex.man

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? MAN
?? 第 1 頁 / 共 5 頁
字號:
          much  text as the originally chosen rule but came later
          in the flex input file, or one which matched less text.
          For example, the following will both count the words in
          the input  and  call  the  routine  special()  whenever
          "frob" is seen:

                      int word_count = 0;
              %%

              frob        special(); REJECT;
              [^ \t\n]+   ++word_count;

          Without the REJECT, any "frob"'s in the input would not
          be  counted  as  words, since the scanner normally exe-
          cutes only one action per token.  Multiple REJECT's are
          allowed,  each  one finding the next best choice to the
          currently active rule.  For example, when the following
          scanner  scans the token "abcd", it will write "abcdab-
          caba" to the output:

              %%
              a        |
              ab       |
              abc      |
              abcd     ECHO; REJECT;
              .|\n     /* eat up any unmatched character */

          (The first three rules share the fourth's action  since
          they   use   the  special  '|'  action.)  REJECT  is  a



Version 2.5          Last change: April 1995                   12






FLEX(1)                  USER COMMANDS                    FLEX(1)



          particularly expensive feature in terms of scanner per-
          formance; if it is used in any of the scanner's actions
          it will  slow  down  all  of  the  scanner's  matching.
          Furthermore,  REJECT cannot be used with the -Cf or -CF
          options (see below).

          Note also that unlike the other special actions, REJECT
          is  a  branch;  code  immediately  following  it in the
          action will not be executed.

     -    yymore() tells  the  scanner  that  the  next  time  it
          matches  a  rule,  the  corresponding  token  should be
          appended onto the current value of yytext  rather  than
          replacing  it.   For  example,  given  the input "mega-
          kludge" the following will write "mega-mega-kludge"  to
          the output:

              %%
              mega-    ECHO; yymore();
              kludge   ECHO;

          First "mega-" is matched  and  echoed  to  the  output.
          Then  "kludge"  is matched, but the previous "mega-" is
          still hanging around at the beginning of yytext so  the
          ECHO  for  the "kludge" rule will actually write "mega-
          kludge".

     Two notes regarding use of yymore(). First, yymore() depends
     on  the value of yyleng correctly reflecting the size of the
     current token, so you must not  modify  yyleng  if  you  are
     using  yymore().  Second,  the  presence  of yymore() in the
     scanner's action entails a minor performance penalty in  the
     scanner's matching speed.

     -    yyless(n) returns all but the first n characters of the
          current token back to the input stream, where they will
          be rescanned when the scanner looks for the next match.
          yytext  and  yyleng  are  adjusted appropriately (e.g.,
          yyleng will now be equal to n ).  For example,  on  the
          input  "foobar"  the  following will write out "foobar-
          bar":

              %%
              foobar    ECHO; yyless(3);
              [a-z]+    ECHO;

          An argument of  0  to  yyless  will  cause  the  entire
          current  input  string  to  be  scanned  again.  Unless
          you've changed how the scanner will  subsequently  pro-
          cess  its  input  (using BEGIN, for example), this will
          result in an endless loop.




Version 2.5          Last change: April 1995                   13






FLEX(1)                  USER COMMANDS                    FLEX(1)



     Note that yyless is a macro and can only be used in the flex
     input file, not from other source files.

     -    unput(c) puts the  character  c  back  onto  the  input
          stream.   It  will  be the next character scanned.  The
          following action will take the current token and  cause
          it to be rescanned enclosed in parentheses.

              {
              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 );
              }

          Note that since each unput() puts the  given  character
          back at the beginning of the input stream, pushing back
          strings must be done back-to-front.

     An important potential problem when using unput() is that if
     you are using %pointer (the default), a call to unput() des-
     troys the contents of yytext, starting  with  its  rightmost
     character  and devouring one character to the left with each
     call.  If you need the value of  yytext  preserved  after  a
     call  to  unput() (as in the above example), you must either
     first copy it elsewhere, or build your scanner using  %array
     instead (see How The Input Is Matched).

     Finally, note that you cannot put back  EOF  to  attempt  to
     mark the input stream with an end-of-file.

     -    input() reads the next character from the input stream.
          For  example, the following is one way to eat up C com-
          ments:

              %%
              "/*"        {
                          register int c;

                          for ( ; ; )
                              {
                              while ( (c = input()) != '*' &&
                                      c != EOF )
                                  ;    /* eat up text of comment */

                              if ( c == '*' )
                                  {
                                  while ( (c = input()) == '*' )



Version 2.5          Last change: April 1995                   14






FLEX(1)                  USER COMMANDS                    FLEX(1)



                                      ;
                                  if ( c == '/' )
                                      break;    /* found the end */
                                  }

                              if ( c == EOF )
                                  {
                                  error( "EOF in comment" );
                                  break;
                                  }
                              }
                          }

          (Note that if the scanner is compiled using  C++,  then
          input()  is  instead referred to as yyinput(), in order
          to avoid a name clash with the C++ stream by  the  name
          of input.)

     -    YY_FLUSH_BUFFER flushes the scanner's  internal  buffer
          so  that  the next time the scanner attempts to match a
          token, it will first refill the buffer  using  YY_INPUT
          (see  The  Generated Scanner, below).  This action is a
          special case  of  the  more  general  yy_flush_buffer()
          function, described below in the section Multiple Input
          Buffers.

     -    yyterminate() can be used in lieu of a return statement
          in  an action.  It terminates the scanner and returns a
          0 to the scanner's caller, indicating "all  done".   By
          default,  yyterminate()  is also called when an end-of-
          file is encountered.  It is a macro and  may  be  rede-
          fined.

THE GENERATED SCANNER
     The output of flex is the file lex.yy.c, which contains  the
     scanning  routine yylex(), a number of tables used by it for
     matching tokens, and a number of auxiliary routines and mac-
     ros.  By default, yylex() is declared as follows:

         int yylex()
             {
             ... various definitions and the actions in here ...
             }

     (If your environment supports function prototypes,  then  it
     will  be  "int  yylex(  void  )".)   This  definition may be
     changed by defining the "YY_DECL" macro.  For  example,  you
     could use:

         #define YY_DECL float lexscan( a, b ) float a, b;

     to give the scanning routine the name lexscan,  returning  a



Version 2.5          Last change: April 1995                   15






FLEX(1)                  USER COMMANDS                    FLEX(1)



     float, and taking two floats as arguments.  Note that if you
     give  arguments  to  the  scanning  routine  using  a   K&R-
     style/non-prototyped  function  declaration,  you  must ter-
     minate the definition with a semi-colon (;).

     Whenever yylex() is called, it scans tokens from the  global
     input  file  yyin  (which  defaults to stdin).  It continues
     until it either reaches an end-of-file (at  which  point  it
     returns the value 0) or one of its actions executes a return
     statement.

     If the scanner reaches an end-of-file, subsequent calls  are
     undefined  unless either yyin is pointed at a new input file
     (in which case scanning continues from that file), or yyres-
     tart()  is called.  yyrestart() takes one argument, a FILE *
     pointer (which can be nil, if you've set up YY_INPUT to scan
     from  a  source  other  than yyin), and initializes yyin for
     scanning from that file.  Essentially there is no difference
     between  just  assigning  yyin  to a new input file or using
     yyrestart() to do so; the latter is available  for  compati-
     bility with previous versions of flex, and because it can be
     used to switch input files in the middle  of  scanning.   It
     can  also be used to throw away the current input buffer, by
     calling it with an argument of yyin; but better  is  to  use
     YY_FLUSH_BUFFER (see above).  Note that yyrestart() does not
     reset the start condition to INITIAL (see Start  Conditions,
     below).

     If yylex() stops scanning due to executing a  return  state-
     ment  in  one of the actions, the scanner may then be called
     again and it will resume scanning where it left off.

     By default (and for purposes  of  efficiency),  the  scanner
     uses  block-reads  rather  than  simple getc() calls to read
     characters from yyin. The nature of how it  gets  its  input
     can   be   controlled   by   defining  the  YY_INPUT  macro.
     YY_INPUT's           calling           sequence           is
     "YY_INPUT(buf,result,max_size)".   Its action is to place up
     to max_size characters in the character array buf and return
     in  the integer variable result either the number of charac-
     ters read or the constant YY_NULL (0  on  Unix  systems)  to
     indicate  EOF.   The  default YY_INPUT reads from the global
     file-pointer "yyin".

     A sample definition of YY_INPUT (in the definitions  section
     of the input file):

         %{
         #define YY_INPUT(buf,result,max_size) \
             { \
             int c = getchar(); \
             result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \



Version 2.5          Last change: April 1995                   16






FLEX(1)                  USER COMMANDS                    FLEX(1)



             }
         %}

     This definition will change the input  processing  to  occur
     one character at a time.

     When the scanner receives  an  end-of-file  indication  from
     YY_INPUT, it then checks the yywrap() function.  If yywrap()
     returns false (zero), then it is assumed that  the  function
     has  gone  ahead  and  set up yyin to point to another input
     file, and scanning continues.   If  it  returns  true  (non-
     zero),  then  the  scanner  terminates,  returning  0 to its
     caller.  Note that  in  either  case,  the  start  condition
     remains unchanged; it does not revert to INITIAL.

     If you do not supply your own version of yywrap(), then  you
     must  either use %option noyywrap (in which case the scanner
     behaves as though yywrap() returned 1),  or  you  must  link
     with  -lfl  to  obtain  the  default version of the routine,
     which always returns 1.

     Three routines are available  for  scanning  from  in-memory
     buffers     rather     than     files:     yy_scan_string(),
     yy_scan_bytes(), and yy_scan_buffer(). See the discussion of
     them below in the section Multiple Input Buffers.

     The scanner writes its  ECHO  output  to  the  yyout  global
     (default, stdout), which may be redefined by the user simply
     by assigning it to some other FILE pointer.

START CONDITIONS
     flex  provides  a  mechanism  for  conditionally  activating
     rules.   Any rule whose pattern is prefixed with "<sc>" will
     only be active when the scanner is in  the  start  condition
     named "sc".  For example,

         <STRING>[^"]*        { /* eat up the string body ... */
                     ...
                     }

     will be active only when the  scanner  is  in  the  "STRING"
     start condition, and

         <INITIAL,STRING,QUOTE>\.        { /* handle an escape ... */
                     ...
                     }

     will be active only when  the  current  start  condition  is
     either "INITIAL", "STRING", or "QUOTE".

     Start conditions are declared  in  the  definitions  (first)
     section  of  the input using unindented lines beginning with



Version 2.5          Last change: April 1995                   17






FLEX(1)                  USER COMMANDS                    FLEX(1)



     either %s or %x followed by a list  of  names.   The  former
     declares  inclusive  start  conditions, the latter exclusive
     start conditions.  A start condition is activated using  the
     BEGIN  action.   Until  the  next  BEGIN action is executed,
     rules with the given start  condition  will  be  active  and

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区视频| 欧美蜜桃一区二区三区| 色吊一区二区三区| 欧美刺激午夜性久久久久久久| 国产色一区二区| 婷婷丁香激情综合| 国产91精品入口| 日韩一区二区三区免费观看| 亚洲嫩草精品久久| 国产做a爰片久久毛片| 欧美视频一区二区| 国产精品久久久久久久久免费樱桃| 青娱乐精品在线视频| 在线免费观看一区| 国产欧美一区二区精品久导航| 美女在线视频一区| 欧美色综合网站| 亚洲欧美激情插 | 91久久免费观看| 国产亚洲欧洲一区高清在线观看| 爽好久久久欧美精品| 在线观看国产一区二区| 中文字幕日韩一区二区| 丁香桃色午夜亚洲一区二区三区| 日韩免费看的电影| 日本成人在线网站| 在线播放视频一区| 午夜视频在线观看一区| 欧美日韩一区二区三区四区五区| 一区二区三区不卡在线观看| 91在线精品秘密一区二区| 国产精品婷婷午夜在线观看| 丁香婷婷综合色啪| 国产午夜精品一区二区三区嫩草| 国产在线精品免费av| 日韩一区二区三区在线| 天天色综合成人网| 6080午夜不卡| 久久精品国产第一区二区三区| 日韩欧美综合一区| 国产在线精品一区二区不卡了 | 欧美中文字幕一二三区视频| 亚洲精品日韩专区silk| 91国偷自产一区二区三区观看 | 9191久久久久久久久久久| 亚洲成在人线在线播放| 欧美高清hd18日本| 蜜臀a∨国产成人精品| 欧美精品一区二区三区一线天视频 | 亚洲国产欧美在线| 欧美片网站yy| 免费观看在线综合| 久久综合色综合88| 成人性生交大片| 亚洲欧美偷拍三级| 欧洲色大大久久| 免费欧美高清视频| 久久久久九九视频| 99精品国产热久久91蜜凸| 亚洲国产日韩在线一区模特| 欧美一级艳片视频免费观看| 国产精品综合在线视频| 中文字幕综合网| 欧美一区二区视频免费观看| 成人一级黄色片| 婷婷国产在线综合| 国产精品视频线看| 欧美伦理视频网站| 国产激情91久久精品导航 | 激情综合色综合久久| 成人一级片在线观看| 一区二区三区中文字幕电影| 日韩欧美国产三级电影视频| 成人a免费在线看| 蜜臀av一区二区在线观看| 国产欧美综合色| 精品视频1区2区| 国产成人精品免费看| 亚洲一级二级在线| 国产婷婷色一区二区三区四区| 欧美在线视频你懂得| 国产黄色精品网站| 日本少妇一区二区| 亚洲色图制服丝袜| 久久久久久久网| 欧美日韩aaaaa| 91视频观看免费| 国产剧情一区在线| 美美哒免费高清在线观看视频一区二区 | 日本视频一区二区三区| 亚洲色欲色欲www| 欧美国产成人精品| 正在播放一区二区| 在线免费精品视频| va亚洲va日韩不卡在线观看| 国产一级精品在线| 免费观看久久久4p| 亚洲一区二区三区精品在线| 国产欧美日韩不卡免费| 精品久久久久99| 欧美美女bb生活片| 在线观看一区日韩| 99精品1区2区| caoporn国产一区二区| 国产一区二区在线观看视频| 裸体歌舞表演一区二区| 亚洲1区2区3区4区| 伊人性伊人情综合网| 国产精品欧美久久久久一区二区| 久久一二三国产| 欧美成人a在线| 欧美一区二区女人| 正在播放亚洲一区| 91精品国产丝袜白色高跟鞋| 欧美高清视频不卡网| 欧美精品高清视频| 欧美老肥妇做.爰bbww| 欧美吞精做爰啪啪高潮| 欧美视频在线观看一区二区| 欧美日韩久久一区| 欧美精品xxxxbbbb| 欧美美女一区二区三区| 欧美日本韩国一区二区三区视频| 欧美人xxxx| 欧美一区二区三区在| 日韩美女视频在线| 久久综合色鬼综合色| 国产婷婷色一区二区三区在线| 中日韩av电影| 夜夜精品浪潮av一区二区三区| 亚洲综合色婷婷| 免费观看在线色综合| 国产在线不卡一卡二卡三卡四卡| 国产精品99久久久久久久女警| 国产91精品一区二区麻豆网站| 色呦呦一区二区三区| 欧美性大战xxxxx久久久| 欧美一区二区久久| 国产三级一区二区| 亚洲免费av高清| 免费在线观看日韩欧美| 国产一区二区视频在线播放| 91香蕉视频在线| 91精品国产91久久久久久一区二区| 欧美刺激午夜性久久久久久久| 欧美高清在线一区| 亚洲一卡二卡三卡四卡五卡| 精品一区二区免费视频| 国产成人精品亚洲午夜麻豆| 欧美亚洲国产bt| ww久久中文字幕| 一区二区三区久久| 老司机精品视频导航| 成人爱爱电影网址| 欧美一区二区三区色| 中文字幕第一区综合| 亚洲第一二三四区| 国产a区久久久| 在线综合+亚洲+欧美中文字幕| 中文字幕av免费专区久久| 亚洲一区二区三区美女| 国产精品白丝jk白祙喷水网站| 欧美在线一二三| 亚洲国产精品成人久久综合一区| 午夜伦欧美伦电影理论片| 国产成人av网站| 欧美一卡二卡在线| 亚洲欧洲成人自拍| 久久国内精品自在自线400部| 色视频欧美一区二区三区| 欧美成人aa大片| 亚洲h精品动漫在线观看| 国产传媒久久文化传媒| 91精品国产欧美日韩| 一区二区三区四区高清精品免费观看 | 北岛玲一区二区三区四区| 6080午夜不卡| 亚洲国产一区二区三区青草影视| 成人国产精品免费观看动漫| 久久久久免费观看| 日本欧美肥老太交大片| 91精品91久久久中77777| 国产欧美日韩三区| 精品在线播放免费| 欧美日韩一区不卡| 亚洲色图欧美激情| 国产精品亚洲一区二区三区妖精 | 一本一道久久a久久精品综合蜜臀| 久久久久久久久久久电影| 免费在线观看一区二区三区| 欧美日韩午夜影院| 一区二区三区av电影| 成人av在线资源网站| 久久精品夜夜夜夜久久| 国内精品视频666| 精品国产免费视频| 美洲天堂一区二卡三卡四卡视频| 欧美日韩国产美| 午夜成人在线视频| 欧美精选午夜久久久乱码6080|