1 /* $OpenBSD: options.c,v 1.2 2015/11/19 22:16:43 tedu Exp $ */ 2 3 /* flex - tool to generate fast lexical analyzers */ 4 5 /* Copyright (c) 1990 The Regents of the University of California. */ 6 /* All rights reserved. */ 7 8 /* This code is derived from software contributed to Berkeley by */ 9 /* Vern Paxson. */ 10 11 /* The United States Government has rights in this work pursuant */ 12 /* to contract no. DE-AC03-76SF00098 between the United States */ 13 /* Department of Energy and the University of California. */ 14 15 /* This file is part of flex. */ 16 17 /* Redistribution and use in source and binary forms, with or without */ 18 /* modification, are permitted provided that the following conditions */ 19 /* are met: */ 20 21 /* 1. Redistributions of source code must retain the above copyright */ 22 /* notice, this list of conditions and the following disclaimer. */ 23 /* 2. Redistributions in binary form must reproduce the above copyright */ 24 /* notice, this list of conditions and the following disclaimer in the */ 25 /* documentation and/or other materials provided with the distribution. */ 26 27 /* Neither the name of the University nor the names of its contributors */ 28 /* may be used to endorse or promote products derived from this software */ 29 /* without specific prior written permission. */ 30 31 /* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ 32 /* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ 33 /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ 34 /* PURPOSE. */ 35 36 #include "options.h" 37 38 /* Be sure to synchronize these options with those defined in "options.h", 39 * the giant switch() statement in "main.c", and the %option processing in 40 * "scan.l". 41 */ 42 43 44 /* The command-line options, passed to scanopt_init() */ 45 optspec_t flexopts[] = { 46 47 {"-7", OPT_7BIT, 0} 48 , 49 {"--7bit", OPT_7BIT, 0} 50 , /* Generate 7-bit scanner. */ 51 {"-8", OPT_8BIT, 0} 52 , 53 {"--8bit", OPT_8BIT, 0} 54 , /* Generate 8-bit scanner. */ 55 {"--align", OPT_ALIGN, 0} 56 , /* Trade off larger tables for better memory alignment. */ 57 {"--noalign", OPT_NO_ALIGN, 0} 58 , 59 {"--always-interactive", OPT_ALWAYS_INTERACTIVE, 0} 60 , 61 {"--array", OPT_ARRAY, 0} 62 , 63 {"-b", OPT_BACKUP, 0} 64 , 65 {"--backup", OPT_BACKUP, 0} 66 , /* Generate backing-up information to lex.backup. */ 67 {"-B", OPT_BATCH, 0} 68 , 69 {"--batch", OPT_BATCH, 0} 70 , /* Generate batch scanner (opposite of -I). */ 71 {"--bison-bridge", OPT_BISON_BRIDGE, 0} 72 , /* Scanner to be called by a bison pure parser. */ 73 {"--bison-locations", OPT_BISON_BRIDGE_LOCATIONS, 0} 74 , /* Scanner to be called by a bison pure parser. */ 75 {"-i", OPT_CASE_INSENSITIVE, 0} 76 , 77 {"--case-insensitive", OPT_CASE_INSENSITIVE, 0} 78 , /* Generate case-insensitive scanner. */ 79 80 {"-C[aefFmr]", OPT_COMPRESSION, 81 "Specify degree of table compression (default is -Cem)"}, 82 {"-+", OPT_CPLUSPLUS, 0} 83 , 84 {"--c++", OPT_CPLUSPLUS, 0} 85 , /* Generate C++ scanner class. */ 86 {"-d", OPT_DEBUG, 0} 87 , 88 {"--debug", OPT_DEBUG, 0} 89 , /* Turn on debug mode in generated scanner. */ 90 {"--nodebug", OPT_NO_DEBUG, 0} 91 , 92 {"-s", OPT_NO_DEFAULT, 0} 93 , 94 {"--nodefault", OPT_NO_DEFAULT, 0} 95 , /* Suppress default rule to ECHO unmatched text. */ 96 {"--default", OPT_DEFAULT, 0} 97 , 98 {"-c", OPT_DONOTHING, 0} 99 , /* For POSIX lex compatibility. */ 100 {"-n", OPT_DONOTHING, 0} 101 , /* For POSIX lex compatibility. */ 102 {"--ecs", OPT_ECS, 0} 103 , /* Construct equivalence classes. */ 104 {"--noecs", OPT_NO_ECS, 0} 105 , 106 {"-F", OPT_FAST, 0} 107 , 108 {"--fast", OPT_FAST, 0} 109 , /* Same as -CFr. */ 110 {"-f", OPT_FULL, 0} 111 , 112 {"--full", OPT_FULL, 0} 113 , /* Same as -Cfr. */ 114 {"--header-file[=FILE]", OPT_HEADER_FILE, 0} 115 , 116 {"-?", OPT_HELP, 0} 117 , 118 {"-h", OPT_HELP, 0} 119 , 120 {"--help", OPT_HELP, 0} 121 , /* Produce this help message. */ 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 {"--noansi-definitions", OPT_NO_ANSI_FUNC_DEFS, 0} 217 , 218 {"--noansi-prototypes", OPT_NO_ANSI_FUNC_PROTOS, 0} 219 , 220 {"--yyclass=NAME", OPT_YYCLASS, 0} 221 , 222 {"--yylineno", OPT_YYLINENO, 0} 223 , 224 {"--noyylineno", OPT_NO_YYLINENO, 0} 225 , 226 227 {"--yymore", OPT_YYMORE, 0} 228 , 229 {"--noyymore", OPT_NO_YYMORE, 0} 230 , 231 {"--noyywrap", OPT_NO_YYWRAP, 0} 232 , 233 {"--yywrap", OPT_YYWRAP, 0} 234 , 235 236 {"--nounput", OPT_NO_UNPUT, 0} 237 , 238 {"--noyy_push_state", OPT_NO_YY_PUSH_STATE, 0} 239 , 240 {"--noyy_pop_state", OPT_NO_YY_POP_STATE, 0} 241 , 242 {"--noyy_top_state", OPT_NO_YY_TOP_STATE, 0} 243 , 244 {"--noyy_scan_buffer", OPT_NO_YY_SCAN_BUFFER, 0} 245 , 246 {"--noyy_scan_bytes", OPT_NO_YY_SCAN_BYTES, 0} 247 , 248 {"--noyy_scan_string", OPT_NO_YY_SCAN_STRING, 0} 249 , 250 {"--noyyget_extra", OPT_NO_YYGET_EXTRA, 0} 251 , 252 {"--noyyset_extra", OPT_NO_YYSET_EXTRA, 0} 253 , 254 {"--noyyget_leng", OPT_NO_YYGET_LENG, 0} 255 , 256 {"--noyyget_text", OPT_NO_YYGET_TEXT, 0} 257 , 258 {"--noyyget_lineno", OPT_NO_YYGET_LINENO, 0} 259 , 260 {"--noyyset_lineno", OPT_NO_YYSET_LINENO, 0} 261 , 262 {"--noyyget_in", OPT_NO_YYGET_IN, 0} 263 , 264 {"--noyyset_in", OPT_NO_YYSET_IN, 0} 265 , 266 {"--noyyget_out", OPT_NO_YYGET_OUT, 0} 267 , 268 {"--noyyset_out", OPT_NO_YYSET_OUT, 0} 269 , 270 {"--noyyget_lval", OPT_NO_YYGET_LVAL, 0} 271 , 272 {"--noyyset_lval", OPT_NO_YYSET_LVAL, 0} 273 , 274 {"--noyyget_lloc", OPT_NO_YYGET_LLOC, 0} 275 , 276 {"--noyyset_lloc", OPT_NO_YYSET_LLOC, 0} 277 , 278 279 {0, 0, 0} /* required final NULL entry. */ 280 }; 281