xref: /dragonfly/contrib/flex/src/options.c (revision 388e4ddaf1c230f115961bdb4bad6a8d3e017c93)
1 /* flex - tool to generate fast lexical analyzers */
2 
3 /*  Copyright (c) 1990 The Regents of the University of California. */
4 /*  All rights reserved. */
5 
6 /*  This code is derived from software contributed to Berkeley by */
7 /*  Vern Paxson. */
8 
9 /*  The United States Government has rights in this work pursuant */
10 /*  to contract no. DE-AC03-76SF00098 between the United States */
11 /*  Department of Energy and the University of California. */
12 
13 /*  This file is part of flex. */
14 
15 /*  Redistribution and use in source and binary forms, with or without */
16 /*  modification, are permitted provided that the following conditions */
17 /*  are met: */
18 
19 /*  1. Redistributions of source code must retain the above copyright */
20 /*     notice, this list of conditions and the following disclaimer. */
21 /*  2. Redistributions in binary form must reproduce the above copyright */
22 /*     notice, this list of conditions and the following disclaimer in the */
23 /*     documentation and/or other materials provided with the distribution. */
24 
25 /*  Neither the name of the University nor the names of its contributors */
26 /*  may be used to endorse or promote products derived from this software */
27 /*  without specific prior written permission. */
28 
29 /*  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
30 /*  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
31 /*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
32 /*  PURPOSE. */
33 
34 #include "options.h"
35 
36 /* Be sure to synchronize these options with those defined in "options.h",
37  * the giant switch() statement in "main.c", and the %option processing in
38  * "scan.l".
39  */
40 
41 
42 /* The command-line options, passed to scanopt_init() */
43 optspec_t flexopts[] = {
44 
45           {"-7", OPT_7BIT, 0}
46           ,
47           {"--7bit", OPT_7BIT, 0}
48           ,                             /* Generate 7-bit scanner. */
49           {"-8", OPT_8BIT, 0}
50           ,
51           {"--8bit", OPT_8BIT, 0}
52           ,                             /* Generate 8-bit scanner. */
53           {"--align", OPT_ALIGN, 0}
54           ,                             /* Trade off larger tables for better memory alignment. */
55           {"--noalign", OPT_NO_ALIGN, 0}
56           ,
57           {"--always-interactive", OPT_ALWAYS_INTERACTIVE, 0}
58           ,
59           {"--array", OPT_ARRAY, 0}
60           ,
61           {"-b", OPT_BACKUP, 0}
62           ,
63           {"--backup", OPT_BACKUP, 0}
64           ,                             /* Generate backing-up information to lex.backup. */
65           {"-B", OPT_BATCH, 0}
66           ,
67           {"--batch", OPT_BATCH, 0}
68           ,                             /* Generate batch scanner (opposite of -I). */
69           {"--bison-bridge", OPT_BISON_BRIDGE, 0}
70           ,                             /* Scanner to be called by a bison pure parser. */
71           {"--bison-locations", OPT_BISON_BRIDGE_LOCATIONS, 0}
72           ,                             /* Scanner to be called by a bison pure parser. */
73           {"-i", OPT_CASE_INSENSITIVE, 0}
74           ,
75           {"--case-insensitive", OPT_CASE_INSENSITIVE, 0}
76           ,                             /* Generate case-insensitive scanner. */
77 
78                     {"-C[aefFmr]", OPT_COMPRESSION,
79            "Specify degree of table compression (default is -Cem)"},
80           {"-+", OPT_CPLUSPLUS, 0}
81           ,
82           {"--c++", OPT_CPLUSPLUS, 0}
83           ,                             /* Generate C++ scanner class. */
84           {"-d", OPT_DEBUG, 0}
85           ,
86           {"--debug", OPT_DEBUG, 0}
87           ,                             /* Turn on debug mode in generated scanner. */
88           {"--nodebug", OPT_NO_DEBUG, 0}
89           ,
90           {"-s", OPT_NO_DEFAULT, 0}
91           ,
92           {"--nodefault", OPT_NO_DEFAULT, 0}
93           ,                             /* Suppress default rule to ECHO unmatched text. */
94           {"--default", OPT_DEFAULT, 0}
95           ,
96           {"-c", OPT_DONOTHING, 0}
97           ,                             /* For POSIX lex compatibility. */
98           {"-n", OPT_DONOTHING, 0}
99           ,                             /* For POSIX lex compatibility. */
100           {"--ecs", OPT_ECS, 0}
101           ,                             /* Construct equivalence classes. */
102           {"--noecs", OPT_NO_ECS, 0}
103           ,
104           {"-F", OPT_FAST, 0}
105           ,
106           {"--fast", OPT_FAST, 0}
107           ,                             /* Same as -CFr. */
108           {"-f", OPT_FULL, 0}
109           ,
110           {"--full", OPT_FULL, 0}
111           ,                             /* Same as -Cfr. */
112           {"--header-file[=FILE]", OPT_HEADER_FILE, 0}
113           ,
114           {"-?", OPT_HELP, 0}
115           ,
116           {"-h", OPT_HELP, 0}
117           ,
118           {"--help", OPT_HELP, 0}
119           ,                             /* Produce this help message. */
120           {"--hex", OPT_HEX, 0}
121           ,                             /* Use hexadecimals in debug/trace outputs */
122           {"-I", OPT_INTERACTIVE, 0}
123           ,
124           {"--interactive", OPT_INTERACTIVE, 0}
125           ,                             /* Generate interactive scanner (opposite of -B). */
126           {"-l", OPT_LEX_COMPAT, 0}
127           ,
128           {"--lex-compat", OPT_LEX_COMPAT, 0}
129           ,                             /* Maximal compatibility with original lex. */
130           {"-X", OPT_POSIX_COMPAT, 0}
131           ,
132           {"--posix-compat", OPT_POSIX_COMPAT, 0}
133           ,                             /* Maximal compatibility with POSIX lex. */
134         {"--preproc=NUM", OPT_PREPROC_LEVEL, 0}
135         ,
136           {"-L", OPT_NO_LINE, 0}
137           ,                             /* Suppress #line directives in scanner. */
138           {"--noline", OPT_NO_LINE, 0}
139           ,                             /* Suppress #line directives in scanner. */
140           {"--main", OPT_MAIN, 0}
141           ,                             /* use built-in main() function. */
142           {"--nomain", OPT_NO_MAIN, 0}
143           ,
144           {"--meta-ecs", OPT_META_ECS, 0}
145           ,                             /* Construct meta-equivalence classes. */
146           {"--nometa-ecs", OPT_NO_META_ECS, 0}
147           ,
148           {"--never-interactive", OPT_NEVER_INTERACTIVE, 0}
149           ,
150           {"-o FILE", OPT_OUTFILE, 0}
151           ,
152           {"--outfile=FILE", OPT_OUTFILE, 0}
153           ,                             /* Write to FILE (default is lex.yy.c) */
154           {"-p", OPT_PERF_REPORT, 0}
155           ,
156           {"--perf-report", OPT_PERF_REPORT, 0}
157           ,                             /* Generate performance report to stderr. */
158           {"--pointer", OPT_POINTER, 0}
159           ,
160           {"-P PREFIX", OPT_PREFIX, 0}
161           ,
162           {"--prefix=PREFIX", OPT_PREFIX, 0}
163           ,                             /* Use PREFIX (default is yy) */
164           {"-Dmacro", OPT_PREPROCDEFINE, 0}
165           ,                             /* Define a preprocessor symbol. */
166           {"--read", OPT_READ, 0}
167           ,                             /* Use read(2) instead of stdio. */
168           {"-R", OPT_REENTRANT, 0}
169           ,
170           {"--reentrant", OPT_REENTRANT, 0}
171           ,                             /* Generate a reentrant C scanner. */
172           {"--noreentrant", OPT_NO_REENTRANT, 0}
173           ,
174           {"--reject", OPT_REJECT, 0}
175           ,
176           {"--noreject", OPT_NO_REJECT, 0}
177           ,
178           {"-S FILE", OPT_SKEL, 0}
179           ,
180           {"--skel=FILE", OPT_SKEL, 0}
181           ,                             /* Use skeleton from FILE */
182           {"--stack", OPT_STACK, 0}
183           ,
184           {"--stdinit", OPT_STDINIT, 0}
185           ,
186           {"--nostdinit", OPT_NO_STDINIT, 0}
187           ,
188           {"-t", OPT_STDOUT, 0}
189           ,
190           {"--stdout", OPT_STDOUT, 0}
191           ,                             /* Write generated scanner to stdout. */
192           {"-T", OPT_TRACE, 0}
193           ,
194           {"--trace", OPT_TRACE, 0}
195           ,                             /* Flex should run in trace mode. */
196           {"--tables-file[=FILE]", OPT_TABLES_FILE, 0}
197           ,                             /* Save tables to FILE */
198         {"--tables-verify", OPT_TABLES_VERIFY, 0}
199         ,                       /* Tables integrity check */
200           {"--nounistd", OPT_NO_UNISTD_H, 0}
201           ,                             /* Do not include unistd.h */
202           {"-v", OPT_VERBOSE, 0}
203           ,
204           {"--verbose", OPT_VERBOSE, 0}
205           ,                             /* Write summary of scanner statistics to stdout. */
206           {"-V", OPT_VERSION, 0}
207           ,
208           {"--version", OPT_VERSION, 0}
209           ,                             /* Report flex version. */
210           {"--warn", OPT_WARN, 0}
211           ,
212           {"-w", OPT_NO_WARN, 0}
213           ,
214           {"--nowarn", OPT_NO_WARN, 0}
215           ,                             /* Suppress warning messages. */
216           {"--yyclass=NAME", OPT_YYCLASS, 0}
217           ,
218           {"--yylineno", OPT_YYLINENO, 0}
219           ,
220           {"--noyylineno", OPT_NO_YYLINENO, 0}
221           ,
222 
223           {"--yymore", OPT_YYMORE, 0}
224           ,
225           {"--noyymore", OPT_NO_YYMORE, 0}
226           ,
227           {"--noyywrap", OPT_NO_YYWRAP, 0}
228           ,
229           {"--yywrap", OPT_YYWRAP, 0}
230           ,
231 
232           {"--nounput", OPT_NO_UNPUT, 0}
233           ,
234           {"--noyy_push_state", OPT_NO_YY_PUSH_STATE, 0}
235           ,
236           {"--noyy_pop_state", OPT_NO_YY_POP_STATE, 0}
237           ,
238           {"--noyy_top_state", OPT_NO_YY_TOP_STATE, 0}
239           ,
240           {"--noyy_scan_buffer", OPT_NO_YY_SCAN_BUFFER, 0}
241           ,
242           {"--noyy_scan_bytes", OPT_NO_YY_SCAN_BYTES, 0}
243           ,
244           {"--noyy_scan_string", OPT_NO_YY_SCAN_STRING, 0}
245           ,
246           {"--noyyget_extra", OPT_NO_YYGET_EXTRA, 0}
247           ,
248           {"--noyyset_extra", OPT_NO_YYSET_EXTRA, 0}
249           ,
250           {"--noyyget_leng", OPT_NO_YYGET_LENG, 0}
251           ,
252           {"--noyyget_text", OPT_NO_YYGET_TEXT, 0}
253           ,
254           {"--noyyget_lineno", OPT_NO_YYGET_LINENO, 0}
255           ,
256           {"--noyyset_lineno", OPT_NO_YYSET_LINENO, 0}
257           ,
258           {"--noyyget_in", OPT_NO_YYGET_IN, 0}
259           ,
260           {"--noyyset_in", OPT_NO_YYSET_IN, 0}
261           ,
262           {"--noyyget_out", OPT_NO_YYGET_OUT, 0}
263           ,
264           {"--noyyset_out", OPT_NO_YYSET_OUT, 0}
265           ,
266           {"--noyyget_lval", OPT_NO_YYGET_LVAL, 0}
267           ,
268           {"--noyyset_lval", OPT_NO_YYSET_LVAL, 0}
269           ,
270           {"--noyyget_lloc", OPT_NO_YYGET_LLOC, 0}
271           ,
272           {"--noyyset_lloc", OPT_NO_YYSET_LLOC, 0}
273           ,
274         {"--unsafe-no-m4-sect3-escape", OPT_NO_SECT3_ESCAPE, 0}
275         ,
276           {0, 0, 0}           /* required final NULL entry. */
277 };
278 
279 /* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */
280