[BACK]Return to options.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / lex

Annotation of src/usr.bin/lex/options.c, Revision 1.2

1.2     ! tedu        1: /* $OpenBSD: options.c,v 1.1 2015/11/19 19:43:40 tedu Exp $ */
1.1       tedu        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: };