This manual describes `flex', a tool for generating programs that
perform pattern-matching on text. The manual includes both tutorial and
This edition of `The flex Manual' documents `flex' version 2.5.35.
It was last updated on 10 September 2007.
This manual was written by Vern Paxson, Will Estes and John Millaway.
* Reporting Bugs
* Simple Examples
* Generated Scanner
* Start Conditions
* Multiple Input Buffers
* Misc Macros
* User Values
* Scanner Options
* Lex and Posix
* Memory Management
* Serialized Tables
--- The Detailed Node Listing ---
Format of the Input File
* Definitions Section
* Rules Section
* User Code Section
* Comments in the Input
* Options for Specifying Filenames
* Options Affecting Scanner Behavior
* Code-Level And API Options
* Options for Scanner Speed and Size
* Debugging Options
* Miscellaneous Options
Reentrant C Scanners
* Reentrant Uses
* Reentrant Overview
* Reentrant Example
* Reentrant Detail
* Reentrant Functions
The Reentrant API in Detail
* Specify Reentrant
* Extra Reentrant Argument
* Global Replacement
* Init and Destroy Functions
* Accessor Methods
* Extra Data
* About yyscan_t
* The Default Memory Management
* Overriding The Default Memory Management
* A Note About yytext And Memory
* Creating Serialized Tables
* Loading and Unloading Serialized Tables
* Tables File Format
* When was flex born?
* How do I expand backslash-escape sequences in C-style quoted strings?
* Why do flex scanners call fileno if it is not ANSI compatible?
* Does flex support recursive pattern definitions?
* How do I skip huge chunks of input (tens of megabytes) while using flex?
* Flex is not matching my patterns in the same order that I defined them.
* My actions are executing out of order or sometimes not at all.
* How can I have multiple input sources feed into the same scanner at the same time?
* Can I build nested parsers that work with the same input file?
* How can I match text only at the end of a file?
* How can I make REJECT cascade across start condition boundaries?
* Why cant I use fast or full tables with interactive mode?
* How much faster is -F or -f than -C?
* If I have a simple grammar cant I just parse it with flex?
* Why doesn't yyrestart() set the start state back to INITIAL?
* How can I match C-style comments?
* The period isn't working the way I expected.
* Can I get the flex manual in another format?
* Does there exist a "faster" NDFA->DFA algorithm?
* How does flex compile the DFA so quickly?
* How can I use more than 8192 rules?
* How do I abandon a file in the middle of a scan and switch to a new file?
* How do I execute code only during initialization (only before the first scan)?
* How do I execute code at termination?
* Where else can I find help?
* Can I include comments in the "rules" section of the file?
* I get an error about undefined yywrap().
* How can I change the matching pattern at run time?
* How can I expand macros in the input?
* How can I build a two-pass scanner?
* How do I match any string not matched in the preceding rules?
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.
* Is there a way to make flex treat NULL like a regular character?
* Whenever flex can not match the input it says "flex scanner jammed".
* Why doesn't flex have non-greedy operators like perl does?
* Memory leak - 16386 bytes allocated by malloc.
* How do I track the byte offset for lseek()?
* How do I use my own I/O classes in a C++ scanner?
* How do I skip as many chars as possible?
* Are certain equivalent patterns faster than others?
* Is backing up a big deal?
* Can I fake multi-byte character support?
* Can you discuss some flex internals?
* unput() messes up yy_at_bol
* The | operator is not doing what I want
* Why can't flex understand this variable trailing context pattern?
* The ^ operator isn't working
* Trailing context is getting confused with trailing optional patterns
* Is flex GNU or not?
* I need to scan if-then-else blocks and while loops
* Is there a repository for flex scanners?
* How can I conditionally compile or preprocess my flex input file?
* Where can I find grammars for lex and yacc?
* I get an end-of-buffer message for each character scanned.
* What is the difference between YYLEX_PARAM and YY_DECL?
* Why do I get "conflicting types for yylex" error?
* How do I access the values set in a Flex action from within a Bison action?
* Makefiles and Flex
* Bison Bridge
* M4 Dependency
* Common Patterns
* Concept Index
* Index of Functions and Macros
* Index of Variables
* Index of Data Types
* Index of Hooks
* Index of Scanner Options
automatically generated byinfo2html