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

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

?? flex.man

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? MAN
?? 第 1 頁 / 共 5 頁
字號:



FLEX(1)                  USER COMMANDS                    FLEX(1)



NAME
     flex - fast lexical analyzer generator

SYNOPSIS
     flex [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput  -Pprefix
     -Sskeleton] [--help --version] [filename ...]

OVERVIEW
     This manual describes flex, a tool for  generating  programs
     that  perform pattern-matching on text.  The manual includes
     both tutorial and reference sections:

         Description
             a brief overview of the tool

         Some Simple Examples

         Format Of The Input File

         Patterns
             the extended regular expressions used by flex

         How The Input Is Matched
             the rules for determining what has been matched

         Actions
             how to specify what to do when a pattern is matched

         The Generated Scanner
             details regarding the scanner that flex produces;
             how to control the input source

         Start Conditions
             introducing context into your scanners, and
             managing "mini-scanners"

         Multiple Input Buffers
             how to manipulate multiple input sources; how to
             scan from strings instead of files

         End-of-file Rules
             special rules for matching the end of the input

         Miscellaneous Macros
             a summary of macros available to the actions

         Values Available To The User
             a summary of values available to the actions

         Interfacing With Yacc
             connecting flex scanners together with yacc parsers




Version 2.5          Last change: April 1995                    1






FLEX(1)                  USER COMMANDS                    FLEX(1)



         Options
             flex command-line options, and the "%option"
             directive

         Performance Considerations
             how to make your scanner go as fast as possible

         Generating C++ Scanners
             the (experimental) facility for generating C++
             scanner classes

         Incompatibilities With Lex And POSIX
             how flex differs from AT&T lex and the POSIX lex
             standard

         Diagnostics
             those error messages produced by flex (or scanners
             it generates) whose meanings might not be apparent

         Files
             files used by flex

         Deficiencies / Bugs
             known problems with flex

         See Also
             other documentation, related tools

         Author
             includes contact information


DESCRIPTION
     flex is a  tool  for  generating  scanners:  programs  which
     recognized  lexical  patterns in text.  flex reads the given
     input files, or its standard input  if  no  file  names  are
     given,  for  a  description  of  a scanner to generate.  The
     description is in the form of pairs of  regular  expressions
     and  C  code,  called  rules.  flex  generates as output a C
     source file, lex.yy.c, which defines a routine yylex(). This
     file is compiled and linked with the -lfl library to produce
     an executable.  When the executable is run, it analyzes  its
     input  for occurrences of the regular expressions.  Whenever
     it finds one, it executes the corresponding C code.

SOME SIMPLE EXAMPLES
     First some simple examples to get the flavor of how one uses
     flex.  The  following  flex  input specifies a scanner which
     whenever it encounters the string "username" will replace it
     with the user's login name:

         %%



Version 2.5          Last change: April 1995                    2






FLEX(1)                  USER COMMANDS                    FLEX(1)



         username    printf( "%s", getlogin() );

     By default, any text not matched by a flex scanner is copied
     to  the output, so the net effect of this scanner is to copy
     its input file to its output with each occurrence of  "user-
     name"  expanded.   In  this  input,  there is just one rule.
     "username" is the pattern and the "printf"  is  the  action.
     The "%%" marks the beginning of the rules.

     Here's another simple example:

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

     This scanner counts the number of characters and the  number
     of  lines in its input (it produces no output other than the
     final report on the counts).  The first  line  declares  two
     globals,  "num_lines"  and "num_chars", which are accessible
     both inside yylex() and in the main() routine declared after
     the  second  "%%".  There are two rules, one which matches a
     newline ("\n") and increments both the line  count  and  the
     character  count,  and one which matches any character other
     than a newline (indicated by the "." regular expression).

     A somewhat more complicated example:

         /* scanner for a toy Pascal-like language */

         %{
         /* 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 ) );



Version 2.5          Last change: April 1995                    3






FLEX(1)                  USER COMMANDS                    FLEX(1)



                     }

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

     This is the beginnings of a simple scanner  for  a  language
     like  Pascal.   It  identifies different types of tokens and
     reports on what it has seen.

     The details of this example will be explained in the follow-
     ing sections.

FORMAT OF THE INPUT FILE
     The flex input file consists of three sections, separated by
     a line with just %% in it:

         definitions
         %%
         rules
         %%
         user code



Version 2.5          Last change: April 1995                    4






FLEX(1)                  USER COMMANDS                    FLEX(1)



     The definitions section contains declarations of simple name
     definitions  to  simplify  the  scanner  specification,  and
     declarations of start conditions, which are explained  in  a
     later section.

     Name definitions have the form:

         name definition

     The "name" is a word beginning with a letter  or  an  under-
     score  ('_')  followed by zero or more letters, digits, '_',
     or '-' (dash).  The definition is  taken  to  begin  at  the
     first  non-white-space character following the name and con-
     tinuing to the end of the line.  The definition  can  subse-
     quently  be referred to using "{name}", which will expand to
     "(definition)".  For example,

         DIGIT    [0-9]
         ID       [a-z][a-z0-9]*

     defines "DIGIT" to be a regular expression which  matches  a
     single  digit,  and  "ID"  to  be a regular expression which
     matches a letter followed by zero-or-more letters-or-digits.
     A subsequent reference to

         {DIGIT}+"."{DIGIT}*

     is identical to

         ([0-9])+"."([0-9])*

     and matches one-or-more digits followed by a '.' followed by
     zero-or-more digits.

     The rules section of the flex input  contains  a  series  of
     rules of the form:

         pattern   action

     where the pattern must be unindented  and  the  action  must
     begin on the same line.

     See below for a further description of patterns and actions.

     Finally, the user code section is simply copied to  lex.yy.c
     verbatim.   It  is used for companion routines which call or
     are called by the scanner.  The presence of this section  is
     optional;  if it is missing, the second %% in the input file
     may be skipped, too.

     In the definitions and rules sections, any indented text  or
     text  enclosed in %{ and %} is copied verbatim to the output



Version 2.5          Last change: April 1995                    5






FLEX(1)                  USER COMMANDS                    FLEX(1)



     (with the %{}'s removed).  The %{}'s must appear  unindented
     on lines by themselves.

     In the rules section, any indented  or  %{}  text  appearing
     before the first rule may be used to declare variables which
     are local to the scanning routine and  (after  the  declara-
     tions)  code  which  is to be executed whenever the scanning
     routine is entered.  Other indented or %{} text in the  rule
     section  is  still  copied to the output, but its meaning is
     not well-defined and it may well cause  compile-time  errors
     (this feature is present for POSIX compliance; see below for
     other such features).

     In the definitions section (but not in the  rules  section),
     an  unindented comment (i.e., a line beginning with "/*") is
     also copied verbatim to the output up to the next "*/".

PATTERNS
     The patterns in the input are written using an extended  set
     of regular expressions.  These are:

         x          match the character 'x'
         .          any character (byte) except newline
         [xyz]      a "character class"; in this case, the pattern
                      matches either an 'x', a 'y', or a 'z'
         [abj-oZ]   a "character class" with a range in it; matches
                      an 'a', a 'b', any letter from 'j' through 'o',
                      or a 'Z'
         [^A-Z]     a "negated character class", i.e., any character
                      but those in the class.  In this case, any
                      character EXCEPT an uppercase letter.
         [^A-Z\n]   any character EXCEPT an uppercase letter or
                      a newline
         r*         zero or more r's, where r is any regular expression
         r+         one or more r's
         r?         zero or one r's (that is, "an optional r")
         r{2,5}     anywhere from two to five r's
         r{2,}      two or more r's
         r{4}       exactly 4 r's
         {name}     the expansion of the "name" definition
                    (see above)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av电影在线播放| 中文字幕日本乱码精品影院| 99久久精品国产麻豆演员表| 国产一区在线观看视频| 人妖欧美一区二区| 免费久久99精品国产| 天堂影院一区二区| 蜜桃视频一区二区三区在线观看 | 日日夜夜免费精品| 一片黄亚洲嫩模| 亚洲动漫第一页| 午夜精彩视频在线观看不卡| 丝袜美腿高跟呻吟高潮一区| 全部av―极品视觉盛宴亚洲| 免费看欧美美女黄的网站| 精品一区精品二区高清| 日韩精品视频网站| 韩国一区二区三区| 国产精品18久久久久久久久久久久| 精品一区二区三区在线播放视频 | 欧美激情一区二区三区全黄| 国产蜜臀av在线一区二区三区| 国产精品情趣视频| 亚洲一区视频在线| 久久国产尿小便嘘嘘尿| 国产成人免费视频网站| 99久久99久久精品免费看蜜桃| 日本精品裸体写真集在线观看| 欧美午夜一区二区三区| 精品国产自在久精品国产| 国产亚洲短视频| 一区二区成人在线观看| 久草中文综合在线| 色菇凉天天综合网| 精品欧美一区二区在线观看| 中文字幕一区免费在线观看| 手机精品视频在线观看| 国产福利精品一区| 欧美日韩专区在线| 国产精品三级视频| 韩日av一区二区| 成人av电影在线观看| av一区二区三区四区| 日韩欧美一级片| 亚洲美女视频一区| 国产一区二区在线视频| 欧美曰成人黄网| 亚洲国产高清aⅴ视频| 婷婷丁香激情综合| 99精品视频在线观看| 日韩欧美自拍偷拍| 亚洲五月六月丁香激情| 成人高清免费观看| 精品国产乱码久久久久久夜甘婷婷| 国产精品灌醉下药二区| 国模套图日韩精品一区二区| 欧美日韩国产精选| 亚洲在线免费播放| 91猫先生在线| 最新热久久免费视频| 国产精品第五页| 97久久人人超碰| 精品国产乱码久久久久久久久| 国产精品短视频| 精品亚洲国产成人av制服丝袜| 色吧成人激情小说| 亚洲欧美另类图片小说| 岛国精品在线播放| 欧美激情一区二区三区全黄| 国产成人一级电影| 日本一区二区三区视频视频| 国产精品69久久久久水密桃| 久久婷婷成人综合色| 麻豆精品国产91久久久久久| 欧美视频一区二区三区四区| 亚洲精品伦理在线| 一本到一区二区三区| 日韩久久一区二区| 91高清视频免费看| 亚洲大片精品永久免费| 欧美一区二区三区在| 国产成+人+日韩+欧美+亚洲| 一区二区三区国产豹纹内裤在线| 国产馆精品极品| 久久久精品国产免费观看同学| 日韩不卡一区二区三区| 日韩亚洲欧美中文三级| 久久99国产乱子伦精品免费| 日韩美女一区二区三区| 国产成人免费视频网站 | 欧美视频一区二区三区在线观看| 亚洲综合成人在线| 在线播放欧美女士性生活| 久久99精品国产91久久来源| 国产人成亚洲第一网站在线播放 | 久久伊99综合婷婷久久伊| 亚洲尤物视频在线| 中文字幕欧美一区| 91视频在线观看| 亚洲激情图片一区| 欧美一区二区三区在线电影 | 久久www免费人成看片高清| 欧美精品一区二区在线播放| 国产成a人无v码亚洲福利| 亚洲一区中文日韩| 久久在线观看免费| 色综合天天性综合| 麻豆国产欧美日韩综合精品二区| 国产三级一区二区| 在线观看视频91| 国产一区啦啦啦在线观看| 亚洲精品高清视频在线观看| 日韩免费观看高清完整版在线观看| 成人性生交大片免费 | 日韩免费成人网| 99久久精品免费看国产| 欧美一区二区三区四区在线观看| 亚洲资源中文字幕| 久久影音资源网| 在线亚洲欧美专区二区| 国产精品亚洲一区二区三区在线 | 高清视频一区二区| 五月激情综合网| 中文字幕欧美日韩一区| 欧美人动与zoxxxx乱| 97国产一区二区| 国产一区二区不卡在线| 日韩精品乱码av一区二区| 亚洲欧美在线视频观看| 久久先锋影音av鲁色资源| 欧美三级电影精品| 欧洲国产伦久久久久久久| 国产福利一区二区三区在线视频| 日韩精品一二三四| 午夜精品久久久久久久蜜桃app| 国产精品视频线看| 久久欧美一区二区| 欧美成人一区二区三区片免费 | 精品国产露脸精彩对白| 在线观看日产精品| 一本大道久久a久久精品综合| 国产激情精品久久久第一区二区 | 国产精品久久久久久久久久免费看| 7777女厕盗摄久久久| 在线区一区二视频| 成人国产亚洲欧美成人综合网 | 欧美日本免费一区二区三区| 色呦呦国产精品| 色偷偷一区二区三区| av亚洲精华国产精华精华| 成人ar影院免费观看视频| 国产999精品久久| 风流少妇一区二区| www.亚洲免费av| 99在线精品观看| 日本高清不卡aⅴ免费网站| 色婷婷综合久久久久中文一区二区 | 午夜精品福利视频网站| 亚洲一区二区高清| 日韩中文欧美在线| 久久国产精品99久久久久久老狼| 秋霞电影网一区二区| 国精品**一区二区三区在线蜜桃| 国模套图日韩精品一区二区| 国产精品羞羞答答xxdd| 成人国产一区二区三区精品| 91免费视频观看| 欧美精品丝袜久久久中文字幕| 4hu四虎永久在线影院成人| 日韩欧美国产一区二区在线播放| 日韩一区二区视频在线观看| 日韩精品中文字幕在线一区| 久久久久久久综合色一本| 国产精品国产三级国产| 亚洲人成人一区二区在线观看| 亚洲精品免费在线| 久久精品国产99国产精品| 国产一区在线看| 色悠悠久久综合| 亚洲精品一线二线三线无人区| 日本一二三不卡| 亚瑟在线精品视频| 国产成人在线视频免费播放| 欧美最新大片在线看| 欧美精品一区二区三区很污很色的 | 成人黄色在线看| 欧美日本高清视频在线观看| 精品欧美一区二区在线观看| 亚洲精品欧美在线| 国内外成人在线| 欧美视频在线观看一区二区| 久久久久久一二三区| 夜夜操天天操亚洲| 国产a视频精品免费观看| 欧美日韩国产成人在线91| 中文字幕欧美区| 久热成人在线视频| 欧美自拍丝袜亚洲| 国产精品理伦片| 久久精品国产精品亚洲精品 |