1 /* flex - tool to generate fast lexical analyzers */
3 /* Copyright (c) 1990 The Regents of the University of California. */
4 /* All rights reserved. */
6 /* This code is derived from software contributed to Berkeley by */
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. */
13 /* This file is part of flex. */
15 /* Redistribution and use in source and binary forms, with or without */
16 /* modification, are permitted provided that the following conditions */
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. */
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. */
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 */
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
42 /* The command-line options, passed to scanopt_init() */
43 optspec_t flexopts
[] = {
47 {"--7bit", OPT_7BIT
, 0}
48 , /* Generate 7-bit scanner. */
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}
57 {"--always-interactive", OPT_ALWAYS_INTERACTIVE
, 0}
59 {"--array", OPT_ARRAY
, 0}
63 {"--backup", OPT_BACKUP
, 0}
64 , /* Generate backing-up information to lex.backup. */
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}
75 {"--case-insensitive", OPT_CASE_INSENSITIVE
, 0}
76 , /* Generate case-insensitive scanner. */
78 {"-C[aefFmr]", OPT_COMPRESSION
,
79 "Specify degree of table compression (default is -Cem)"},
80 {"-+", OPT_CPLUSPLUS
, 0}
82 {"--c++", OPT_CPLUSPLUS
, 0}
83 , /* Generate C++ scanner class. */
86 {"--debug", OPT_DEBUG
, 0}
87 , /* Turn on debug mode in generated scanner. */
88 {"--nodebug", OPT_NO_DEBUG
, 0}
90 {"-s", OPT_NO_DEFAULT
, 0}
92 {"--nodefault", OPT_NO_DEFAULT
, 0}
93 , /* Suppress default rule to ECHO unmatched text. */
94 {"--default", OPT_DEFAULT
, 0}
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}
106 {"--fast", OPT_FAST
, 0}
107 , /* Same as -CFr. */
110 {"--full", OPT_FULL
, 0}
111 , /* Same as -Cfr. */
112 {"--header-file[=FILE]", OPT_HEADER_FILE
, 0}
118 {"--help", OPT_HELP
, 0}
119 , /* Produce this help message. */
120 {"-I", OPT_INTERACTIVE
, 0}
122 {"--interactive", OPT_INTERACTIVE
, 0}
123 , /* Generate interactive scanner (opposite of -B). */
124 {"-l", OPT_LEX_COMPAT
, 0}
126 {"--lex-compat", OPT_LEX_COMPAT
, 0}
127 , /* Maximal compatibility with original lex. */
128 {"-X", OPT_POSIX_COMPAT
, 0}
130 {"--posix-compat", OPT_POSIX_COMPAT
, 0}
131 , /* Maximal compatibility with POSIX lex. */
132 {"--preproc=NUM", OPT_PREPROC_LEVEL
, 0}
134 {"-L", OPT_NO_LINE
, 0}
135 , /* Suppress #line directives in scanner. */
136 {"--noline", OPT_NO_LINE
, 0}
137 , /* Suppress #line directives in scanner. */
138 {"--main", OPT_MAIN
, 0}
139 , /* use built-in main() function. */
140 {"--nomain", OPT_NO_MAIN
, 0}
142 {"--meta-ecs", OPT_META_ECS
, 0}
143 , /* Construct meta-equivalence classes. */
144 {"--nometa-ecs", OPT_NO_META_ECS
, 0}
146 {"--never-interactive", OPT_NEVER_INTERACTIVE
, 0}
148 {"-o FILE", OPT_OUTFILE
, 0}
150 {"--outfile=FILE", OPT_OUTFILE
, 0}
151 , /* Write to FILE (default is lex.yy.c) */
152 {"-p", OPT_PERF_REPORT
, 0}
154 {"--perf-report", OPT_PERF_REPORT
, 0}
155 , /* Generate performance report to stderr. */
156 {"--pointer", OPT_POINTER
, 0}
158 {"-P PREFIX", OPT_PREFIX
, 0}
160 {"--prefix=PREFIX", OPT_PREFIX
, 0}
161 , /* Use PREFIX (default is yy) */
162 {"-Dmacro", OPT_PREPROCDEFINE
, 0}
163 , /* Define a preprocessor symbol. */
164 {"--read", OPT_READ
, 0}
165 , /* Use read(2) instead of stdio. */
166 {"-R", OPT_REENTRANT
, 0}
168 {"--reentrant", OPT_REENTRANT
, 0}
169 , /* Generate a reentrant C scanner. */
170 {"--noreentrant", OPT_NO_REENTRANT
, 0}
172 {"--reject", OPT_REJECT
, 0}
174 {"--noreject", OPT_NO_REJECT
, 0}
176 {"-S FILE", OPT_SKEL
, 0}
178 {"--skel=FILE", OPT_SKEL
, 0}
179 , /* Use skeleton from FILE */
180 {"--stack", OPT_STACK
, 0}
182 {"--stdinit", OPT_STDINIT
, 0}
184 {"--nostdinit", OPT_NO_STDINIT
, 0}
186 {"-t", OPT_STDOUT
, 0}
188 {"--stdout", OPT_STDOUT
, 0}
189 , /* Write generated scanner to stdout. */
192 {"--trace", OPT_TRACE
, 0}
193 , /* Flex should run in trace mode. */
194 {"--tables-file[=FILE]", OPT_TABLES_FILE
, 0}
195 , /* Save tables to FILE */
196 {"--tables-verify", OPT_TABLES_VERIFY
, 0}
197 , /* Tables integrity check */
198 {"--nounistd", OPT_NO_UNISTD_H
, 0}
199 , /* Do not include unistd.h */
200 {"-v", OPT_VERBOSE
, 0}
202 {"--verbose", OPT_VERBOSE
, 0}
203 , /* Write summary of scanner statistics to stdout. */
204 {"-V", OPT_VERSION
, 0}
206 {"--version", OPT_VERSION
, 0}
207 , /* Report flex version. */
208 {"--warn", OPT_WARN
, 0}
210 {"-w", OPT_NO_WARN
, 0}
212 {"--nowarn", OPT_NO_WARN
, 0}
213 , /* Suppress warning messages. */
214 {"--noansi-definitions", OPT_NO_ANSI_FUNC_DEFS
, 0}
216 {"--noansi-prototypes", OPT_NO_ANSI_FUNC_PROTOS
, 0}
218 {"--yyclass=NAME", OPT_YYCLASS
, 0}
220 {"--yylineno", OPT_YYLINENO
, 0}
222 {"--noyylineno", OPT_NO_YYLINENO
, 0}
225 {"--yymore", OPT_YYMORE
, 0}
227 {"--noyymore", OPT_NO_YYMORE
, 0}
229 {"--noyywrap", OPT_NO_YYWRAP
, 0}
231 {"--yywrap", OPT_YYWRAP
, 0}
234 {"--nounput", OPT_NO_UNPUT
, 0}
236 {"--noyy_push_state", OPT_NO_YY_PUSH_STATE
, 0}
238 {"--noyy_pop_state", OPT_NO_YY_POP_STATE
, 0}
240 {"--noyy_top_state", OPT_NO_YY_TOP_STATE
, 0}
242 {"--noyy_scan_buffer", OPT_NO_YY_SCAN_BUFFER
, 0}
244 {"--noyy_scan_bytes", OPT_NO_YY_SCAN_BYTES
, 0}
246 {"--noyy_scan_string", OPT_NO_YY_SCAN_STRING
, 0}
248 {"--noyyget_extra", OPT_NO_YYGET_EXTRA
, 0}
250 {"--noyyset_extra", OPT_NO_YYSET_EXTRA
, 0}
252 {"--noyyget_leng", OPT_NO_YYGET_LENG
, 0}
254 {"--noyyget_text", OPT_NO_YYGET_TEXT
, 0}
256 {"--noyyget_lineno", OPT_NO_YYGET_LINENO
, 0}
258 {"--noyyset_lineno", OPT_NO_YYSET_LINENO
, 0}
260 {"--noyyget_in", OPT_NO_YYGET_IN
, 0}
262 {"--noyyset_in", OPT_NO_YYSET_IN
, 0}
264 {"--noyyget_out", OPT_NO_YYGET_OUT
, 0}
266 {"--noyyset_out", OPT_NO_YYSET_OUT
, 0}
268 {"--noyyget_lval", OPT_NO_YYGET_LVAL
, 0}
270 {"--noyyset_lval", OPT_NO_YYSET_LVAL
, 0}
272 {"--noyyget_lloc", OPT_NO_YYGET_LLOC
, 0}
274 {"--noyyset_lloc", OPT_NO_YYSET_LLOC
, 0}
277 {0, 0, 0} /* required final NULL entry. */
280 /* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */