156bd8546SchristosThis is flex.info, produced by makeinfo version 6.1 from flex.texi. 23c3a7b76Schristos 33c3a7b76SchristosThe flex manual is placed under the same licensing conditions as the 43c3a7b76Schristosrest of flex: 53c3a7b76Schristos 630da1778Schristos Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2012 The Flex 730da1778SchristosProject. 83c3a7b76Schristos 93c3a7b76Schristos Copyright (C) 1990, 1997 The Regents of the University of California. 103c3a7b76SchristosAll rights reserved. 113c3a7b76Schristos 123c3a7b76Schristos This code is derived from software contributed to Berkeley by Vern 133c3a7b76SchristosPaxson. 143c3a7b76Schristos 153c3a7b76Schristos The United States Government has rights in this work pursuant to 163c3a7b76Schristoscontract no. DE-AC03-76SF00098 between the United States Department of 173c3a7b76SchristosEnergy and the University of California. 183c3a7b76Schristos 193c3a7b76Schristos Redistribution and use in source and binary forms, with or without 203c3a7b76Schristosmodification, are permitted provided that the following conditions are 213c3a7b76Schristosmet: 223c3a7b76Schristos 233c3a7b76Schristos 1. Redistributions of source code must retain the above copyright 243c3a7b76Schristos notice, this list of conditions and the following disclaimer. 253c3a7b76Schristos 263c3a7b76Schristos 2. Redistributions in binary form must reproduce the above copyright 273c3a7b76Schristos notice, this list of conditions and the following disclaimer in the 283c3a7b76Schristos documentation and/or other materials provided with the 293c3a7b76Schristos distribution. 303c3a7b76Schristos 313c3a7b76Schristos Neither the name of the University nor the names of its contributors 323c3a7b76Schristosmay be used to endorse or promote products derived from this software 333c3a7b76Schristoswithout specific prior written permission. 343c3a7b76Schristos 353c3a7b76Schristos THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED 363c3a7b76SchristosWARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 373c3a7b76SchristosMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 3830da1778SchristosINFO-DIR-SECTION Programming 3930da1778SchristosSTART-INFO-DIR-ENTRY 4030da1778Schristos* flex: (flex). Fast lexical analyzer generator (lex replacement). 4130da1778SchristosEND-INFO-DIR-ENTRY 423c3a7b76Schristos 433c3a7b76Schristos 443c3a7b76SchristosIndirect: 4530da1778Schristosflex.info-1: 1622 46*463ae347Schristosflex.info-2: 318745 473c3a7b76Schristos 483c3a7b76SchristosTag Table: 493c3a7b76Schristos(Indirect) 5030da1778SchristosNode: Top1622 51*463ae347SchristosNode: Copyright9414 52*463ae347SchristosNode: Reporting Bugs10933 53*463ae347SchristosNode: Introduction11189 54*463ae347SchristosNode: Simple Examples12018 55*463ae347SchristosNode: Format15304 56*463ae347SchristosNode: Definitions Section15759 57*463ae347SchristosRef: Definitions Section-Footnote-118017 58*463ae347SchristosNode: Rules Section18085 59*463ae347SchristosNode: User Code Section19243 60*463ae347SchristosNode: Comments in the Input19681 61*463ae347SchristosNode: Patterns21051 62*463ae347SchristosRef: case and character ranges27883 63*463ae347SchristosNode: Matching31886 64*463ae347SchristosNode: Actions35171 65*463ae347SchristosNode: Generated Scanner44133 66*463ae347SchristosNode: Start Conditions49136 67*463ae347SchristosNode: Multiple Input Buffers59678 68*463ae347SchristosRef: Scanning Strings66221 69*463ae347SchristosNode: EOF67850 70*463ae347SchristosNode: Misc Macros69436 71*463ae347SchristosNode: User Values72290 72*463ae347SchristosNode: Yacc74615 73*463ae347SchristosNode: Scanner Options75510 74*463ae347SchristosNode: Options for Specifying Filenames78299 75*463ae347SchristosRef: option-header78525 76*463ae347SchristosRef: option-outfile79239 77*463ae347SchristosRef: option-stdout79564 78*463ae347SchristosNode: Options Affecting Scanner Behavior80547 79*463ae347SchristosRef: option-case-insensitive80788 80*463ae347SchristosRef: option-lex-compat81221 81*463ae347SchristosRef: option-batch81753 82*463ae347SchristosRef: option-interactive82272 83*463ae347SchristosRef: option-7bit83626 84*463ae347SchristosRef: option-8bit84930 85*463ae347SchristosRef: option-default85342 86*463ae347SchristosRef: option-always-interactive85406 87*463ae347SchristosRef: option-posix86010 88*463ae347SchristosRef: option-stack87157 89*463ae347SchristosRef: option-stdinit87265 90*463ae347SchristosRef: option-yylineno87744 91*463ae347SchristosRef: option-yywrap88187 92*463ae347SchristosNode: Code-Level And API Options88454 93*463ae347SchristosRef: option-ansi-definitions88681 94*463ae347SchristosRef: option-ansi-prototypes88756 95*463ae347SchristosRef: option-bison-bridge88829 96*463ae347SchristosRef: option-bison-locations89170 97*463ae347SchristosRef: option-noline89430 98*463ae347SchristosRef: option-reentrant89944 99*463ae347SchristosRef: option-c++90556 100*463ae347SchristosRef: option-array90682 101*463ae347SchristosRef: option-pointer90780 102*463ae347SchristosRef: option-prefix90907 103*463ae347SchristosRef: option-main92435 104*463ae347SchristosRef: option-nounistd92619 105*463ae347SchristosRef: option-yyclass93130 106*463ae347SchristosNode: Options for Scanner Speed and Size93614 107*463ae347SchristosRef: option-align94164 108*463ae347SchristosRef: option-ecs94666 109*463ae347SchristosRef: option-meta-ecs95705 110*463ae347SchristosRef: option-read96193 111*463ae347SchristosRef: option-full98076 112*463ae347SchristosRef: option-fast98271 113*463ae347SchristosNode: Debugging Options99195 114*463ae347SchristosRef: option-backup99382 115*463ae347SchristosRef: option-debug99927 116*463ae347SchristosRef: option-perf-report100649 117*463ae347SchristosRef: option-nodefault101275 118*463ae347SchristosRef: option-trace101593 119*463ae347SchristosRef: option-nowarn101884 120*463ae347SchristosRef: option-verbose101952 121*463ae347SchristosRef: option-warn102381 122*463ae347SchristosNode: Miscellaneous Options102600 123*463ae347SchristosNode: Performance103056 124*463ae347SchristosNode: Cxx113303 125*463ae347SchristosNode: Reentrant121395 126*463ae347SchristosNode: Reentrant Uses122129 127*463ae347SchristosNode: Reentrant Overview123691 128*463ae347SchristosNode: Reentrant Example124491 129*463ae347SchristosNode: Reentrant Detail125264 130*463ae347SchristosNode: Specify Reentrant125768 131*463ae347SchristosNode: Extra Reentrant Argument126418 132*463ae347SchristosNode: Global Replacement127670 133*463ae347SchristosNode: Init and Destroy Functions128905 134*463ae347SchristosNode: Accessor Methods131426 135*463ae347SchristosNode: Extra Data132773 136*463ae347SchristosNode: About yyscan_t135040 137*463ae347SchristosNode: Reentrant Functions135437 138*463ae347SchristosRef: bison-functions136921 139*463ae347SchristosNode: Lex and Posix137660 140*463ae347SchristosNode: Memory Management145007 141*463ae347SchristosRef: memory-management145153 142*463ae347SchristosNode: The Default Memory Management145387 143*463ae347SchristosRef: The Default Memory Management-Footnote-1149207 144*463ae347SchristosNode: Overriding The Default Memory Management149360 145*463ae347SchristosRef: Overriding The Default Memory Management-Footnote-1151774 146*463ae347SchristosNode: A Note About yytext And Memory151938 147*463ae347SchristosNode: Serialized Tables153178 148*463ae347SchristosRef: serialization153322 149*463ae347SchristosNode: Creating Serialized Tables154102 150*463ae347SchristosNode: Loading and Unloading Serialized Tables155717 151*463ae347SchristosNode: Tables File Format157490 152*463ae347SchristosNode: Diagnostics164515 153*463ae347SchristosNode: Limitations167924 154*463ae347SchristosNode: Bibliography169872 155*463ae347SchristosNode: FAQ170542 156*463ae347SchristosNode: When was flex born?175705 157*463ae347SchristosNode: How do I expand backslash-escape sequences in C-style quoted strings?176082 158*463ae347SchristosNode: Why do flex scanners call fileno if it is not ANSI compatible?177385 159*463ae347SchristosNode: Does flex support recursive pattern definitions?178182 160*463ae347SchristosNode: How do I skip huge chunks of input (tens of megabytes) while using flex?179029 161*463ae347SchristosNode: Flex is not matching my patterns in the same order that I defined them.179496 162*463ae347SchristosNode: My actions are executing out of order or sometimes not at all.181242 163*463ae347SchristosNode: How can I have multiple input sources feed into the same scanner at the same time?182015 164*463ae347SchristosNode: Can I build nested parsers that work with the same input file?184000 165*463ae347SchristosNode: How can I match text only at the end of a file?185007 166*463ae347SchristosNode: How can I make REJECT cascade across start condition boundaries?185811 167*463ae347SchristosNode: Why cant I use fast or full tables with interactive mode?186825 168*463ae347SchristosNode: How much faster is -F or -f than -C?188082 169*463ae347SchristosNode: If I have a simple grammar cant I just parse it with flex?188394 170*463ae347SchristosNode: Why doesn't yyrestart() set the start state back to INITIAL?188876 171*463ae347SchristosNode: How can I match C-style comments?189503 172*463ae347SchristosNode: The period isn't working the way I expected.190313 173*463ae347SchristosNode: Can I get the flex manual in another format?191558 174*463ae347SchristosNode: Does there exist a "faster" NDFA->DFA algorithm?192048 175*463ae347SchristosNode: How does flex compile the DFA so quickly?192558 176*463ae347SchristosNode: How can I use more than 8192 rules?193524 177*463ae347SchristosNode: How do I abandon a file in the middle of a scan and switch to a new file?194934 178*463ae347SchristosNode: How do I execute code only during initialization (only before the first scan)?195488 179*463ae347SchristosNode: How do I execute code at termination?196265 180*463ae347SchristosNode: Where else can I find help?196591 181*463ae347SchristosNode: Can I include comments in the "rules" section of the file?196965 182*463ae347SchristosNode: I get an error about undefined yywrap().197345 183*463ae347SchristosNode: How can I change the matching pattern at run time?197821 184*463ae347SchristosNode: How can I expand macros in the input?198183 185*463ae347SchristosNode: How can I build a two-pass scanner?199215 186*463ae347SchristosNode: How do I match any string not matched in the preceding rules?200133 187*463ae347SchristosNode: I am trying to port code from AT&T lex that uses yysptr and yysbuf.201042 188*463ae347SchristosNode: Is there a way to make flex treat NULL like a regular character?201837 189*463ae347SchristosNode: Whenever flex can not match the input it says "flex scanner jammed".202357 190*463ae347SchristosNode: Why doesn't flex have non-greedy operators like perl does?203000 191*463ae347SchristosNode: Memory leak - 16386 bytes allocated by malloc.204353 192*463ae347SchristosRef: faq-memory-leak204651 193*463ae347SchristosNode: How do I track the byte offset for lseek()?205622 194*463ae347SchristosNode: How do I use my own I/O classes in a C++ scanner?207131 195*463ae347SchristosNode: How do I skip as many chars as possible?207974 196*463ae347SchristosNode: deleteme00209049 197*463ae347SchristosNode: Are certain equivalent patterns faster than others?209489 198*463ae347SchristosNode: Is backing up a big deal?212907 199*463ae347SchristosNode: Can I fake multi-byte character support?214813 200*463ae347SchristosNode: deleteme01216254 201*463ae347SchristosNode: Can you discuss some flex internals?217363 202*463ae347SchristosNode: unput() messes up yy_at_bol219607 203*463ae347SchristosNode: The | operator is not doing what I want220709 204*463ae347SchristosNode: Why can't flex understand this variable trailing context pattern?222255 205*463ae347SchristosNode: The ^ operator isn't working223504 206*463ae347SchristosNode: Trailing context is getting confused with trailing optional patterns224739 207*463ae347SchristosNode: Is flex GNU or not?225982 208*463ae347SchristosNode: ERASEME53227655 209*463ae347SchristosNode: I need to scan if-then-else blocks and while loops228425 210*463ae347SchristosNode: ERASEME55229624 211*463ae347SchristosNode: ERASEME56230722 212*463ae347SchristosNode: ERASEME57232080 213*463ae347SchristosNode: Is there a repository for flex scanners?233078 214*463ae347SchristosNode: How can I conditionally compile or preprocess my flex input file?233394 215*463ae347SchristosNode: Where can I find grammars for lex and yacc?233867 216*463ae347SchristosNode: I get an end-of-buffer message for each character scanned.234214 217*463ae347SchristosNode: unnamed-faq-62234809 218*463ae347SchristosNode: unnamed-faq-63235827 219*463ae347SchristosNode: unnamed-faq-64237124 220*463ae347SchristosNode: unnamed-faq-65238090 221*463ae347SchristosNode: unnamed-faq-66238876 222*463ae347SchristosNode: unnamed-faq-67239991 223*463ae347SchristosNode: unnamed-faq-68240978 224*463ae347SchristosNode: unnamed-faq-69242120 225*463ae347SchristosNode: unnamed-faq-70242833 226*463ae347SchristosNode: unnamed-faq-71243594 227*463ae347SchristosNode: unnamed-faq-72244803 228*463ae347SchristosNode: unnamed-faq-73245846 229*463ae347SchristosNode: unnamed-faq-74246770 230*463ae347SchristosNode: unnamed-faq-75247715 231*463ae347SchristosNode: unnamed-faq-76248847 232*463ae347SchristosNode: unnamed-faq-77249553 233*463ae347SchristosNode: unnamed-faq-78250446 234*463ae347SchristosNode: unnamed-faq-79251444 235*463ae347SchristosNode: unnamed-faq-80253144 236*463ae347SchristosNode: unnamed-faq-81254462 237*463ae347SchristosNode: unnamed-faq-82257262 238*463ae347SchristosNode: unnamed-faq-83258219 239*463ae347SchristosNode: unnamed-faq-84259999 240*463ae347SchristosNode: unnamed-faq-85261102 241*463ae347SchristosNode: unnamed-faq-86262109 242*463ae347SchristosNode: unnamed-faq-87263047 243*463ae347SchristosNode: unnamed-faq-88263693 244*463ae347SchristosNode: unnamed-faq-90264524 245*463ae347SchristosNode: unnamed-faq-91265787 246*463ae347SchristosNode: unnamed-faq-92268215 247*463ae347SchristosNode: unnamed-faq-93268714 248*463ae347SchristosNode: unnamed-faq-94269641 249*463ae347SchristosNode: unnamed-faq-95271053 250*463ae347SchristosNode: unnamed-faq-96272571 251*463ae347SchristosNode: unnamed-faq-97273330 252*463ae347SchristosNode: unnamed-faq-98273997 253*463ae347SchristosNode: unnamed-faq-99274662 254*463ae347SchristosNode: unnamed-faq-100275591 255*463ae347SchristosNode: unnamed-faq-101276301 256*463ae347SchristosNode: What is the difference between YYLEX_PARAM and YY_DECL?277114 257*463ae347SchristosNode: Why do I get "conflicting types for yylex" error?277638 258*463ae347SchristosNode: How do I access the values set in a Flex action from within a Bison action?278168 259*463ae347SchristosNode: Appendices278597 260*463ae347SchristosNode: Makefiles and Flex278862 261*463ae347SchristosRef: Makefiles and Flex-Footnote-1282064 262*463ae347SchristosRef: Makefiles and Flex-Footnote-2282181 263*463ae347SchristosRef: Makefiles and Flex-Footnote-3282368 264*463ae347SchristosNode: Bison Bridge282419 265*463ae347SchristosRef: Bison Bridge-Footnote-1285086 266*463ae347SchristosNode: M4 Dependency285278 267*463ae347SchristosRef: M4 Dependency-Footnote-1286692 268*463ae347SchristosNode: Common Patterns286828 269*463ae347SchristosNode: Numbers287151 270*463ae347SchristosNode: Identifiers288127 271*463ae347SchristosNode: Quoted Constructs288954 272*463ae347SchristosNode: Addresses290008 273*463ae347SchristosNode: Indices291320 274*463ae347SchristosNode: Concept Index291612 275*463ae347SchristosNode: Index of Functions and Macros318745 276*463ae347SchristosNode: Index of Variables323714 277*463ae347SchristosNode: Index of Data Types325380 278*463ae347SchristosNode: Index of Hooks326268 279*463ae347SchristosNode: Index of Scanner Options326836 2803c3a7b76Schristos 2813c3a7b76SchristosEnd Tag Table 282