xref: /netbsd-src/external/bsd/flex/dist/doc/flex.info (revision 463ae347b383ca644b1399e7e5228310d0bdf969)
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