diff options
Diffstat (limited to 'options.c')
-rw-r--r-- | options.c | 340 |
1 files changed, 225 insertions, 115 deletions
@@ -40,121 +40,231 @@ /* The command-line options, passed to scanopt_init() */ -optspec_t flexopts[] = { - -{"-7", OPT_7BIT,0}, -{"--7bit", OPT_7BIT,0},/* Generate 7-bit scanner. */ -{"-8", OPT_8BIT,0}, -{"--8bit", OPT_8BIT,0},/* Generate 8-bit scanner. */ -{"--align", OPT_ALIGN,0},/* Trade off larger tables for better memory alignment. */ -{"--noalign", OPT_NO_ALIGN,0}, -{"--always-interactive", OPT_ALWAYS_INTERACTIVE,0}, -{"--array", OPT_ARRAY,0}, -{"-b", OPT_BACKUP,0}, -{"--backup", OPT_BACKUP,0},/* Generate backing-up information to lex.backup. */ -{"-B", OPT_BATCH,0}, -{"--batch", OPT_BATCH,0},/* Generate batch scanner (opposite of -I). */ -{"-i", OPT_CASE_INSENSITIVE,0}, -{"--case-insensitive", OPT_CASE_INSENSITIVE,0},/* Generate case-insensitive scanner. */ -{"-C[aefFmr]", OPT_COMPRESSION,"Specify degree of table compression (default is -Cem)"}, -{"-+", OPT_CPLUSPLUS,0}, -{"--c++", OPT_CPLUSPLUS,0},/* Generate C++ scanner class. */ -{"-d", OPT_DEBUG,0}, -{"--debug", OPT_DEBUG,0},/* Turn on debug mode in generated scanner. */ -{"--nodebug", OPT_NO_DEBUG,0}, -{"-s", OPT_NO_DEFAULT,0}, -{"--nodefault", OPT_NO_DEFAULT,0},/* Suppress default rule to ECHO unmatched text. */ -{"--default", OPT_DEFAULT,0}, -{"-c", OPT_DONOTHING,0},/* For POSIX lex compatibility. */ -{"-n", OPT_DONOTHING,0},/* For POSIX lex compatibility. */ -{"--ecs", OPT_ECS,0},/* Construct equivalence classes. */ -{"--noecs", OPT_NO_ECS,0}, -{"-F", OPT_FAST,0}, -{"--fast", OPT_FAST,0},/* Same as -CFr. */ -{"-f", OPT_FULL,0}, -{"--full", OPT_FULL,0},/* Same as -Cfr. */ -{"--header[=FILE]", OPT_HEADER,0}, -{"-?", OPT_HELP,0}, -{"-h", OPT_HELP,0}, -{"--help", OPT_HELP,0},/* Produce this help message. */ -{"-I", OPT_INTERACTIVE,0}, -{"--interactive", OPT_INTERACTIVE,0},/* Generate interactive scanner (opposite of -B). */ -{"-l", OPT_LEX_COMPAT,0}, -{"--lex-compat", OPT_LEX_COMPAT,0},/* Maximal compatibility with original lex. */ -{"-X", OPT_POSIX_COMPAT,0}, -{"--posix-compat", OPT_POSIX_COMPAT,0},/* Maximal compatibility with POSIX lex. */ -{"-L", OPT_NO_LINE,0},/* Suppress #line directives in scanner. */ -{"--noline", OPT_NO_LINE,0},/* Suppress #line directives in scanner. */ -{"--main", OPT_MAIN,0}, /* use built-in main() function. */ -{"--nomain", OPT_NO_MAIN,0}, -{"--meta-ecs", OPT_META_ECS,0},/* Construct meta-equivalence classes. */ -{"--nometa-ecs", OPT_NO_META_ECS,0}, -{"--never-interactive", OPT_NEVER_INTERACTIVE,0}, -{"-o FILE", OPT_OUTFILE,0}, -{"--outfile=FILE", OPT_OUTFILE,0},/* Write to FILE (default is lex.yy.c) */ -{"-p", OPT_PERF_REPORT,0}, -{"--perf-report", OPT_PERF_REPORT,0},/* Generate performance report to stderr. */ -{"--pointer", OPT_POINTER,0}, -{"-P PREFIX", OPT_PREFIX,0}, -{"--prefix=PREFIX", OPT_PREFIX,0},/* Use PREFIX (default is yy) */ -{"-Dmacro", OPT_PREPROCDEFINE,0},/* Define a preprocessor symbol. */ -{"--read", OPT_READ,0},/* Use read(2) instead of stdio. */ -{"-R[b]", OPT_REENTRANT,0}, -{"--reentrant", OPT_REENTRANT,0},/* Generate a reentrant C scanner. */ -{"--noreentrant", OPT_NO_REENTRANT,0}, -{"--reentrant-bison", OPT_REENTRANT_BISON,0},/* Reentrant scanner to be called by a bison pure parser. */ -{"--reject", OPT_REJECT,0}, -{"--noreject", OPT_NO_REJECT,0}, -{"-S FILE", OPT_SKEL,0}, -{"--skel=FILE", OPT_SKEL,0},/* Use skeleton from FILE */ -{"--stack", OPT_STACK,0}, -{"--stdinit", OPT_STDINIT,0}, -{"--nostdinit", OPT_NO_STDINIT,0}, -{"-t", OPT_STDOUT,0}, -{"--stdout", OPT_STDOUT,0},/* Write generated scanner to stdout. */ -{"-T", OPT_TRACE,0}, -{"--trace", OPT_TRACE,0},/* Flex should run in trace mode. */ -{"--tables[=FILE]", OPT_TABLES,0},/* Save tables to FILE */ -{"--nounistd", OPT_NO_UNISTD_H,0}, /* Do not include unistd.h */ -{"-v", OPT_VERBOSE,0}, -{"--verbose", OPT_VERBOSE,0},/* Write summary of scanner statistics to stdout. */ -{"-V", OPT_VERSION,0}, -{"--version", OPT_VERSION,0},/* Report flex version. */ -{"--warn", OPT_WARN,0}, -{"-w", OPT_NO_WARN,0}, -{"--nowarn", OPT_NO_WARN,0},/* Suppress warning messages. */ -{"--yyclass=NAME", OPT_YYCLASS,0}, -{"--yylineno", OPT_YYLINENO,0}, -{"--noyylineno", OPT_NO_YYLINENO,0}, - -{"--yymore", OPT_YYMORE,0}, -{"--noyymore", OPT_NO_YYMORE,0}, -{"--noyywrap", OPT_NO_YYWRAP,0}, -{"--yywrap" , OPT_YYWRAP,0}, - -{"--nounput", OPT_NO_UNPUT,0}, -{"--noyy_push_state", OPT_NO_YY_PUSH_STATE,0}, -{"--noyy_pop_state", OPT_NO_YY_POP_STATE,0}, -{"--noyy_top_state", OPT_NO_YY_TOP_STATE,0}, -{"--noyy_scan_buffer", OPT_NO_YY_SCAN_BUFFER,0}, -{"--noyy_scan_bytes", OPT_NO_YY_SCAN_BYTES,0}, -{"--noyy_scan_string", OPT_NO_YY_SCAN_STRING,0}, -{"--noyyget_extra", OPT_NO_YYGET_EXTRA,0}, -{"--noyyset_extra", OPT_NO_YYSET_EXTRA,0}, -{"--noyyget_leng", OPT_NO_YYGET_LENG,0}, -{"--noyyget_text", OPT_NO_YYGET_TEXT,0}, -{"--noyyget_lineno", OPT_NO_YYGET_LINENO,0}, -{"--noyyset_lineno", OPT_NO_YYSET_LINENO,0}, -{"--noyyget_in", OPT_NO_YYGET_IN,0}, -{"--noyyset_in", OPT_NO_YYSET_IN,0}, -{"--noyyget_out", OPT_NO_YYGET_OUT,0}, -{"--noyyset_out", OPT_NO_YYSET_OUT,0}, -{"--noyyget_lval", OPT_NO_YYGET_LVAL,0}, -{"--noyyset_lval", OPT_NO_YYSET_LVAL,0}, -{"--noyyget_lloc", OPT_NO_YYGET_LLOC,0}, -{"--noyyset_lloc", OPT_NO_YYSET_LLOC,0}, - -{0,0,0} /* required final NULL entry.*/ +optspec_t flexopts[] = { + + {"-7", OPT_7BIT, 0} + , + {"--7bit", OPT_7BIT, 0} + , /* Generate 7-bit scanner. */ + {"-8", OPT_8BIT, 0} + , + {"--8bit", OPT_8BIT, 0} + , /* Generate 8-bit scanner. */ + {"--align", OPT_ALIGN, 0} + , /* Trade off larger tables for better memory alignment. */ + {"--noalign", OPT_NO_ALIGN, 0} + , + {"--always-interactive", OPT_ALWAYS_INTERACTIVE, 0} + , + {"--array", OPT_ARRAY, 0} + , + {"-b", OPT_BACKUP, 0} + , + {"--backup", OPT_BACKUP, 0} + , /* Generate backing-up information to lex.backup. */ + {"-B", OPT_BATCH, 0} + , + {"--batch", OPT_BATCH, 0} + , /* Generate batch scanner (opposite of -I). */ + {"-i", OPT_CASE_INSENSITIVE, 0} + , + {"--case-insensitive", OPT_CASE_INSENSITIVE, 0} + , /* Generate case-insensitive scanner. */ + + {"-C[aefFmr]", OPT_COMPRESSION, + "Specify degree of table compression (default is -Cem)"}, + {"-+", OPT_CPLUSPLUS, 0} + , + {"--c++", OPT_CPLUSPLUS, 0} + , /* Generate C++ scanner class. */ + {"-d", OPT_DEBUG, 0} + , + {"--debug", OPT_DEBUG, 0} + , /* Turn on debug mode in generated scanner. */ + {"--nodebug", OPT_NO_DEBUG, 0} + , + {"-s", OPT_NO_DEFAULT, 0} + , + {"--nodefault", OPT_NO_DEFAULT, 0} + , /* Suppress default rule to ECHO unmatched text. */ + {"--default", OPT_DEFAULT, 0} + , + {"-c", OPT_DONOTHING, 0} + , /* For POSIX lex compatibility. */ + {"-n", OPT_DONOTHING, 0} + , /* For POSIX lex compatibility. */ + {"--ecs", OPT_ECS, 0} + , /* Construct equivalence classes. */ + {"--noecs", OPT_NO_ECS, 0} + , + {"-F", OPT_FAST, 0} + , + {"--fast", OPT_FAST, 0} + , /* Same as -CFr. */ + {"-f", OPT_FULL, 0} + , + {"--full", OPT_FULL, 0} + , /* Same as -Cfr. */ + {"--header[=FILE]", OPT_HEADER, 0} + , + {"-?", OPT_HELP, 0} + , + {"-h", OPT_HELP, 0} + , + {"--help", OPT_HELP, 0} + , /* Produce this help message. */ + {"-I", OPT_INTERACTIVE, 0} + , + {"--interactive", OPT_INTERACTIVE, 0} + , /* Generate interactive scanner (opposite of -B). */ + {"-l", OPT_LEX_COMPAT, 0} + , + {"--lex-compat", OPT_LEX_COMPAT, 0} + , /* Maximal compatibility with original lex. */ + {"-X", OPT_POSIX_COMPAT, 0} + , + {"--posix-compat", OPT_POSIX_COMPAT, 0} + , /* Maximal compatibility with POSIX lex. */ + {"-L", OPT_NO_LINE, 0} + , /* Suppress #line directives in scanner. */ + {"--noline", OPT_NO_LINE, 0} + , /* Suppress #line directives in scanner. */ + {"--main", OPT_MAIN, 0} + , /* use built-in main() function. */ + {"--nomain", OPT_NO_MAIN, 0} + , + {"--meta-ecs", OPT_META_ECS, 0} + , /* Construct meta-equivalence classes. */ + {"--nometa-ecs", OPT_NO_META_ECS, 0} + , + {"--never-interactive", OPT_NEVER_INTERACTIVE, 0} + , + {"-o FILE", OPT_OUTFILE, 0} + , + {"--outfile=FILE", OPT_OUTFILE, 0} + , /* Write to FILE (default is lex.yy.c) */ + {"-p", OPT_PERF_REPORT, 0} + , + {"--perf-report", OPT_PERF_REPORT, 0} + , /* Generate performance report to stderr. */ + {"--pointer", OPT_POINTER, 0} + , + {"-P PREFIX", OPT_PREFIX, 0} + , + {"--prefix=PREFIX", OPT_PREFIX, 0} + , /* Use PREFIX (default is yy) */ + {"-Dmacro", OPT_PREPROCDEFINE, 0} + , /* Define a preprocessor symbol. */ + {"--read", OPT_READ, 0} + , /* Use read(2) instead of stdio. */ + {"-R[b]", OPT_REENTRANT, 0} + , + {"--reentrant", OPT_REENTRANT, 0} + , /* Generate a reentrant C scanner. */ + {"--noreentrant", OPT_NO_REENTRANT, 0} + , + {"--reentrant-bison", OPT_REENTRANT_BISON, 0} + , /* Reentrant scanner to be called by a bison pure parser. */ + {"--reject", OPT_REJECT, 0} + , + {"--noreject", OPT_NO_REJECT, 0} + , + {"-S FILE", OPT_SKEL, 0} + , + {"--skel=FILE", OPT_SKEL, 0} + , /* Use skeleton from FILE */ + {"--stack", OPT_STACK, 0} + , + {"--stdinit", OPT_STDINIT, 0} + , + {"--nostdinit", OPT_NO_STDINIT, 0} + , + {"-t", OPT_STDOUT, 0} + , + {"--stdout", OPT_STDOUT, 0} + , /* Write generated scanner to stdout. */ + {"-T", OPT_TRACE, 0} + , + {"--trace", OPT_TRACE, 0} + , /* Flex should run in trace mode. */ + {"--tables[=FILE]", OPT_TABLES, 0} + , /* Save tables to FILE */ + {"--nounistd", OPT_NO_UNISTD_H, 0} + , /* Do not include unistd.h */ + {"-v", OPT_VERBOSE, 0} + , + {"--verbose", OPT_VERBOSE, 0} + , /* Write summary of scanner statistics to stdout. */ + {"-V", OPT_VERSION, 0} + , + {"--version", OPT_VERSION, 0} + , /* Report flex version. */ + {"--warn", OPT_WARN, 0} + , + {"-w", OPT_NO_WARN, 0} + , + {"--nowarn", OPT_NO_WARN, 0} + , /* Suppress warning messages. */ + {"--yyclass=NAME", OPT_YYCLASS, 0} + , + {"--yylineno", OPT_YYLINENO, 0} + , + {"--noyylineno", OPT_NO_YYLINENO, 0} + , + + {"--yymore", OPT_YYMORE, 0} + , + {"--noyymore", OPT_NO_YYMORE, 0} + , + {"--noyywrap", OPT_NO_YYWRAP, 0} + , + {"--yywrap", OPT_YYWRAP, 0} + , + + {"--nounput", OPT_NO_UNPUT, 0} + , + {"--noyy_push_state", OPT_NO_YY_PUSH_STATE, 0} + , + {"--noyy_pop_state", OPT_NO_YY_POP_STATE, 0} + , + {"--noyy_top_state", OPT_NO_YY_TOP_STATE, 0} + , + {"--noyy_scan_buffer", OPT_NO_YY_SCAN_BUFFER, 0} + , + {"--noyy_scan_bytes", OPT_NO_YY_SCAN_BYTES, 0} + , + {"--noyy_scan_string", OPT_NO_YY_SCAN_STRING, 0} + , + {"--noyyget_extra", OPT_NO_YYGET_EXTRA, 0} + , + {"--noyyset_extra", OPT_NO_YYSET_EXTRA, 0} + , + {"--noyyget_leng", OPT_NO_YYGET_LENG, 0} + , + {"--noyyget_text", OPT_NO_YYGET_TEXT, 0} + , + {"--noyyget_lineno", OPT_NO_YYGET_LINENO, 0} + , + {"--noyyset_lineno", OPT_NO_YYSET_LINENO, 0} + , + {"--noyyget_in", OPT_NO_YYGET_IN, 0} + , + {"--noyyset_in", OPT_NO_YYSET_IN, 0} + , + {"--noyyget_out", OPT_NO_YYGET_OUT, 0} + , + {"--noyyset_out", OPT_NO_YYSET_OUT, 0} + , + {"--noyyget_lval", OPT_NO_YYGET_LVAL, 0} + , + {"--noyyset_lval", OPT_NO_YYSET_LVAL, 0} + , + {"--noyyget_lloc", OPT_NO_YYGET_LLOC, 0} + , + {"--noyyset_lloc", OPT_NO_YYSET_LLOC, 0} + , + + {0, 0, 0} /* required final NULL entry. */ }; /* vim:set tabstop=8 softtabstop=4 shiftwidth=4: */ |