]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/flex/src/options.c
MFV: r362286
[FreeBSD/FreeBSD.git] / contrib / flex / src / options.c
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 \f
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: */