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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flex.texi

?? 詞法分析器生成工具
?? TEXI
?? 第 1 頁 / 共 5 頁
字號(hào):
\input texinfo
@c %**start of header
@setfilename flex.info
@settitle Flex - a scanner generator
@c @finalout
@c @setchapternewpage odd
@c %**end of header

@set EDITION 2.5
@set UPDATED March 1995
@set VERSION 2.5

@c FIXME - Reread a printed copy with a red pen and patience.
@c FIXME - Modify all "See ..." references and replace with @xref's.

@ifinfo
@format
START-INFO-DIR-ENTRY
* Flex: (flex).         A fast scanner generator.
END-INFO-DIR-ENTRY
@end format
@end ifinfo

@c Define new indices for commands, filenames, and options.
@c @defcodeindex cm
@c @defcodeindex fl
@c @defcodeindex op

@c Put everything in one index (arbitrarily chosen to be the concept index).
@c @syncodeindex cm cp
@c @syncodeindex fl cp
@syncodeindex fn cp
@syncodeindex ky cp
@c @syncodeindex op cp
@syncodeindex pg cp
@syncodeindex vr cp

@ifinfo
This file documents Flex.

Copyright (c) 1990 The Regents of the University of California.
All rights reserved.

This code is derived from software contributed to Berkeley by
Vern Paxson.

The United States Government has rights in this work pursuant
to contract no. DE-AC03-76SF00098 between the United States
Department of Energy and the University of California.

Redistribution and use in source and binary forms are permitted
provided that: (1) source distributions retain this entire
copyright notice and comment, and (2) distributions including
binaries display the following acknowledgement:  ``This product
includes software developed by the University of California,
Berkeley and its contributors'' in the documentation or other
materials provided with the distribution and in all advertising
materials mentioning features or use of this software.  Neither the
name of the University nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).

@end ignore
@end ifinfo

@titlepage
@title Flex, version @value{VERSION}
@subtitle A fast scanner generator
@subtitle Edition @value{EDITION}, @value{UPDATED}
@author Vern Paxson

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1990 The Regents of the University of California.
All rights reserved.

This code is derived from software contributed to Berkeley by
Vern Paxson.

The United States Government has rights in this work pursuant
to contract no. DE-AC03-76SF00098 between the United States
Department of Energy and the University of California.

Redistribution and use in source and binary forms are permitted
provided that: (1) source distributions retain this entire
copyright notice and comment, and (2) distributions including
binaries display the following acknowledgement:  ``This product
includes software developed by the University of California,
Berkeley and its contributors'' in the documentation or other
materials provided with the distribution and in all advertising
materials mentioning features or use of this software.  Neither the
name of the University nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
@end titlepage

@ifinfo

@node Top, Name, (dir), (dir)
@top flex

@cindex scanner generator

This manual documents @code{flex}.  It covers release @value{VERSION}.

@menu
* Name::                        Name
* Synopsis::                    Synopsis
* Overview::                    Overview
* Description::                 Description
* Examples::                    Some simple examples
* Format::                      Format of the input file
* Patterns::                    Patterns
* Matching::                    How the input is matched
* Actions::                     Actions
* Generated scanner::           The generated scanner
* Start conditions::            Start conditions
* Multiple buffers::            Multiple input buffers
* End-of-file rules::           End-of-file rules
* Miscellaneous::               Miscellaneous macros
* User variables::              Values available to the user
* YACC interface::              Interfacing with @code{yacc}
* Options::                     Options
* Performance::                 Performance considerations
* C++::                         Generating C++ scanners
* Incompatibilities::           Incompatibilities with @code{lex} and POSIX
* Diagnostics::                 Diagnostics
* Files::                       Files
* Deficiencies::                Deficiencies / Bugs
* See also::                    See also
* Author::                      Author
@c * Index::                       Index
@end menu

@end ifinfo

@node Name, Synopsis, Top, Top
@section Name

flex - fast lexical analyzer generator

@node Synopsis, Overview, Name, Top
@section Synopsis

@example
flex [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]
[--help --version] [@var{filename} @dots{}]
@end example

@node Overview, Description, Synopsis, Top
@section Overview

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

@table @asis
@item Description
a brief overview of the tool

@item Some Simple Examples

@item Format Of The Input File

@item Patterns
the extended regular expressions used by flex

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

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

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

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

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

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

@item Miscellaneous Macros
a summary of macros available to the actions

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

@item Interfacing With Yacc
connecting flex scanners together with yacc parsers

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

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

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

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

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

@item Files
files used by flex

@item Deficiencies / Bugs
known problems with flex

@item See Also
other documentation, related tools

@item Author
includes contact information
@end table

@node Description, Examples, Overview, Top
@section Description

@code{flex} is a tool for generating @dfn{scanners}: programs which
recognized lexical patterns in text.  @code{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 @dfn{rules}. @code{flex} generates as output a C
source file, @file{lex.yy.c}, which defines a routine @samp{yylex()}.
This file is compiled and linked with the @samp{-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.

@node Examples, Format, Description, Top
@section Some simple examples

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

@example
%%
username    printf( "%s", getlogin() );
@end example

By default, any text not matched by a @code{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 "username" expanded.  In this input, there is just one
rule.  "username" is the @var{pattern} and the "printf" is the
@var{action}.  The "%%" marks the beginning of the rules.

Here's another simple example:

@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 );
        @}
@end example

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 @samp{yylex()} and in the @samp{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:

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

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

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

The details of this example will be explained in the
following sections.

@node Format, Patterns, Examples, Top
@section Format of the input file

The @code{flex} input file consists of three sections, separated
by a line with just @samp{%%} in it:

@example
definitions
%%
rules
%%
user code
@end example

The @dfn{definitions} section contains declarations of simple
@dfn{name} definitions to simplify the scanner specification,
and declarations of @dfn{start conditions}, which are explained
in a later section.
Name definitions have the form:

@example
name definition

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影在线不卡| 欧美性猛交xxxx黑人交| 日韩美女在线视频| 日本成人在线视频网站| 欧美午夜精品久久久久久超碰| 国产拍欧美日韩视频二区| 国产老女人精品毛片久久| 久久久国产一区二区三区四区小说| 国产综合久久久久影院| 欧美激情综合五月色丁香小说| 国内精品视频666| 欧美一级在线免费| 麻豆一区二区99久久久久| 欧美精品一区二区三区在线| 粉嫩一区二区三区性色av| 亚洲一区自拍偷拍| 久久久久久久综合色一本| 久久国内精品自在自线400部| 国产性天天综合网| 91久久精品一区二区三区| 日本大胆欧美人术艺术动态| 欧美精品一区二区三区久久久| 国产一区二区福利视频| 亚洲免费观看高清完整版在线观看| 在线视频欧美精品| 国产麻豆午夜三级精品| 亚洲精品成人悠悠色影视| 精品人在线二区三区| 99久久免费精品高清特色大片| 日av在线不卡| 亚洲视频免费在线观看| 538prom精品视频线放| 国产91清纯白嫩初高中在线观看| 亚洲一二三四区| 国产精品不卡一区| 久久午夜免费电影| 欧美理论电影在线| 99re热视频精品| 国产精品影视在线观看| 午夜婷婷国产麻豆精品| 国产精品福利一区二区三区| 日韩欧美国产麻豆| 欧美喷潮久久久xxxxx| 国产精品小仙女| 国产一区二区三区香蕉| 韩国在线一区二区| 婷婷综合久久一区二区三区| 免费精品视频在线| 国产夫妻精品视频| 风流少妇一区二区| 国产+成+人+亚洲欧洲自线| 国产成人av电影在线观看| 成人午夜视频在线观看| 一本色道亚洲精品aⅴ| 欧美精品色一区二区三区| 88在线观看91蜜桃国自产| 欧日韩精品视频| 欧美电视剧在线看免费| 国产日韩精品一区二区浪潮av | www.亚洲人| 欧美午夜理伦三级在线观看| 欧美高清一级片在线| 久久蜜桃香蕉精品一区二区三区| 国产精品欧美综合在线| 亚洲成人动漫在线观看| 国产一区在线看| 欧美视频一区二区三区| 久久九九99视频| 亚洲制服丝袜av| 国产成人在线网站| 3d成人h动漫网站入口| 国产精品动漫网站| 精品在线亚洲视频| 91视视频在线观看入口直接观看www | 青娱乐精品视频| 色综合天天性综合| 久久精品这里都是精品| 肉丝袜脚交视频一区二区| bt欧美亚洲午夜电影天堂| 精品国产三级电影在线观看| 亚洲黄色尤物视频| 成人小视频免费在线观看| 欧美电影免费观看完整版| 日韩在线a电影| 欧美在线不卡视频| 亚洲黄色小说网站| 91视频xxxx| 一区二区三区鲁丝不卡| 99精品热视频| 亚洲亚洲人成综合网络| 色狠狠色噜噜噜综合网| 亚洲欧美aⅴ...| 91在线观看下载| 中文字幕人成不卡一区| 成人午夜电影小说| 国产精品久久久久影视| 99久久夜色精品国产网站| 国产精品日日摸夜夜摸av| 成人在线视频一区二区| 中文字幕视频一区| 91久久精品一区二区| 亚洲伊人伊色伊影伊综合网| 欧美日韩国产高清一区二区 | 日本不卡一区二区| 欧美一卡在线观看| 另类小说综合欧美亚洲| 26uuu色噜噜精品一区二区| 成人午夜在线免费| 一区二区三区日韩精品| 欧美精品aⅴ在线视频| 奇米四色…亚洲| 看电影不卡的网站| 综合中文字幕亚洲| 欧美在线视频日韩| 久久国产精品72免费观看| 国产精品午夜在线| 91极品美女在线| 久久精品二区亚洲w码| 亚洲国产成人自拍| 欧美亚洲一区三区| 国产精品18久久久| 天堂影院一区二区| 中文天堂在线一区| 3atv一区二区三区| 91在线视频播放| 蜜桃视频在线观看一区| 国产精品美女久久久久久久久久久 | 欧美一级日韩不卡播放免费| 国产成人午夜电影网| 亚洲午夜精品网| 欧美国产一区二区| 久久久久亚洲蜜桃| 欧美性猛交xxxx黑人交| 色综合欧美在线视频区| 成人精品一区二区三区四区| 久久精品国产99国产精品| 午夜精品一区二区三区三上悠亚 | 一区二区三区中文在线| 国产精品高清亚洲| 国产女主播一区| 久久99精品久久久久久动态图 | 国产精品免费丝袜| 欧美国产禁国产网站cc| 欧美一区二区三区公司| 欧美精品精品一区| 欧美日韩aaaaa| 91精品午夜视频| 精品视频在线看| 7777精品伊人久久久大香线蕉完整版 | 91黄视频在线| 欧美剧情电影在线观看完整版免费励志电影 | 日韩欧美高清在线| www激情久久| 亚洲少妇屁股交4| 亚洲影视在线观看| 亚洲自拍偷拍图区| 亚洲一区二区三区国产| 男女男精品视频| 六月丁香综合在线视频| 国产一区欧美一区| 99久久精品99国产精品| 欧美日韩一区精品| 国产亚洲婷婷免费| 亚洲精品乱码久久久久久久久| 五月开心婷婷久久| 国产成人精品免费在线| 在线中文字幕一区| 日韩欧美高清一区| 亚洲电影你懂得| 国产精品1024| 欧美久久久久久久久中文字幕| 国产亚洲一区字幕| 一区二区在线观看av| 韩国三级中文字幕hd久久精品| 色狠狠av一区二区三区| 精品国产乱码久久久久久影片| 一区二区久久久久久| 国产精品一级黄| 日韩欧美中文字幕制服| 亚洲欧洲av在线| 国产精品系列在线播放| 欧美一级午夜免费电影| 亚洲精品一二三| 成人免费黄色大片| 国产亚洲综合色| 国内成人自拍视频| 精品精品国产高清一毛片一天堂| 亚洲精品高清视频在线观看| 波多野结衣亚洲一区| 亚洲精品在线观看网站| 麻豆成人在线观看| 欧美一级在线视频| 偷偷要91色婷婷| 欧美日本乱大交xxxxx| 亚洲v中文字幕| 欧美日韩一区在线| 偷拍日韩校园综合在线| 91精品国产综合久久久蜜臀图片| 一区二区三区美女| 欧美亚洲综合久久|