Annotation of 43BSDReno/pgrm/lex/initscan.c, revision 1.1.1.1

1.1       root        1: /* A lexical scanner generated by flex */
                      2: 
                      3: /* scanner skeleton version:
                      4:  * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.13 90/05/26 17:24:13 vern Exp $
                      5:  */
                      6: 
                      7: #define FLEX_SCANNER
                      8: 
                      9: #include <stdio.h>
                     10: 
                     11: #ifdef __STDC__
                     12: 
                     13: #ifndef DONT_HAVE_STDLIB_H
                     14: #include <stdlib.h>
                     15: #else
                     16: void *malloc( unsigned );
                     17: void free( void* );
                     18: #endif
                     19: 
                     20: #define YY_USE_PROTOS
                     21: #define YY_USE_CONST
                     22: #endif
                     23: 
                     24: 
                     25: /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
                     26: #ifdef c_plusplus
                     27: #ifndef __cplusplus
                     28: #define __cplusplus
                     29: #endif
                     30: #endif
                     31: 
                     32: 
                     33: #ifdef __cplusplus
                     34: 
                     35: #ifndef __STDC__
                     36: #include <stdlib.h>
                     37: #endif
                     38: 
                     39: #include <osfcn.h>
                     40: 
                     41: /* use prototypes in function declarations */
                     42: #define YY_USE_PROTOS
                     43: 
                     44: /* the "const" storage-class-modifier is valid */
                     45: #define YY_USE_CONST
                     46: 
                     47: #endif
                     48: 
                     49: 
                     50: #ifdef __TURBOC__
                     51: #define YY_USE_CONST
                     52: #endif
                     53: 
                     54: 
                     55: #ifndef YY_USE_CONST
                     56: #define const
                     57: #endif
                     58: 
                     59: 
                     60: #ifdef YY_USE_PROTOS
                     61: #define YY_PROTO(proto) proto
                     62: #else
                     63: #define YY_PROTO(proto) ()
                     64: /* there's no standard place to get these definitions */
                     65: char *malloc();
                     66: int free();
                     67: int read();
                     68: #endif
                     69: 
                     70: 
                     71: /* amount of stuff to slurp up with each read */
                     72: #ifndef YY_READ_BUF_SIZE
                     73: #define YY_READ_BUF_SIZE 8192
                     74: #endif
                     75: 
                     76: /* returned upon end-of-file */
                     77: #define YY_END_TOK 0
                     78: 
                     79: /* copy whatever the last rule matched to the standard output */
                     80: 
                     81: /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
                     82: /* this used to be an fputs(), but since the string might contain NUL's,
                     83:  * we now use fwrite()
                     84:  */
                     85: #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
                     86: 
                     87: /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
                     88:  * is returned in "result".
                     89:  */
                     90: #define YY_INPUT(buf,result,max_size) \
                     91:        if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
                     92:            YY_FATAL_ERROR( "read() in flex scanner failed" );
                     93: #define YY_NULL 0
                     94: 
                     95: /* no semi-colon after return; correct usage is to write "yyterminate();" -
                     96:  * we don't want an extra ';' after the "return" because that will cause
                     97:  * some compilers to complain about unreachable statements.
                     98:  */
                     99: #define yyterminate() return ( YY_NULL )
                    100: 
                    101: /* report a fatal error */
                    102: 
                    103: /* The funky do-while is used to turn this macro definition into
                    104:  * a single C statement (which needs a semi-colon terminator).
                    105:  * This avoids problems with code like:
                    106:  *
                    107:  *     if ( something_happens )
                    108:  *             YY_FATAL_ERROR( "oops, the something happened" );
                    109:  *     else
                    110:  *             everything_okay();
                    111:  *
                    112:  * Prior to using the do-while the compiler would get upset at the
                    113:  * "else" because it interpreted the "if" statement as being all
                    114:  * done when it reached the ';' after the YY_FATAL_ERROR() call.
                    115:  */
                    116: 
                    117: #define YY_FATAL_ERROR(msg) \
                    118:        do \
                    119:                { \
                    120:                (void) fputs( msg, stderr ); \
                    121:                (void) putc( '\n', stderr ); \
                    122:                exit( 1 ); \
                    123:                } \
                    124:        while ( 0 )
                    125: 
                    126: /* default yywrap function - always treat EOF as an EOF */
                    127: #define yywrap() 1
                    128: 
                    129: /* enter a start condition.  This macro really ought to take a parameter,
                    130:  * but we do it the disgusting crufty way forced on us by the ()-less
                    131:  * definition of BEGIN
                    132:  */
                    133: #define BEGIN yy_start = 1 + 2 *
                    134: 
                    135: /* action number for EOF rule of a given start state */
                    136: #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
                    137: 
                    138: /* special action meaning "start processing a new file" */
                    139: #define YY_NEW_FILE \
                    140:        do \
                    141:                { \
                    142:                yy_init_buffer( yy_current_buffer, yyin ); \
                    143:                yy_load_buffer_state(); \
                    144:                } \
                    145:        while ( 0 )
                    146: 
                    147: /* default declaration of generated scanner - a define so the user can
                    148:  * easily add parameters
                    149:  */
                    150: #define YY_DECL int yylex YY_PROTO(( void )) 
                    151: 
                    152: /* code executed at the end of each rule */
                    153: #define YY_BREAK break;
                    154: 
                    155: #define YY_END_OF_BUFFER_CHAR 0
                    156: 
                    157: #ifndef YY_BUF_SIZE
                    158: #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
                    159: #endif
                    160: 
                    161: typedef struct yy_buffer_state *YY_BUFFER_STATE;
                    162: 
                    163: #define YY_CHAR unsigned char
                    164: # line 1 "scan.l"
                    165: #define INITIAL 0
                    166: /* scan.l - scanner for flex input */
                    167: /*
                    168:  * Copyright (c) 1989 The Regents of the University of California.
                    169:  * All rights reserved.
                    170:  *
                    171:  * This code is derived from software contributed to Berkeley by
                    172:  * Vern Paxson.
                    173:  * 
                    174:  * The United States Government has rights in this work pursuant to
                    175:  * contract no. DE-AC03-76SF00098 between the United States Department of
                    176:  * Energy and the University of California.
                    177:  *
                    178:  * Redistribution and use in source and binary forms are permitted
                    179:  * provided that the above copyright notice and this paragraph are
                    180:  * duplicated in all such forms and that any documentation,
                    181:  * advertising materials, and other materials related to such
                    182:  * distribution and use acknowledge that the software was developed
                    183:  * by the University of California, Berkeley.  The name of the
                    184:  * University may not be used to endorse or promote products derived
                    185:  * from this software without specific prior written permission.
                    186:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                    187:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                    188:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                    189:  */
                    190: # line 28 "scan.l"
                    191: #undef yywrap
                    192: 
                    193: #include "flexdef.h"
                    194: #include "parse.h"
                    195: 
                    196: #ifndef lint
                    197: static char copyright[] =
                    198:     "@(#) Copyright (c) 1989 The Regents of the University of California.\n";
                    199: static char CR_continuation[] = "@(#) All rights reserved.\n";
                    200: 
                    201: static char rcsid[] =
                    202:     "@(#) $Header: /usr/fsys/odin/a/vern/flex/RCS/scan.l,v 2.8 90/05/26 16:53:23 vern Exp $ (LBL)";
                    203: #endif
                    204: 
                    205: #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
                    206: #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
                    207: 
                    208: #undef YY_DECL
                    209: #define YY_DECL \
                    210:        int flexscan()
                    211: 
                    212: #define RETURNCHAR \
                    213:        yylval = yytext[0]; \
                    214:        return ( CHAR );
                    215: 
                    216: #define RETURNNAME \
                    217:        (void) strcpy( nmstr, (char *) yytext ); \
                    218:        return ( NAME );
                    219: 
                    220: #define PUT_BACK_STRING(str, start) \
                    221:        for ( i = strlen( (char *) (str) ) - 1; i >= start; --i ) \
                    222:            unput((str)[i])
                    223: 
                    224: #define CHECK_REJECT(str) \
                    225:        if ( all_upper( str ) ) \
                    226:            reject = true;
                    227: 
                    228: #define CHECK_YYMORE(str) \
                    229:        if ( all_lower( str ) ) \
                    230:            yymore_used = true;
                    231: #define SECT2 1
                    232: #define SECT2PROLOG 2
                    233: #define SECT3 3
                    234: #define CODEBLOCK 4
                    235: #define PICKUPDEF 5
                    236: #define SC 6
                    237: #define CARETISBOL 7
                    238: #define NUM 8
                    239: #define QUOTE 9
                    240: #define FIRSTCCL 10
                    241: #define CCL 11
                    242: #define ACTION 12
                    243: #define RECOVER 13
                    244: #define BRACEERROR 14
                    245: #define C_COMMENT 15
                    246: #define ACTION_COMMENT 16
                    247: #define ACTION_STRING 17
                    248: #define PERCENT_BRACE_ACTION 18
                    249: #define USED_LIST 19
                    250: #define CODEBLOCK_2 20
                    251: #define XLATION 21
                    252: # line 85 "scan.l"
                    253: 
                    254: /* done after the current pattern has been matched and before the
                    255:  * corresponding action - sets up yytext
                    256:  */
                    257: #define YY_DO_BEFORE_ACTION \
                    258:        yytext = yy_bp; \
                    259:        yyleng = yy_cp - yy_bp; \
                    260:        yy_hold_char = *yy_cp; \
                    261:        *yy_cp = '\0'; \
                    262:        yy_c_buf_p = yy_cp;
                    263: 
                    264: #define EOB_ACT_CONTINUE_SCAN 0
                    265: #define EOB_ACT_END_OF_FILE 1
                    266: #define EOB_ACT_LAST_MATCH 2
                    267: 
                    268: /* return all but the first 'n' matched characters back to the input stream */
                    269: #define yyless(n) \
                    270:        do \
                    271:                { \
                    272:                /* undo effects of setting up yytext */ \
                    273:                *yy_cp = yy_hold_char; \
                    274:                yy_c_buf_p = yy_cp = yy_bp + n; \
                    275:                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
                    276:                } \
                    277:        while ( 0 )
                    278: 
                    279: #define unput(c) yyunput( c, yytext )
                    280: 
                    281: 
                    282: struct yy_buffer_state
                    283:     {
                    284:     FILE *yy_input_file;
                    285: 
                    286:     YY_CHAR *yy_ch_buf;                /* input buffer */
                    287:     YY_CHAR *yy_buf_pos;       /* current position in input buffer */
                    288: 
                    289:     /* size of input buffer in bytes, not including room for EOB characters*/
                    290:     int yy_buf_size;   
                    291: 
                    292:     /* number of characters read into yy_ch_buf, not including EOB characters */
                    293:     int yy_n_chars;
                    294: 
                    295:     int yy_eof_status;         /* whether we've seen an EOF on this buffer */
                    296: #define EOF_NOT_SEEN 0
                    297:     /* "pending" happens when the EOF has been seen but there's still
                    298:      * some text process
                    299:      */
                    300: #define EOF_PENDING 1
                    301: #define EOF_DONE 2
                    302:     };
                    303: 
                    304: static YY_BUFFER_STATE yy_current_buffer;
                    305: 
                    306: /* we provide macros for accessing buffer states in case in the
                    307:  * future we want to put the buffer states in a more general
                    308:  * "scanner state"
                    309:  */
                    310: #define YY_CURRENT_BUFFER yy_current_buffer
                    311: 
                    312: 
                    313: /* yy_hold_char holds the character lost when yytext is formed */
                    314: static YY_CHAR yy_hold_char;
                    315: 
                    316: static int yy_n_chars;         /* number of characters read into yy_ch_buf */
                    317: 
                    318: 
                    319: 
                    320: #ifndef YY_USER_ACTION
                    321: #define YY_USER_ACTION
                    322: #endif
                    323: 
                    324: #ifndef YY_USER_INIT
                    325: #define YY_USER_INIT
                    326: #endif
                    327: 
                    328: extern YY_CHAR *yytext;
                    329: extern int yyleng;
                    330: extern FILE *yyin, *yyout;
                    331: 
                    332: YY_CHAR *yytext;
                    333: int yyleng;
                    334: 
                    335: FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
                    336: 
                    337: #define YY_END_OF_BUFFER 121
                    338: typedef int yy_state_type;
                    339: static const short int yy_accept[341] =
                    340:     {   0,
                    341:         0,    0,    0,    0,    0,    0,  119,  119,    0,    0,
                    342:         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
                    343:         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
                    344:         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
                    345:         0,    0,    0,    0,  121,   19,    7,   18,   19,   16,
                    346:         1,   17,   19,   19,   19,   15,   67,   59,   60,   53,
                    347:        67,   66,   51,   67,   67,   67,   50,   49,   67,   52,
                    348:       120,   47,  119,  119,   28,   29,   28,   28,   28,   28,
                    349:        31,   30,   32,   73,  120,   69,   70,   72,   74,   88,
                    350:        89,   86,   85,   87,   75,   77,   76,   75,   81,   80,
                    351: 
                    352:        81,   81,   83,   83,   83,   84,   99,  104,  103,  105,
                    353:       105,  100,  100,  100,   97,   98,  120,   33,   91,   90,
                    354:        22,   24,   23,  107,  109,  108,  111,  113,  114,  115,
                    355:        95,   95,   96,   95,   95,   95,   95,   38,   35,   34,
                    356:        38,   38,   44,   42,   45,   44,   44,   41,   41,   41,
                    357:        40,   41,    7,   18,    0,   16,    1,   17,    0,    2,
                    358:        14,    8,    0,   12,    4,    0,    0,    5,    0,    3,
                    359:        15,   59,   60,    0,    0,   56,    0,    0,    0,  117,
                    360:       117,  117,   55,   54,   55,   50,   49,   63,   50,    0,
                    361:        47,   46,  119,  119,   28,   28,   28,   28,   28,   31,
                    362: 
                    363:        30,   71,   72,   85,  118,  118,  118,   78,   79,   82,
                    364:        99,    0,  102,    0,  101,  100,  100,  100,    0,   33,
                    365:        22,   20,  107,  106,  111,  112,   95,   95,   95,   92,
                    366:        95,   95,   95,   38,   35,   38,   38,   42,    0,   43,
                    367:        43,   43,   42,   40,    0,   13,   14,    8,    8,    0,
                    368:        12,    4,    0,    0,    0,    5,    0,    6,   57,    0,
                    369:        58,    0,   64,    0,    0,  117,  117,   55,   55,   65,
                    370:        63,   28,   28,   28,   25,    0,  118,  118,  100,  100,
                    371:         0,   21,   92,   92,   95,   95,   38,   38,    0,   39,
                    372:        43,   43,    0,   11,    4,    0,   11,    0,    0,    5,
                    373: 
                    374:         0,    0,    0,  117,   28,   28,  118,  100,  100,   95,
                    375:        95,   38,   38,   43,    0,    9,    0,    0,    0,   28,
                    376:        28,  100,  100,   95,   95,   38,   38,    0,    0,   26,
                    377:        27,   93,   94,   93,   94,   36,   37,   10,   62,    0
                    378:     } ;
                    379: 
                    380: static const YY_CHAR yy_ec[256] =
                    381:     {   0,
                    382:         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
                    383:         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
                    384:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    385:         1,    5,    1,    6,    7,    8,    9,    1,   10,   11,
                    386:        11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
                    387:        16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
                    388:         1,   18,   11,    1,   24,   25,   26,   27,   28,   29,
                    389:        23,   23,   23,   30,   31,   23,   32,   33,   34,   31,
                    390:        23,   35,   36,   37,   38,   23,   23,   39,   40,   23,
                    391:        19,   20,   21,   22,   23,    1,   24,   25,   26,   27,
                    392: 
                    393:        28,   29,   23,   23,   23,   30,   31,   23,   32,   33,
                    394:        34,   31,   23,   35,   36,   37,   38,   23,   23,   39,
                    395:        40,   23,   41,   42,   43,    1,    1,    1,    1,    1,
                    396:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    397:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    398:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    399:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    400:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    401:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    402:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    403: 
                    404:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    405:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    406:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    407:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    408:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    409:         1,    1,    1,    1,    1
                    410:     } ;
                    411: 
                    412: static const YY_CHAR yy_meta[44] =
                    413:     {   0,
                    414:         1,    2,    3,    2,    2,    4,    1,    1,    1,    5,
                    415:         1,    6,    1,    7,    5,    8,    1,    1,    1,    9,
                    416:        10,    1,   11,   12,   12,   12,   12,   12,   12,   11,
                    417:        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
                    418:         5,    1,   13
                    419:     } ;
                    420: 
                    421: static const short int yy_base[404] =
                    422:     {   0,
                    423:         0,   43,   85,  126, 1371, 1370, 1369, 1353,  168, 1346,
                    424:       104,  108,  211,    0, 1332, 1320,  120,  252,   95,  119,
                    425:       137,  144,  100,  141,  295,    0, 1327, 1323,  113,  336,
                    426:       254,  255,  257,  258,  253,  268,  379,    0,  338,  421,
                    427:         0,    0,  273,  460, 1325, 1442,  281, 1442, 1287,    0,
                    428:       287, 1442, 1279,  472, 1257,    0, 1442,  425, 1442, 1442,
                    429:       147, 1442, 1239, 1235,   78,  513,  433, 1442,   83, 1442,
                    430:      1248,    0, 1247, 1442,    0, 1442,    0, 1218, 1205, 1194,
                    431:         0,  342, 1442, 1442, 1442, 1442, 1202,    0, 1442, 1442,
                    432:      1442, 1442, 1201, 1442, 1442, 1442, 1442,   79, 1442, 1442,
                    433: 
                    434:       103, 1198, 1442,    0,  248, 1442,    0, 1442, 1442,  252,
                    435:      1199,    0, 1173, 1158, 1442, 1442, 1185, 1442, 1442, 1442,
                    436:         0, 1442, 1170,    0, 1442, 1152,    0, 1442, 1442,    0,
                    437:         0,  346, 1442, 1123,    0, 1125, 1105,    0,  352, 1442,
                    438:      1116, 1103, 1442,  356, 1442, 1100,  329, 1442,  360, 1093,
                    439:      1101,  333,  441, 1442,  445,    0,  449, 1442, 1101, 1442,
                    440:       365,  453, 1094,  466,    0,  480,  330,    0, 1095, 1442,
                    441:         0,  555, 1442, 1044, 1077, 1442, 1051,  133,  456, 1442,
                    442:      1059,    0,    0, 1442,  584,  563, 1442,    0, 1442, 1071,
                    443:         0, 1442, 1063, 1442,    0,    0, 1010, 1007,  627,    0,
                    444: 
                    445:       484, 1442,    0,  998, 1442,  992,    0, 1442, 1442, 1442,
                    446:         0,  421, 1442,    0, 1442,    0,  971,  964,  992, 1442,
                    447:         0,  962,    0, 1442,    0, 1442,    0,  488,  921,  670,
                    448:         0,  717,  714,    0,  497,  715,  712,  569,  573, 1442,
                    449:       727,    0,  577,  726,  581, 1442,  585,    0,  590,  738,
                    450:       597,    0,  712,  683,  691,    0,  670, 1442, 1442,  623,
                    451:      1442,  591, 1442,  458,  702,  590,    0,    0,    0, 1442,
                    452:         0,  576,  569,    0, 1442,  593,  575,    0,  560,  546,
                    453:       567, 1442,    0,    0,  541,  529,  534,  527,  730, 1442,
                    454:       500,    0,  509, 1442,    0,  734, 1442,  468,  467,    0,
                    455: 
                    456:       462,  704,  724, 1442,  461,  438, 1442,  440,  425,  433,
                    457:       405,  413,  398, 1442,  404, 1442,  359,  259,  332,  338,
                    458:       346,  334,  331,  257,  253,  226,  137,  133,   81,    0,
                    459:         0,    0,    0,    0,    0,    0,    0, 1442, 1442, 1442,
                    460:       753,  766,  779,  792,  805,  818,  831,  844,  857,  870,
                    461:       883,  896,  909,  922,  935,  948,  955,  967,  980,  986,
                    462:       998, 1011, 1024, 1037, 1050, 1063, 1070, 1082, 1089, 1101,
                    463:      1114, 1127, 1140, 1150, 1157, 1169, 1182, 1195, 1208, 1221,
                    464:      1234, 1241, 1253, 1266, 1279, 1282, 1284, 1296, 1309, 1315,
                    465:      1327, 1339, 1345, 1357, 1363, 1375, 1382, 1388, 1393, 1405,
                    466: 
                    467:      1411, 1423, 1429
                    468:     } ;
                    469: 
                    470: static const short int yy_def[404] =
                    471:     {   0,
                    472:       340,  340,  341,  341,  342,  342,  343,  343,  340,    9,
                    473:       344,  344,  340,   13,  345,  345,  346,  346,  347,  347,
                    474:       348,  348,  349,  349,  340,   25,  350,  350,  345,  345,
                    475:       351,  351,  352,  352,  353,  353,  340,   37,  354,  354,
                    476:        37,   37,  355,  356,  340,  340,  340,  340,  340,  357,
                    477:       340,  340,  358,  359,  340,  360,  340,  340,  340,  340,
                    478:       340,  340,  340,  361,  362,  340,  340,  340,  340,  340,
                    479:       363,  364,  365,  340,  366,  340,  367,  367,  367,  366,
                    480:       368,  340,  340,  340,  340,  340,  340,  369,  340,  340,
                    481:       340,  340,  340,  340,  340,  340,  340,  362,  340,  340,
                    482: 
                    483:       370,  371,  340,  372,  362,  340,  373,  340,  340,  374,
                    484:       340,  375,  375,  375,  340,  340,  376,  340,  340,  340,
                    485:       377,  340,  340,  378,  340,  340,  379,  340,  340,  380,
                    486:       381,  381,  340,  381,  382,  382,  382,  383,  340,  340,
                    487:       383,  383,  340,  340,  340,  340,  384,  340,  340,  340,
                    488:       340,  384,  340,  340,  340,  357,  340,  340,  358,  340,
                    489:       340,  385,  340,  340,  386,  340,  340,  387,  388,  340,
                    490:       360,  340,  340,  340,  389,  340,  340,  361,  361,  340,
                    491:       340,  390,  391,  340,  391,  340,  340,  392,  340,  363,
                    492:       364,  340,  365,  340,  366,  367,  367,  367,  340,  368,
                    493: 
                    494:       340,  340,  369,  340,  340,  340,  393,  340,  340,  340,
                    495:       373,  374,  340,  374,  340,  375,  375,  375,  376,  340,
                    496:       377,  394,  378,  340,  379,  340,  381,  381,  381,  340,
                    497:       382,  382,  382,  383,  340,  383,  383,  340,  340,  340,
                    498:       340,  395,  340,  340,  340,  340,  340,  385,  385,  396,
                    499:       340,  397,  396,  340,  340,  398,  388,  340,  340,  389,
                    500:       340,  340,  340,  361,  361,  340,  399,  391,  185,  340,
                    501:       392,  367,  367,  199,  340,  400,  340,  401,  375,  375,
                    502:       394,  340,  230,  402,  382,  382,  383,  383,  340,  340,
                    503:       340,  403,  396,  340,  397,  396,  340,  340,  340,  398,
                    504: 
                    505:       340,  361,  265,  340,  367,  367,  340,  375,  375,  382,
                    506:       382,  383,  383,  340,  340,  340,  340,  361,  361,  367,
                    507:       367,  375,  375,  382,  382,  383,  383,  340,  340,  367,
                    508:       367,  375,  375,  382,  382,  383,  383,  340,  340,    0,
                    509:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    510:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    511:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    512:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    513:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    514:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    515: 
                    516:       340,  340,  340
                    517:     } ;
                    518: 
                    519: static const short int yy_nxt[1486] =
                    520:     {   0,
                    521:        46,   47,   48,   47,   47,   46,   46,   46,   49,   46,
                    522:        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
                    523:        46,   46,   50,   50,   50,   50,   50,   50,   50,   50,
                    524:        50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
                    525:        46,   46,   46,   46,   51,   52,   51,   51,   46,   53,
                    526:        46,   54,   46,   46,   46,   46,   46,   55,   46,   46,
                    527:        46,   46,   46,   46,   46,   56,   56,   56,   56,   56,
                    528:        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
                    529:        56,   56,   56,   46,   46,   46,   58,   59,   58,   58,
                    530:        60,  188,   61,  181,  181,   62,   62,   96,  339,   62,
                    531: 
                    532:        97,   63,   85,   64,   65,   82,   83,   82,   82,   82,
                    533:        83,   82,   82,  104,   98,  119,  182,  182,  206,  105,
                    534:       106,   96,   91,  189,   97,   66,   62,   67,   68,   67,
                    535:        67,   60,   92,   61,   69,   93,   62,   62,   98,   85,
                    536:        62,  207,   63,   85,   64,   65,   85,   70,  176,  176,
                    537:       100,  176,  179,  263,  104,  120,  101,  100,  102,  338,
                    538:       105,  106,   94,  101,  337,  102,   66,   62,   75,   75,
                    539:        76,   75,   75,   75,   75,   75,   75,   75,   75,   75,
                    540:        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
                    541:        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
                    542: 
                    543:        77,   77,   78,   77,   77,   77,   77,   79,   75,   75,
                    544:        75,   84,   84,   85,   84,   84,   84,   84,   84,   84,
                    545:        84,   84,   84,   86,   84,   84,   84,   84,   87,   84,
                    546:        84,   84,   84,   88,   88,   88,   88,   88,   88,   88,
                    547:        88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
                    548:        88,   84,   84,   84,   91,  128,  122,  122,  129,  125,
                    549:       125,  213,  336,  181,   92,  123,  123,   93,  126,  126,
                    550:       128,  214,  130,  129,  144,  145,  144,  144,  179,  263,
                    551:       335,  146,  153,  154,  153,  153,  182,  130,  157,  158,
                    552:       157,  157,  147,  334,   94,  107,  107,  108,  107,  107,
                    553: 
                    554:       109,  107,  107,  107,  110,  107,  107,  107,  107,  111,
                    555:       107,  107,  107,  107,  107,  107,  107,  112,  112,  112,
                    556:       112,  112,  112,  112,  112,  112,  112,  112,  112,  113,
                    557:       112,  112,  112,  112,  114,  115,  107,  116,  119,  139,
                    558:       140,  139,  139,  201,  241,  201,  201,  228,  241,  228,
                    559:       228,  179,  263,  235,  229,  235,  235,  238,  333,  238,
                    560:       238,  243,  254,  243,  243,  255,  247,  242,  247,  247,
                    561:       332,  242,  141,  331,  330,  244,  329,  142,  120,  131,
                    562:       132,  133,  132,  132,  131,  131,  131,  134,  131,  131,
                    563:       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
                    564: 
                    565:       131,  135,  135,  135,  135,  135,  135,  135,  135,  135,
                    566:       135,  135,  135,  136,  135,  135,  135,  135,  137,  131,
                    567:       131,  131,  139,  140,  139,  139,  172,  173,  172,  172,
                    568:       213,  328,  327,  174,  186,  187,  186,  186,  326,  325,
                    569:       214,  174,  153,  154,  153,  153,  245,  246,  245,  245,
                    570:       157,  158,  157,  157,  249,  141,  249,  249,  324,  323,
                    571:       142,  149,  145,  149,  149,  322,  175,  251,  150,  251,
                    572:       251,  264,  321,  302,  175,  151,  178,  179,  263,  152,
                    573:       162,  245,  246,  245,  253,  201,  320,  201,  201,  228,
                    574:       317,  228,  228,  316,  265,  163,  229,  164,  235,  163,
                    575: 
                    576:       235,  235,  163,  315,  163,  163,  164,  165,  166,  167,
                    577:       168,  294,  169,  183,  183,  240,  183,  183,  183,  183,
                    578:       183,  183,  183,  183,  183,  183,  183,  183,  184,  183,
                    579:       183,  183,  183,  183,  183,  185,  185,  185,  185,  185,
                    580:       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
                    581:       185,  185,  185,  183,  183,  183,  172,  173,  172,  172,
                    582:       313,  312,  311,  174,  186,  187,  186,  186,  310,  282,
                    583:       238,  174,  238,  238,  289,  290,  289,  289,  243,  309,
                    584:       243,  243,  245,  246,  245,  245,  247,  308,  247,  247,
                    585:       205,  249,  244,  249,  249,  275,  175,  269,  251,  269,
                    586: 
                    587:       251,  251,  306,  305,  175,  180,  269,  269,  269,  269,
                    588:       269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
                    589:       269,  269,  269,  269,  301,  261,  270,  274,  274,  275,
                    590:       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
                    591:       274,  274,  274,  274,  274,  274,  274,  274,  274,  276,
                    592:       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
                    593:       276,  276,  276,  276,  276,  276,  276,  274,  274,  274,
                    594:       283,  283,  258,  283,  283,  283,  283,  283,  283,  283,
                    595:       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
                    596:       283,  283,  284,  284,  284,  284,  284,  284,  284,  284,
                    597: 
                    598:       284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
                    599:       283,  283,  283,  296,  297,  296,  296,  303,  299,  318,
                    600:       298,  179,  263,  179,  263,  303,  303,  303,  303,  303,
                    601:       303,  289,  290,  289,  289,  296,  297,  296,  296,  319,
                    602:       294,  244,  291,  288,  287,  286,  285,  319,  319,  319,
                    603:       319,  319,  319,   57,   57,   57,   57,   57,   57,   57,
                    604:        57,   57,   57,   57,   57,   57,   71,   71,   71,   71,
                    605:        71,   71,   71,   71,   71,   71,   71,   71,   71,   73,
                    606:        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
                    607:        73,   73,   81,   81,   81,   81,   81,   81,   81,   81,
                    608: 
                    609:        81,   81,   81,   81,   81,   85,   85,   85,   85,   85,
                    610:        85,   85,   85,   85,   85,   85,   85,   85,   90,   90,
                    611:        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
                    612:        90,   95,   95,   95,   95,   95,   95,   95,   95,   95,
                    613:        95,   95,   95,   95,   99,   99,   99,   99,   99,   99,
                    614:        99,   99,   99,   99,   99,   99,   99,  103,  103,  103,
                    615:       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
                    616:       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
                    617:       117,  117,  117,  121,  121,  121,  121,  121,  121,  121,
                    618:       121,  121,  121,  121,  121,  121,  124,  124,  124,  124,
                    619: 
                    620:       124,  124,  124,  124,  124,  124,  124,  124,  124,  127,
                    621:       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
                    622:       127,  127,  138,  138,  138,  138,  138,  138,  138,  138,
                    623:       138,  138,  138,  138,  138,  143,  143,  143,  143,  143,
                    624:       143,  143,  143,  143,  143,  143,  143,  143,  148,  148,
                    625:       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
                    626:       148,  156,  156,  230,  282,  156,  156,  159,  159,  159,
                    627:       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
                    628:       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
                    629:       161,  161,  171,  171,  220,  280,  171,  171,  178,  178,
                    630: 
                    631:       279,  178,  178,  178,  178,  178,  178,  277,  178,  178,
                    632:       178,  180,  180,  204,  180,  180,  180,  180,  180,  180,
                    633:       180,  180,  180,  180,  190,  190,  190,  190,  190,  190,
                    634:       190,  190,  190,  190,  190,  190,  190,  192,  273,  272,
                    635:       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
                    636:       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
                    637:       193,  193,  193,  195,  195,  194,  195,  195,  195,  195,
                    638:       195,  195,  195,  191,  266,  195,  196,  196,  262,  261,
                    639:       196,  196,  200,  200,  259,  200,  200,  200,  200,  200,
                    640:       200,  200,  200,  200,  200,  203,  203,  258,  250,  203,
                    641: 
                    642:       203,  205,  205,  160,  205,  205,  205,  205,  205,  205,
                    643:       205,  205,  205,  205,  208,  208,  244,  208,  208,  208,
                    644:       208,  208,  208,  208,  208,  208,  208,  210,  210,  239,
                    645:       210,  210,  210,  210,  210,  210,  239,  210,  210,  210,
                    646:       211,  211,  237,  236,  233,  211,  211,  211,  211,  211,
                    647:       212,  212,  232,  212,  212,  212,  212,  212,  212,  212,
                    648:       212,  212,  212,  216,  216,  230,  224,  216,  216,  219,
                    649:       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
                    650:       219,  219,  221,  221,  222,  221,  221,  220,  221,  221,
                    651:       221,  221,  221,  221,  221,  223,  223,  218,  223,  223,
                    652: 
                    653:       217,  223,  223,  223,  223,  223,  223,  223,  225,  225,
                    654:       215,  209,  225,  225,  225,  225,  204,  225,  225,  225,
                    655:       225,  226,  226,  202,  226,  226,  226,  226,  226,  226,
                    656:       226,  226,  226,  226,  227,  227,  199,  227,  227,  227,
                    657:       227,  227,  227,  227,  198,  197,  227,  231,  231,  194,
                    658:       191,  231,  231,  234,  179,  177,  234,  234,  234,  234,
                    659:       234,  234,  234,  234,  234,  234,  240,  240,  170,  240,
                    660:       240,  240,  240,  240,  240,  240,  240,  240,  240,  248,
                    661:       248,  160,  248,  248,  248,  248,  248,  248,  248,  248,
                    662:       248,  248,  252,  252,  256,  256,  257,  257,  257,  257,
                    663: 
                    664:       257,  257,  257,  257,  257,  257,  257,  257,  257,  260,
                    665:       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
                    666:       260,  260,  267,  155,  340,  118,  267,  268,  268,  118,
                    667:       268,  268,  268,  268,  268,  268,  268,  268,  268,  271,
                    668:       271,   89,  271,  271,  271,  271,  271,  271,  271,  271,
                    669:       271,  271,  278,   89,   80,   74,  278,  281,  281,  281,
                    670:       281,  281,  281,  281,  281,  281,  281,  281,  281,  281,
                    671:       292,   74,   72,   72,  292,  293,  293,  293,  293,  293,
                    672:       293,  293,  293,  293,  293,  293,  293,  293,  295,  295,
                    673:       340,  340,  295,  295,  300,  300,  340,  340,  300,  300,
                    674: 
                    675:       304,  340,  340,  340,  304,  276,  276,  276,  276,  276,
                    676:       276,  276,  276,  276,  276,  276,  276,  276,  307,  340,
                    677:       340,  340,  307,  284,  284,  340,  284,  284,  284,  284,
                    678:       284,  284,  284,  284,  284,  284,  314,  340,  340,  340,
                    679:       314,   45,  340,  340,  340,  340,  340,  340,  340,  340,
                    680:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    681:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    682:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    683:       340,  340,  340,  340,  340
                    684:     } ;
                    685: 
                    686: static const short int yy_chk[1486] =
                    687:     {   0,
                    688:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    689:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    690:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    691:         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
                    692:         1,    1,    1,    2,    2,    2,    2,    2,    2,    2,
                    693:         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
                    694:         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
                    695:         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
                    696:         2,    2,    2,    2,    2,    2,    3,    3,    3,    3,
                    697:         3,   69,    3,   65,   98,    3,    3,   19,  329,    3,
                    698: 
                    699:        19,    3,   23,    3,    3,   11,   11,   11,   11,   12,
                    700:        12,   12,   12,   23,   19,   29,   65,   98,  101,   23,
                    701:        23,   20,   17,   69,   20,    3,    3,    4,    4,    4,
                    702:         4,    4,   17,    4,    4,   17,    4,    4,   20,   21,
                    703:         4,  101,    4,   24,    4,    4,   22,    4,   61,   61,
                    704:        21,   61,  178,  178,   24,   29,   21,   22,   21,  328,
                    705:        24,   24,   17,   22,  327,   22,    4,    4,    9,    9,
                    706:         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
                    707:         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
                    708:         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
                    709: 
                    710:         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
                    711:         9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
                    712:        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
                    713:        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
                    714:        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
                    715:        13,   13,   13,   13,   18,   35,   31,   32,   35,   33,
                    716:        34,  110,  326,  105,   18,   31,   32,   18,   33,   34,
                    717:        36,  110,   35,   36,   43,   43,   43,   43,  318,  318,
                    718:       325,   43,   47,   47,   47,   47,  105,   36,   51,   51,
                    719:        51,   51,   43,  324,   18,   25,   25,   25,   25,   25,
                    720: 
                    721:        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
                    722:        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
                    723:        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
                    724:        25,   25,   25,   25,   25,   25,   25,   25,   30,   39,
                    725:        39,   39,   39,   82,  147,   82,   82,  132,  152,  132,
                    726:       132,  319,  319,  139,  132,  139,  139,  144,  323,  144,
                    727:       144,  149,  167,  149,  149,  167,  161,  147,  161,  161,
                    728:       322,  152,   39,  321,  320,  149,  317,   39,   30,   37,
                    729:        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
                    730:        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
                    731: 
                    732:        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
                    733:        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
                    734:        37,   37,   40,   40,   40,   40,   58,   58,   58,   58,
                    735:       212,  315,  313,   58,   67,   67,   67,   67,  312,  311,
                    736:       212,   67,  153,  153,  153,  153,  155,  155,  155,  155,
                    737:       157,  157,  157,  157,  162,   40,  162,  162,  310,  309,
                    738:        40,   44,   44,   44,   44,  308,   58,  164,   44,  164,
                    739:       164,  179,  306,  264,   67,   44,  179,  264,  264,   44,
                    740:        54,  166,  166,  166,  166,  201,  305,  201,  201,  228,
                    741:       301,  228,  228,  299,  179,   54,  228,   54,  235,   54,
                    742: 
                    743:       235,  235,   54,  298,   54,   54,   54,   54,   54,   54,
                    744:        54,  293,   54,   66,   66,  291,   66,   66,   66,   66,
                    745:        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
                    746:        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
                    747:        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
                    748:        66,   66,   66,   66,   66,   66,  172,  172,  172,  172,
                    749:       288,  287,  286,  172,  186,  186,  186,  186,  285,  281,
                    750:       238,  186,  238,  238,  239,  239,  239,  239,  243,  280,
                    751:       243,  243,  245,  245,  245,  245,  247,  279,  247,  247,
                    752:       277,  249,  243,  249,  249,  276,  172,  185,  251,  185,
                    753: 
                    754:       251,  251,  273,  272,  186,  266,  185,  185,  185,  185,
                    755:       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
                    756:       185,  185,  185,  185,  262,  260,  185,  199,  199,  199,
                    757:       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
                    758:       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
                    759:       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
                    760:       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
                    761:       230,  230,  257,  230,  230,  230,  230,  230,  230,  230,
                    762:       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
                    763:       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
                    764: 
                    765:       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
                    766:       230,  230,  230,  253,  253,  253,  253,  265,  255,  302,
                    767:       254,  265,  265,  302,  302,  265,  265,  265,  265,  265,
                    768:       265,  289,  289,  289,  289,  296,  296,  296,  296,  303,
                    769:       250,  244,  241,  237,  236,  233,  232,  303,  303,  303,
                    770:       303,  303,  303,  341,  341,  341,  341,  341,  341,  341,
                    771:       341,  341,  341,  341,  341,  341,  342,  342,  342,  342,
                    772:       342,  342,  342,  342,  342,  342,  342,  342,  342,  343,
                    773:       343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
                    774:       343,  343,  344,  344,  344,  344,  344,  344,  344,  344,
                    775: 
                    776:       344,  344,  344,  344,  344,  345,  345,  345,  345,  345,
                    777:       345,  345,  345,  345,  345,  345,  345,  345,  346,  346,
                    778:       346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
                    779:       346,  347,  347,  347,  347,  347,  347,  347,  347,  347,
                    780:       347,  347,  347,  347,  348,  348,  348,  348,  348,  348,
                    781:       348,  348,  348,  348,  348,  348,  348,  349,  349,  349,
                    782:       349,  349,  349,  349,  349,  349,  349,  349,  349,  349,
                    783:       350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
                    784:       350,  350,  350,  351,  351,  351,  351,  351,  351,  351,
                    785:       351,  351,  351,  351,  351,  351,  352,  352,  352,  352,
                    786: 
                    787:       352,  352,  352,  352,  352,  352,  352,  352,  352,  353,
                    788:       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
                    789:       353,  353,  354,  354,  354,  354,  354,  354,  354,  354,
                    790:       354,  354,  354,  354,  354,  355,  355,  355,  355,  355,
                    791:       355,  355,  355,  355,  355,  355,  355,  355,  356,  356,
                    792:       356,  356,  356,  356,  356,  356,  356,  356,  356,  356,
                    793:       356,  357,  357,  229,  222,  357,  357,  358,  358,  358,
                    794:       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
                    795:       359,  359,  359,  359,  359,  359,  359,  359,  359,  359,
                    796:       359,  359,  360,  360,  219,  218,  360,  360,  361,  361,
                    797: 
                    798:       217,  361,  361,  361,  361,  361,  361,  206,  361,  361,
                    799:       361,  362,  362,  204,  362,  362,  362,  362,  362,  362,
                    800:       362,  362,  362,  362,  363,  363,  363,  363,  363,  363,
                    801:       363,  363,  363,  363,  363,  363,  363,  364,  198,  197,
                    802:       364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
                    803:       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
                    804:       365,  365,  365,  366,  366,  193,  366,  366,  366,  366,
                    805:       366,  366,  366,  190,  181,  366,  367,  367,  177,  175,
                    806:       367,  367,  368,  368,  174,  368,  368,  368,  368,  368,
                    807:       368,  368,  368,  368,  368,  369,  369,  169,  163,  369,
                    808: 
                    809:       369,  370,  370,  159,  370,  370,  370,  370,  370,  370,
                    810:       370,  370,  370,  370,  371,  371,  151,  371,  371,  371,
                    811:       371,  371,  371,  371,  371,  371,  371,  372,  372,  150,
                    812:       372,  372,  372,  372,  372,  372,  146,  372,  372,  372,
                    813:       373,  373,  142,  141,  137,  373,  373,  373,  373,  373,
                    814:       374,  374,  136,  374,  374,  374,  374,  374,  374,  374,
                    815:       374,  374,  374,  375,  375,  134,  126,  375,  375,  376,
                    816:       376,  376,  376,  376,  376,  376,  376,  376,  376,  376,
                    817:       376,  376,  377,  377,  123,  377,  377,  117,  377,  377,
                    818:       377,  377,  377,  377,  377,  378,  378,  114,  378,  378,
                    819: 
                    820:       113,  378,  378,  378,  378,  378,  378,  378,  379,  379,
                    821:       111,  102,  379,  379,  379,  379,   93,  379,  379,  379,
                    822:       379,  380,  380,   87,  380,  380,  380,  380,  380,  380,
                    823:       380,  380,  380,  380,  381,  381,   80,  381,  381,  381,
                    824:       381,  381,  381,  381,   79,   78,  381,  382,  382,   73,
                    825:        71,  382,  382,  383,   64,   63,  383,  383,  383,  383,
                    826:       383,  383,  383,  383,  383,  383,  384,  384,   55,  384,
                    827:       384,  384,  384,  384,  384,  384,  384,  384,  384,  385,
                    828:       385,   53,  385,  385,  385,  385,  385,  385,  385,  385,
                    829:       385,  385,  386,  386,  387,  387,  388,  388,  388,  388,
                    830: 
                    831:       388,  388,  388,  388,  388,  388,  388,  388,  388,  389,
                    832:       389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
                    833:       389,  389,  390,   49,   45,   28,  390,  391,  391,   27,
                    834:       391,  391,  391,  391,  391,  391,  391,  391,  391,  392,
                    835:       392,   16,  392,  392,  392,  392,  392,  392,  392,  392,
                    836:       392,  392,  393,   15,   10,    8,  393,  394,  394,  394,
                    837:       394,  394,  394,  394,  394,  394,  394,  394,  394,  394,
                    838:       395,    7,    6,    5,  395,  396,  396,  396,  396,  396,
                    839:       396,  396,  396,  396,  396,  396,  396,  396,  397,  397,
                    840:         0,    0,  397,  397,  398,  398,    0,    0,  398,  398,
                    841: 
                    842:       399,    0,    0,    0,  399,  400,  400,  400,  400,  400,
                    843:       400,  400,  400,  400,  400,  400,  400,  400,  401,    0,
                    844:         0,    0,  401,  402,  402,    0,  402,  402,  402,  402,
                    845:       402,  402,  402,  402,  402,  402,  403,    0,    0,    0,
                    846:       403,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    847:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    848:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    849:       340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
                    850:       340,  340,  340,  340,  340
                    851:     } ;
                    852: 
                    853: static yy_state_type yy_last_accepting_state;
                    854: static YY_CHAR *yy_last_accepting_cpos;
                    855: 
                    856: /* the intent behind this definition is that it'll catch
                    857:  * any uses of REJECT which flex missed
                    858:  */
                    859: #define REJECT reject_used_but_not_detected
                    860: #define yymore() yymore_used_but_not_detected
                    861: #define YY_MORE_ADJ 0
                    862: 
                    863: /* these variables are all declared out here so that section 3 code can
                    864:  * manipulate them
                    865:  */
                    866: /* points to current character in buffer */
                    867: static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
                    868: static int yy_init = 1;                /* whether we need to initialize */
                    869: static int yy_start = 0;       /* start state number */
                    870: 
                    871: /* flag which is used to allow yywrap()'s to do buffer switches
                    872:  * instead of setting up a fresh yyin.  A bit of a hack ...
                    873:  */
                    874: static int yy_did_buffer_switch_on_eof;
                    875: 
                    876: static yy_state_type yy_get_previous_state YY_PROTO(( void ));
                    877: static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
                    878: static int yy_get_next_buffer YY_PROTO(( void ));
                    879: static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
                    880: void yyrestart YY_PROTO(( FILE *input_file ));
                    881: void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
                    882: void yy_load_buffer_state YY_PROTO(( void ));
                    883: YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
                    884: void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
                    885: void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
                    886: 
                    887: #define yy_new_buffer yy_create_buffer
                    888: 
                    889: #ifdef __cplusplus
                    890: static int yyinput YY_PROTO(( void ));
                    891: #else
                    892: static int input YY_PROTO(( void ));
                    893: #endif
                    894: 
                    895: YY_DECL
                    896:     {
                    897:     register yy_state_type yy_current_state;
                    898:     register YY_CHAR *yy_cp, *yy_bp;
                    899:     register int yy_act;
                    900: 
                    901: 
                    902:     static int bracelevel, didadef;
                    903:     int i, indented_code, checking_used, new_xlation;
                    904:     int doing_codeblock = false;
                    905:     Char nmdef[MAXLINE], myesc();
                    906: 
                    907: 
                    908:     if ( yy_init )
                    909:        {
                    910:        YY_USER_INIT;
                    911: 
                    912:        if ( ! yy_start )
                    913:            yy_start = 1;       /* first start state */
                    914: 
                    915:        if ( ! yyin )
                    916:            yyin = stdin;
                    917: 
                    918:        if ( ! yyout )
                    919:            yyout = stdout;
                    920: 
                    921:        if ( yy_current_buffer )
                    922:            yy_init_buffer( yy_current_buffer, yyin );
                    923:        else
                    924:            yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
                    925: 
                    926:        yy_load_buffer_state();
                    927: 
                    928:        yy_init = 0;
                    929:        }
                    930: 
                    931:     while ( 1 )                /* loops until end-of-file is reached */
                    932:        {
                    933:        yy_cp = yy_c_buf_p;
                    934: 
                    935:        /* support of yytext */
                    936:        *yy_cp = yy_hold_char;
                    937: 
                    938:        /* yy_bp points to the position in yy_ch_buf of the start of the
                    939:         * current run.
                    940:         */
                    941:        yy_bp = yy_cp;
                    942: 
                    943:        yy_current_state = yy_start;
                    944:        if ( yy_bp[-1] == '\n' )
                    945:            ++yy_current_state;
                    946: yy_match:
                    947:        do
                    948:            {
                    949:            register YY_CHAR yy_c = yy_ec[*yy_cp];
                    950:            if ( yy_accept[yy_current_state] )
                    951:                {
                    952:                yy_last_accepting_state = yy_current_state;
                    953:                yy_last_accepting_cpos = yy_cp;
                    954:                }
                    955:            while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                    956:                {
                    957:                yy_current_state = yy_def[yy_current_state];
                    958:                if ( yy_current_state >= 341 )
                    959:                    yy_c = yy_meta[yy_c];
                    960:                }
                    961:            yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                    962:            ++yy_cp;
                    963:            }
                    964:        while ( yy_current_state != 340 );
                    965:        yy_cp = yy_last_accepting_cpos;
                    966:        yy_current_state = yy_last_accepting_state;
                    967: 
                    968: yy_find_action:
                    969:        yy_act = yy_accept[yy_current_state];
                    970: 
                    971:        YY_DO_BEFORE_ACTION;
                    972:        YY_USER_ACTION;
                    973: 
                    974: do_action:     /* this label is used only to access EOF actions */
                    975: 
                    976: 
                    977:        switch ( yy_act )
                    978:            {
                    979:            case 0: /* must backtrack */
                    980:            /* undo the effects of YY_DO_BEFORE_ACTION */
                    981:            *yy_cp = yy_hold_char;
                    982:            yy_cp = yy_last_accepting_cpos;
                    983:            yy_current_state = yy_last_accepting_state;
                    984:            goto yy_find_action;
                    985: 
                    986: case 1:
                    987: # line 91 "scan.l"
                    988: indented_code = true; BEGIN(CODEBLOCK);
                    989:        YY_BREAK
                    990: case 2:
                    991: # line 92 "scan.l"
                    992: ++linenum; /* treat as a comment */
                    993:        YY_BREAK
                    994: case 3:
                    995: # line 93 "scan.l"
                    996: ECHO; BEGIN(C_COMMENT);
                    997:        YY_BREAK
                    998: case 4:
                    999: # line 94 "scan.l"
                   1000: return ( SCDECL );
                   1001:        YY_BREAK
                   1002: case 5:
                   1003: # line 95 "scan.l"
                   1004: return ( XSCDECL );
                   1005:        YY_BREAK
                   1006: case 6:
                   1007: # line 96 "scan.l"
                   1008: {
                   1009:                        ++linenum;
                   1010:                        line_directive_out( stdout );
                   1011:                        indented_code = false;
                   1012:                        BEGIN(CODEBLOCK);
                   1013:                        }
                   1014:        YY_BREAK
                   1015: case 7:
                   1016: # line 103 "scan.l"
                   1017: return ( WHITESPACE );
                   1018:        YY_BREAK
                   1019: case 8:
                   1020: # line 105 "scan.l"
                   1021: {
                   1022:                        sectnum = 2;
                   1023:                        line_directive_out( stdout );
                   1024:                        BEGIN(SECT2PROLOG);
                   1025:                        return ( SECTEND );
                   1026:                        }
                   1027:        YY_BREAK
                   1028: case 9:
                   1029: # line 112 "scan.l"
                   1030: {
                   1031:        pinpoint_message( "warning - %%used/%%unused have been deprecated" );
                   1032:                        checking_used = REALLY_USED; BEGIN(USED_LIST);
                   1033:                        }
                   1034:        YY_BREAK
                   1035: case 10:
                   1036: # line 116 "scan.l"
                   1037: {
                   1038:                        checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
                   1039:        pinpoint_message( "warning - %%used/%%unused have been deprecated" );
                   1040:                        checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
                   1041:                        }
                   1042:        YY_BREAK
                   1043: case 11:
                   1044: # line 123 "scan.l"
                   1045: {
                   1046: #ifdef NOTDEF
                   1047:                        fprintf( stderr,
                   1048:                             "old-style lex command at line %d ignored:\n\t%s",
                   1049:                                 linenum, yytext );
                   1050: #endif
                   1051:                        ++linenum;
                   1052:                        }
                   1053:        YY_BREAK
                   1054: case 12:
                   1055: # line 132 "scan.l"
                   1056: /* ignore old lex directive */
                   1057:        YY_BREAK
                   1058: case 13:
                   1059: # line 134 "scan.l"
                   1060: {
                   1061:                        ++linenum;
                   1062:                        xlation =
                   1063:                            (int *) malloc( sizeof( int ) * (unsigned) csize );
                   1064: 
                   1065:                        if ( ! xlation )
                   1066:                            flexfatal(
                   1067:                                "dynamic memory failure building %t table" );
                   1068: 
                   1069:                        for ( i = 0; i < csize; ++i )
                   1070:                            xlation[i] = 0;
                   1071: 
                   1072:                        num_xlations = 0;
                   1073: 
                   1074:                        BEGIN(XLATION);
                   1075:                        }
                   1076:        YY_BREAK
                   1077: case 14:
                   1078: # line 151 "scan.l"
                   1079: synerr( "unrecognized '%' directive" );
                   1080:        YY_BREAK
                   1081: case 15:
                   1082: # line 153 "scan.l"
                   1083: {
                   1084:                        (void) strcpy( nmstr, (char *) yytext );
                   1085:                        didadef = false;
                   1086:                        BEGIN(PICKUPDEF);
                   1087:                        }
                   1088:        YY_BREAK
                   1089: case 16:
                   1090: # line 159 "scan.l"
                   1091: RETURNNAME;
                   1092:        YY_BREAK
                   1093: case 17:
                   1094: # line 160 "scan.l"
                   1095: ++linenum; /* allows blank lines in section 1 */
                   1096:        YY_BREAK
                   1097: case 18:
                   1098: # line 161 "scan.l"
                   1099: ++linenum; return ( '\n' );
                   1100:        YY_BREAK
                   1101: case 19:
                   1102: # line 162 "scan.l"
                   1103: synerr( "illegal character" ); BEGIN(RECOVER);
                   1104:        YY_BREAK
                   1105: case 20:
                   1106: # line 165 "scan.l"
                   1107: ECHO; BEGIN(INITIAL);
                   1108:        YY_BREAK
                   1109: case 21:
                   1110: # line 166 "scan.l"
                   1111: ++linenum; ECHO; BEGIN(INITIAL);
                   1112:        YY_BREAK
                   1113: case 22:
                   1114: # line 167 "scan.l"
                   1115: ECHO;
                   1116:        YY_BREAK
                   1117: case 23:
                   1118: # line 168 "scan.l"
                   1119: ECHO;
                   1120:        YY_BREAK
                   1121: case 24:
                   1122: # line 169 "scan.l"
                   1123: ++linenum; ECHO;
                   1124:        YY_BREAK
                   1125: case 25:
                   1126: # line 172 "scan.l"
                   1127: ++linenum; BEGIN(INITIAL);
                   1128:        YY_BREAK
                   1129: case 26:
                   1130: # line 173 "scan.l"
                   1131: ECHO; CHECK_REJECT(yytext);
                   1132:        YY_BREAK
                   1133: case 27:
                   1134: # line 174 "scan.l"
                   1135: ECHO; CHECK_YYMORE(yytext);
                   1136:        YY_BREAK
                   1137: case 28:
                   1138: # line 175 "scan.l"
                   1139: ECHO;
                   1140:        YY_BREAK
                   1141: case 29:
                   1142: # line 176 "scan.l"
                   1143: {
                   1144:                        ++linenum;
                   1145:                        ECHO;
                   1146:                        if ( indented_code )
                   1147:                            BEGIN(INITIAL);
                   1148:                        }
                   1149:        YY_BREAK
                   1150: case 30:
                   1151: # line 184 "scan.l"
                   1152: /* separates name and definition */
                   1153:        YY_BREAK
                   1154: case 31:
                   1155: # line 186 "scan.l"
                   1156: {
                   1157:                        (void) strcpy( (char *) nmdef, (char *) yytext );
                   1158: 
                   1159:                        for ( i = strlen( (char *) nmdef ) - 1;
                   1160:                              i >= 0 &&
                   1161:                              nmdef[i] == ' ' || nmdef[i] == '\t';
                   1162:                              --i )
                   1163:                            ;
                   1164: 
                   1165:                        nmdef[i + 1] = '\0';
                   1166: 
                   1167:                         ndinstal( nmstr, nmdef );
                   1168:                        didadef = true;
                   1169:                        }
                   1170:        YY_BREAK
                   1171: case 32:
                   1172: # line 201 "scan.l"
                   1173: {
                   1174:                        if ( ! didadef )
                   1175:                            synerr( "incomplete name definition" );
                   1176:                        BEGIN(INITIAL);
                   1177:                        ++linenum;
                   1178:                        }
                   1179:        YY_BREAK
                   1180: case 33:
                   1181: # line 208 "scan.l"
                   1182: ++linenum; BEGIN(INITIAL); RETURNNAME;
                   1183:        YY_BREAK
                   1184: case 34:
                   1185: # line 211 "scan.l"
                   1186: ++linenum; BEGIN(INITIAL);
                   1187:        YY_BREAK
                   1188: case 35:
                   1189: # line 212 "scan.l"
                   1190: 
                   1191:        YY_BREAK
                   1192: case 36:
                   1193: # line 213 "scan.l"
                   1194: {
                   1195:                        if ( all_upper( yytext ) )
                   1196:                            reject_really_used = checking_used;
                   1197:                        else
                   1198:                            synerr( "unrecognized %used/%unused construct" );
                   1199:                        }
                   1200:        YY_BREAK
                   1201: case 37:
                   1202: # line 219 "scan.l"
                   1203: {
                   1204:                        if ( all_lower( yytext ) )
                   1205:                            yymore_really_used = checking_used;
                   1206:                        else
                   1207:                            synerr( "unrecognized %used/%unused construct" );
                   1208:                        }
                   1209:        YY_BREAK
                   1210: case 38:
                   1211: # line 225 "scan.l"
                   1212: synerr( "unrecognized %used/%unused construct" );
                   1213:        YY_BREAK
                   1214: case 39:
                   1215: # line 228 "scan.l"
                   1216: ++linenum; BEGIN(INITIAL);
                   1217:        YY_BREAK
                   1218: case 40:
                   1219: # line 229 "scan.l"
                   1220: ++num_xlations; new_xlation = true;
                   1221:        YY_BREAK
                   1222: case 41:
                   1223: # line 230 "scan.l"
                   1224: synerr( "bad row in translation table" );
                   1225:        YY_BREAK
                   1226: case 42:
                   1227: # line 231 "scan.l"
                   1228: /* ignore whitespace */
                   1229:        YY_BREAK
                   1230: case 43:
                   1231: # line 233 "scan.l"
                   1232: {
                   1233:                        xlation[myesc( yytext )] =
                   1234:                                (new_xlation ? num_xlations : -num_xlations);
                   1235:                        new_xlation = false;
                   1236:                        }
                   1237:        YY_BREAK
                   1238: case 44:
                   1239: # line 238 "scan.l"
                   1240: {
                   1241:                        xlation[yytext[0]] =
                   1242:                                (new_xlation ? num_xlations : -num_xlations);
                   1243:                        new_xlation = false;
                   1244:                        }
                   1245:        YY_BREAK
                   1246: case 45:
                   1247: # line 244 "scan.l"
                   1248: ++linenum;
                   1249:        YY_BREAK
                   1250: case 46:
                   1251: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1252: yy_c_buf_p = yy_cp -= 1;
                   1253: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1254: # line 247 "scan.l"
                   1255: {
                   1256:                        ++linenum;
                   1257:                        ACTION_ECHO;
                   1258:                        MARK_END_OF_PROLOG;
                   1259:                        BEGIN(SECT2);
                   1260:                        }
                   1261:        YY_BREAK
                   1262: case 47:
                   1263: # line 254 "scan.l"
                   1264: ++linenum; ACTION_ECHO;
                   1265:        YY_BREAK
                   1266: case YY_STATE_EOF(SECT2PROLOG):
                   1267: # line 256 "scan.l"
                   1268: MARK_END_OF_PROLOG; yyterminate();
                   1269:        YY_BREAK
                   1270: case 49:
                   1271: # line 258 "scan.l"
                   1272: ++linenum; /* allow blank lines in section 2 */
                   1273:        YY_BREAK
                   1274: case 50:
                   1275: # line 260 "scan.l"
                   1276: {
                   1277:                        indented_code = (yytext[0] != '%');
                   1278:                        doing_codeblock = true;
                   1279:                        bracelevel = 1;
                   1280: 
                   1281:                        if ( indented_code )
                   1282:                            ACTION_ECHO;
                   1283: 
                   1284:                        BEGIN(CODEBLOCK_2);
                   1285:                        }
                   1286:        YY_BREAK
                   1287: case 51:
                   1288: # line 271 "scan.l"
                   1289: BEGIN(SC); return ( '<' );
                   1290:        YY_BREAK
                   1291: case 52:
                   1292: # line 272 "scan.l"
                   1293: return ( '^' );
                   1294:        YY_BREAK
                   1295: case 53:
                   1296: # line 273 "scan.l"
                   1297: BEGIN(QUOTE); return ( '"' );
                   1298:        YY_BREAK
                   1299: case 54:
                   1300: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1301: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1302: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1303: # line 274 "scan.l"
                   1304: BEGIN(NUM); return ( '{' );
                   1305:        YY_BREAK
                   1306: case 55:
                   1307: # line 275 "scan.l"
                   1308: BEGIN(BRACEERROR);
                   1309:        YY_BREAK
                   1310: case 56:
                   1311: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1312: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1313: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1314: # line 276 "scan.l"
                   1315: return ( '$' );
                   1316:        YY_BREAK
                   1317: case 57:
                   1318: # line 278 "scan.l"
                   1319: {
                   1320:                        bracelevel = 1;
                   1321:                        BEGIN(PERCENT_BRACE_ACTION);
                   1322:                        return ( '\n' );
                   1323:                        }
                   1324:        YY_BREAK
                   1325: case 58:
                   1326: # line 283 "scan.l"
                   1327: continued_action = true; ++linenum; return ( '\n' );
                   1328:        YY_BREAK
                   1329: case 59:
                   1330: # line 285 "scan.l"
                   1331: {
                   1332:                        /* this rule is separate from the one below because
                   1333:                         * otherwise we get variable trailing context, so
                   1334:                         * we can't build the scanner using -{f,F}
                   1335:                         */
                   1336:                        bracelevel = 0;
                   1337:                        continued_action = false;
                   1338:                        BEGIN(ACTION);
                   1339:                        return ( '\n' );
                   1340:                        }
                   1341:        YY_BREAK
                   1342: case 60:
                   1343: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1344: yy_c_buf_p = yy_cp -= 1;
                   1345: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1346: # line 296 "scan.l"
                   1347: {
                   1348:                        bracelevel = 0;
                   1349:                        continued_action = false;
                   1350:                        BEGIN(ACTION);
                   1351:                        return ( '\n' );
                   1352:                        }
                   1353:        YY_BREAK
                   1354: case 61:
                   1355: # line 303 "scan.l"
                   1356: ++linenum; return ( '\n' );
                   1357:        YY_BREAK
                   1358: case 62:
                   1359: # line 305 "scan.l"
                   1360: return ( EOF_OP );
                   1361:        YY_BREAK
                   1362: case 63:
                   1363: # line 307 "scan.l"
                   1364: {
                   1365:                        sectnum = 3;
                   1366:                        BEGIN(SECT3);
                   1367:                        return ( EOF ); /* to stop the parser */
                   1368:                        }
                   1369:        YY_BREAK
                   1370: case 64:
                   1371: # line 313 "scan.l"
                   1372: {
                   1373:                        int cclval;
                   1374: 
                   1375:                        (void) strcpy( nmstr, (char *) yytext );
                   1376: 
                   1377:                        /* check to see if we've already encountered this ccl */
                   1378:                        if ( (cclval = ccllookup( (Char *) nmstr )) )
                   1379:                            {
                   1380:                            yylval = cclval;
                   1381:                            ++cclreuse;
                   1382:                            return ( PREVCCL );
                   1383:                            }
                   1384:                        else
                   1385:                            {
                   1386:                            /* we fudge a bit.  We know that this ccl will
                   1387:                             * soon be numbered as lastccl + 1 by cclinit
                   1388:                             */
                   1389:                            cclinstal( (Char *) nmstr, lastccl + 1 );
                   1390: 
                   1391:                            /* push back everything but the leading bracket
                   1392:                             * so the ccl can be rescanned
                   1393:                             */
                   1394:                            PUT_BACK_STRING((Char *) nmstr, 1);
                   1395: 
                   1396:                            BEGIN(FIRSTCCL);
                   1397:                            return ( '[' );
                   1398:                            }
                   1399:                        }
                   1400:        YY_BREAK
                   1401: case 65:
                   1402: # line 342 "scan.l"
                   1403: {
                   1404:                        register Char *nmdefptr;
                   1405:                        Char *ndlookup();
                   1406: 
                   1407:                        (void) strcpy( nmstr, (char *) yytext );
                   1408:                        nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
                   1409: 
                   1410:                        /* lookup from "nmstr + 1" to chop leading brace */
                   1411:                        if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
                   1412:                            synerr( "undefined {name}" );
                   1413: 
                   1414:                        else
                   1415:                            { /* push back name surrounded by ()'s */
                   1416:                            unput(')');
                   1417:                            PUT_BACK_STRING(nmdefptr, 0);
                   1418:                            unput('(');
                   1419:                            }
                   1420:                        }
                   1421:        YY_BREAK
                   1422: case 66:
                   1423: # line 361 "scan.l"
                   1424: return ( yytext[0] );
                   1425:        YY_BREAK
                   1426: case 67:
                   1427: # line 362 "scan.l"
                   1428: RETURNCHAR;
                   1429:        YY_BREAK
                   1430: case 68:
                   1431: # line 363 "scan.l"
                   1432: ++linenum; return ( '\n' );
                   1433:        YY_BREAK
                   1434: case 69:
                   1435: # line 366 "scan.l"
                   1436: return ( ',' );
                   1437:        YY_BREAK
                   1438: case 70:
                   1439: # line 367 "scan.l"
                   1440: BEGIN(SECT2); return ( '>' );
                   1441:        YY_BREAK
                   1442: case 71:
                   1443: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1444: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1445: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1446: # line 368 "scan.l"
                   1447: BEGIN(CARETISBOL); return ( '>' );
                   1448:        YY_BREAK
                   1449: case 72:
                   1450: # line 369 "scan.l"
                   1451: RETURNNAME;
                   1452:        YY_BREAK
                   1453: case 73:
                   1454: # line 370 "scan.l"
                   1455: synerr( "bad start condition name" );
                   1456:        YY_BREAK
                   1457: case 74:
                   1458: # line 372 "scan.l"
                   1459: BEGIN(SECT2); return ( '^' );
                   1460:        YY_BREAK
                   1461: case 75:
                   1462: # line 375 "scan.l"
                   1463: RETURNCHAR;
                   1464:        YY_BREAK
                   1465: case 76:
                   1466: # line 376 "scan.l"
                   1467: BEGIN(SECT2); return ( '"' );
                   1468:        YY_BREAK
                   1469: case 77:
                   1470: # line 378 "scan.l"
                   1471: {
                   1472:                        synerr( "missing quote" );
                   1473:                        BEGIN(SECT2);
                   1474:                        ++linenum;
                   1475:                        return ( '"' );
                   1476:                        }
                   1477:        YY_BREAK
                   1478: case 78:
                   1479: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1480: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1481: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1482: # line 386 "scan.l"
                   1483: BEGIN(CCL); return ( '^' );
                   1484:        YY_BREAK
                   1485: case 79:
                   1486: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1487: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1488: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1489: # line 387 "scan.l"
                   1490: return ( '^' );
                   1491:        YY_BREAK
                   1492: case 80:
                   1493: # line 388 "scan.l"
                   1494: BEGIN(CCL); yylval = '-'; return ( CHAR );
                   1495:        YY_BREAK
                   1496: case 81:
                   1497: # line 389 "scan.l"
                   1498: BEGIN(CCL); RETURNCHAR;
                   1499:        YY_BREAK
                   1500: case 82:
                   1501: *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
                   1502: yy_c_buf_p = yy_cp = yy_bp + 1;
                   1503: YY_DO_BEFORE_ACTION; /* set up yytext again */
                   1504: # line 391 "scan.l"
                   1505: return ( '-' );
                   1506:        YY_BREAK
                   1507: case 83:
                   1508: # line 392 "scan.l"
                   1509: RETURNCHAR;
                   1510:        YY_BREAK
                   1511: case 84:
                   1512: # line 393 "scan.l"
                   1513: BEGIN(SECT2); return ( ']' );
                   1514:        YY_BREAK
                   1515: case 85:
                   1516: # line 396 "scan.l"
                   1517: {
                   1518:                        yylval = myctoi( yytext );
                   1519:                        return ( NUMBER );
                   1520:                        }
                   1521:        YY_BREAK
                   1522: case 86:
                   1523: # line 401 "scan.l"
                   1524: return ( ',' );
                   1525:        YY_BREAK
                   1526: case 87:
                   1527: # line 402 "scan.l"
                   1528: BEGIN(SECT2); return ( '}' );
                   1529:        YY_BREAK
                   1530: case 88:
                   1531: # line 404 "scan.l"
                   1532: {
                   1533:                        synerr( "bad character inside {}'s" );
                   1534:                        BEGIN(SECT2);
                   1535:                        return ( '}' );
                   1536:                        }
                   1537:        YY_BREAK
                   1538: case 89:
                   1539: # line 410 "scan.l"
                   1540: {
                   1541:                        synerr( "missing }" );
                   1542:                        BEGIN(SECT2);
                   1543:                        ++linenum;
                   1544:                        return ( '}' );
                   1545:                        }
                   1546:        YY_BREAK
                   1547: case 90:
                   1548: # line 418 "scan.l"
                   1549: synerr( "bad name in {}'s" ); BEGIN(SECT2);
                   1550:        YY_BREAK
                   1551: case 91:
                   1552: # line 419 "scan.l"
                   1553: synerr( "missing }" ); ++linenum; BEGIN(SECT2);
                   1554:        YY_BREAK
                   1555: case 92:
                   1556: # line 422 "scan.l"
                   1557: bracelevel = 0;
                   1558:        YY_BREAK
                   1559: case 93:
                   1560: # line 423 "scan.l"
                   1561: {
                   1562:                        ACTION_ECHO;
                   1563:                        CHECK_REJECT(yytext);
                   1564:                        }
                   1565:        YY_BREAK
                   1566: case 94:
                   1567: # line 427 "scan.l"
                   1568: {
                   1569:                        ACTION_ECHO;
                   1570:                        CHECK_YYMORE(yytext);
                   1571:                        }
                   1572:        YY_BREAK
                   1573: case 95:
                   1574: # line 431 "scan.l"
                   1575: ACTION_ECHO;
                   1576:        YY_BREAK
                   1577: case 96:
                   1578: # line 432 "scan.l"
                   1579: {
                   1580:                        ++linenum;
                   1581:                        ACTION_ECHO;
                   1582:                        if ( bracelevel == 0 ||
                   1583:                             (doing_codeblock && indented_code) )
                   1584:                            {
                   1585:                            if ( ! doing_codeblock )
                   1586:                                fputs( "\tYY_BREAK\n", temp_action_file );
                   1587:                            
                   1588:                            doing_codeblock = false;
                   1589:                            BEGIN(SECT2);
                   1590:                            }
                   1591:                        }
                   1592:        YY_BREAK
                   1593:        /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
                   1594: case 97:
                   1595: # line 448 "scan.l"
                   1596: ACTION_ECHO; ++bracelevel;
                   1597:        YY_BREAK
                   1598: case 98:
                   1599: # line 449 "scan.l"
                   1600: ACTION_ECHO; --bracelevel;
                   1601:        YY_BREAK
                   1602: case 99:
                   1603: # line 450 "scan.l"
                   1604: ACTION_ECHO;
                   1605:        YY_BREAK
                   1606: case 100:
                   1607: # line 451 "scan.l"
                   1608: ACTION_ECHO;
                   1609:        YY_BREAK
                   1610: case 101:
                   1611: # line 452 "scan.l"
                   1612: ACTION_ECHO; BEGIN(ACTION_COMMENT);
                   1613:        YY_BREAK
                   1614: case 102:
                   1615: # line 453 "scan.l"
                   1616: ACTION_ECHO; /* character constant */
                   1617:        YY_BREAK
                   1618: case 103:
                   1619: # line 454 "scan.l"
                   1620: ACTION_ECHO; BEGIN(ACTION_STRING);
                   1621:        YY_BREAK
                   1622: case 104:
                   1623: # line 455 "scan.l"
                   1624: {
                   1625:                        ++linenum;
                   1626:                        ACTION_ECHO;
                   1627:                        if ( bracelevel == 0 )
                   1628:                            {
                   1629:                            fputs( "\tYY_BREAK\n", temp_action_file );
                   1630:                            BEGIN(SECT2);
                   1631:                            }
                   1632:                        }
                   1633:        YY_BREAK
                   1634: case 105:
                   1635: # line 464 "scan.l"
                   1636: ACTION_ECHO;
                   1637:        YY_BREAK
                   1638: case 106:
                   1639: # line 466 "scan.l"
                   1640: ACTION_ECHO; BEGIN(ACTION);
                   1641:        YY_BREAK
                   1642: case 107:
                   1643: # line 467 "scan.l"
                   1644: ACTION_ECHO;
                   1645:        YY_BREAK
                   1646: case 108:
                   1647: # line 468 "scan.l"
                   1648: ACTION_ECHO;
                   1649:        YY_BREAK
                   1650: case 109:
                   1651: # line 469 "scan.l"
                   1652: ++linenum; ACTION_ECHO;
                   1653:        YY_BREAK
                   1654: case 110:
                   1655: # line 470 "scan.l"
                   1656: ACTION_ECHO;
                   1657:        YY_BREAK
                   1658: case 111:
                   1659: # line 472 "scan.l"
                   1660: ACTION_ECHO;
                   1661:        YY_BREAK
                   1662: case 112:
                   1663: # line 473 "scan.l"
                   1664: ACTION_ECHO;
                   1665:        YY_BREAK
                   1666: case 113:
                   1667: # line 474 "scan.l"
                   1668: ++linenum; ACTION_ECHO;
                   1669:        YY_BREAK
                   1670: case 114:
                   1671: # line 475 "scan.l"
                   1672: ACTION_ECHO; BEGIN(ACTION);
                   1673:        YY_BREAK
                   1674: case 115:
                   1675: # line 476 "scan.l"
                   1676: ACTION_ECHO;
                   1677:        YY_BREAK
                   1678: case YY_STATE_EOF(ACTION):
                   1679: case YY_STATE_EOF(ACTION_COMMENT):
                   1680: case YY_STATE_EOF(ACTION_STRING):
                   1681: # line 478 "scan.l"
                   1682: {
                   1683:                        synerr( "EOF encountered inside an action" );
                   1684:                        yyterminate();
                   1685:                        }
                   1686:        YY_BREAK
                   1687: case 117:
                   1688: # line 484 "scan.l"
                   1689: {
                   1690:                        yylval = myesc( yytext );
                   1691:                        return ( CHAR );
                   1692:                        }
                   1693:        YY_BREAK
                   1694: case 118:
                   1695: # line 489 "scan.l"
                   1696: {
                   1697:                        yylval = myesc( yytext );
                   1698:                        BEGIN(CCL);
                   1699:                        return ( CHAR );
                   1700:                        }
                   1701:        YY_BREAK
                   1702: case 119:
                   1703: # line 496 "scan.l"
                   1704: ECHO;
                   1705:        YY_BREAK
                   1706: case 120:
                   1707: # line 497 "scan.l"
                   1708: YY_FATAL_ERROR( "flex scanner jammed" );
                   1709:        YY_BREAK
                   1710: case YY_STATE_EOF(INITIAL):
                   1711: case YY_STATE_EOF(SECT2):
                   1712: case YY_STATE_EOF(SECT3):
                   1713: case YY_STATE_EOF(CODEBLOCK):
                   1714: case YY_STATE_EOF(PICKUPDEF):
                   1715: case YY_STATE_EOF(SC):
                   1716: case YY_STATE_EOF(CARETISBOL):
                   1717: case YY_STATE_EOF(NUM):
                   1718: case YY_STATE_EOF(QUOTE):
                   1719: case YY_STATE_EOF(FIRSTCCL):
                   1720: case YY_STATE_EOF(CCL):
                   1721: case YY_STATE_EOF(RECOVER):
                   1722: case YY_STATE_EOF(BRACEERROR):
                   1723: case YY_STATE_EOF(C_COMMENT):
                   1724: case YY_STATE_EOF(PERCENT_BRACE_ACTION):
                   1725: case YY_STATE_EOF(USED_LIST):
                   1726: case YY_STATE_EOF(CODEBLOCK_2):
                   1727: case YY_STATE_EOF(XLATION):
                   1728:     yyterminate();
                   1729: 
                   1730:            case YY_END_OF_BUFFER:
                   1731:                {
                   1732:                /* amount of text matched not including the EOB char */
                   1733:                int yy_amount_of_matched_text = yy_cp - yytext - 1;
                   1734: 
                   1735:                /* undo the effects of YY_DO_BEFORE_ACTION */
                   1736:                *yy_cp = yy_hold_char;
                   1737: 
                   1738:                /* note that here we test for yy_c_buf_p "<=" to the position
                   1739:                 * of the first EOB in the buffer, since yy_c_buf_p will
                   1740:                 * already have been incremented past the NUL character
                   1741:                 * (since all states make transitions on EOB to the end-
                   1742:                 * of-buffer state).  Contrast this with the test in yyinput().
                   1743:                 */
                   1744:                if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
                   1745:                    /* this was really a NUL */
                   1746:                    {
                   1747:                    yy_state_type yy_next_state;
                   1748: 
                   1749:                    yy_c_buf_p = yytext + yy_amount_of_matched_text;
                   1750: 
                   1751:                    yy_current_state = yy_get_previous_state();
                   1752: 
                   1753:                    /* okay, we're now positioned to make the
                   1754:                     * NUL transition.  We couldn't have
                   1755:                     * yy_get_previous_state() go ahead and do it
                   1756:                     * for us because it doesn't know how to deal
                   1757:                     * with the possibility of jamming (and we
                   1758:                     * don't want to build jamming into it because
                   1759:                     * then it will run more slowly)
                   1760:                     */
                   1761: 
                   1762:                    yy_next_state = yy_try_NUL_trans( yy_current_state );
                   1763: 
                   1764:                    yy_bp = yytext + YY_MORE_ADJ;
                   1765: 
                   1766:                    if ( yy_next_state )
                   1767:                        {
                   1768:                        /* consume the NUL */
                   1769:                        yy_cp = ++yy_c_buf_p;
                   1770:                        yy_current_state = yy_next_state;
                   1771:                        goto yy_match;
                   1772:                        }
                   1773: 
                   1774:                    else
                   1775:                        {
                   1776:                            yy_cp = yy_last_accepting_cpos;
                   1777:                            yy_current_state = yy_last_accepting_state;
                   1778:                        goto yy_find_action;
                   1779:                        }
                   1780:                    }
                   1781: 
                   1782:                else switch ( yy_get_next_buffer() )
                   1783:                    {
                   1784:                    case EOB_ACT_END_OF_FILE:
                   1785:                        {
                   1786:                        yy_did_buffer_switch_on_eof = 0;
                   1787: 
                   1788:                        if ( yywrap() )
                   1789:                            {
                   1790:                            /* note: because we've taken care in
                   1791:                             * yy_get_next_buffer() to have set up yytext,
                   1792:                             * we can now set up yy_c_buf_p so that if some
                   1793:                             * total hoser (like flex itself) wants
                   1794:                             * to call the scanner after we return the
                   1795:                             * YY_NULL, it'll still work - another YY_NULL
                   1796:                             * will get returned.
                   1797:                             */
                   1798:                            yy_c_buf_p = yytext + YY_MORE_ADJ;
                   1799: 
                   1800:                            yy_act = YY_STATE_EOF((yy_start - 1) / 2);
                   1801:                            goto do_action;
                   1802:                            }
                   1803: 
                   1804:                        else
                   1805:                            {
                   1806:                            if ( ! yy_did_buffer_switch_on_eof )
                   1807:                                YY_NEW_FILE;
                   1808:                            }
                   1809:                        }
                   1810:                        break;
                   1811: 
                   1812:                    case EOB_ACT_CONTINUE_SCAN:
                   1813:                        yy_c_buf_p = yytext + yy_amount_of_matched_text;
                   1814: 
                   1815:                        yy_current_state = yy_get_previous_state();
                   1816: 
                   1817:                        yy_cp = yy_c_buf_p;
                   1818:                        yy_bp = yytext + YY_MORE_ADJ;
                   1819:                        goto yy_match;
                   1820: 
                   1821:                    case EOB_ACT_LAST_MATCH:
                   1822:                        yy_c_buf_p =
                   1823:                            &yy_current_buffer->yy_ch_buf[yy_n_chars];
                   1824: 
                   1825:                        yy_current_state = yy_get_previous_state();
                   1826: 
                   1827:                        yy_cp = yy_c_buf_p;
                   1828:                        yy_bp = yytext + YY_MORE_ADJ;
                   1829:                        goto yy_find_action;
                   1830:                    }
                   1831:                break;
                   1832:                }
                   1833: 
                   1834:            default:
                   1835: #ifdef FLEX_DEBUG
                   1836:                printf( "action # %d\n", yy_act );
                   1837: #endif
                   1838:                YY_FATAL_ERROR(
                   1839:                        "fatal flex scanner internal error--no action found" );
                   1840:            }
                   1841:        }
                   1842:     }
                   1843: 
                   1844: 
                   1845: /* yy_get_next_buffer - try to read in a new buffer
                   1846:  *
                   1847:  * synopsis
                   1848:  *     int yy_get_next_buffer();
                   1849:  *     
                   1850:  * returns a code representing an action
                   1851:  *     EOB_ACT_LAST_MATCH - 
                   1852:  *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position
                   1853:  *     EOB_ACT_END_OF_FILE - end of file
                   1854:  */
                   1855: 
                   1856: static int yy_get_next_buffer()
                   1857: 
                   1858:     {
                   1859:     register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
                   1860:     register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
                   1861:     register int number_to_move, i;
                   1862:     int ret_val;
                   1863: 
                   1864:     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
                   1865:        YY_FATAL_ERROR(
                   1866:                "fatal flex scanner internal error--end of buffer missed" );
                   1867: 
                   1868:     /* try to read more data */
                   1869: 
                   1870:     /* first move last chars to start of buffer */
                   1871:     number_to_move = yy_c_buf_p - yytext;
                   1872: 
                   1873:     for ( i = 0; i < number_to_move; ++i )
                   1874:        *(dest++) = *(source++);
                   1875: 
                   1876:     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
                   1877:        /* don't do the read, it's not guaranteed to return an EOF,
                   1878:         * just force an EOF
                   1879:         */
                   1880:        yy_n_chars = 0;
                   1881: 
                   1882:     else
                   1883:        {
                   1884:        int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
                   1885: 
                   1886:        if ( num_to_read > YY_READ_BUF_SIZE )
                   1887:            num_to_read = YY_READ_BUF_SIZE;
                   1888: 
                   1889:        else if ( num_to_read <= 0 )
                   1890:            YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
                   1891: 
                   1892:        /* read in more data */
                   1893:        YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
                   1894:                  yy_n_chars, num_to_read );
                   1895:        }
                   1896: 
                   1897:     if ( yy_n_chars == 0 )
                   1898:        {
                   1899:        if ( number_to_move == 1 )
                   1900:            {
                   1901:            ret_val = EOB_ACT_END_OF_FILE;
                   1902:            yy_current_buffer->yy_eof_status = EOF_DONE;
                   1903:            }
                   1904: 
                   1905:        else
                   1906:            {
                   1907:            ret_val = EOB_ACT_LAST_MATCH;
                   1908:            yy_current_buffer->yy_eof_status = EOF_PENDING;
                   1909:            }
                   1910:        }
                   1911: 
                   1912:     else
                   1913:        ret_val = EOB_ACT_CONTINUE_SCAN;
                   1914: 
                   1915:     yy_n_chars += number_to_move;
                   1916:     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
                   1917:     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
                   1918: 
                   1919:     /* yytext begins at the second character in yy_ch_buf; the first
                   1920:      * character is the one which preceded it before reading in the latest
                   1921:      * buffer; it needs to be kept around in case it's a newline, so
                   1922:      * yy_get_previous_state() will have with '^' rules active
                   1923:      */
                   1924: 
                   1925:     yytext = &yy_current_buffer->yy_ch_buf[1];
                   1926: 
                   1927:     return ( ret_val );
                   1928:     }
                   1929: 
                   1930: 
                   1931: /* yy_get_previous_state - get the state just before the EOB char was reached
                   1932:  *
                   1933:  * synopsis
                   1934:  *     yy_state_type yy_get_previous_state();
                   1935:  */
                   1936: 
                   1937: static yy_state_type yy_get_previous_state()
                   1938: 
                   1939:     {
                   1940:     register yy_state_type yy_current_state;
                   1941:     register YY_CHAR *yy_cp;
                   1942: 
                   1943:     register YY_CHAR *yy_bp = yytext;
                   1944: 
                   1945:     yy_current_state = yy_start;
                   1946:     if ( yy_bp[-1] == '\n' )
                   1947:        ++yy_current_state;
                   1948: 
                   1949:     for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
                   1950:        {
                   1951:        register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
                   1952:        if ( yy_accept[yy_current_state] )
                   1953:            {
                   1954:            yy_last_accepting_state = yy_current_state;
                   1955:            yy_last_accepting_cpos = yy_cp;
                   1956:            }
                   1957:        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                   1958:            {
                   1959:            yy_current_state = yy_def[yy_current_state];
                   1960:            if ( yy_current_state >= 341 )
                   1961:                yy_c = yy_meta[yy_c];
                   1962:            }
                   1963:        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                   1964:        }
                   1965: 
                   1966:     return ( yy_current_state );
                   1967:     }
                   1968: 
                   1969: 
                   1970: /* yy_try_NUL_trans - try to make a transition on the NUL character
                   1971:  *
                   1972:  * synopsis
                   1973:  *     next_state = yy_try_NUL_trans( current_state );
                   1974:  */
                   1975: 
                   1976: #ifdef YY_USE_PROTOS
                   1977: static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
                   1978: #else
                   1979: static yy_state_type yy_try_NUL_trans( yy_current_state )
                   1980: register yy_state_type yy_current_state;
                   1981: #endif
                   1982: 
                   1983:     {
                   1984:     register int yy_is_jam;
                   1985:     register YY_CHAR *yy_cp = yy_c_buf_p;
                   1986: 
                   1987:     register YY_CHAR yy_c = 1;
                   1988:     if ( yy_accept[yy_current_state] )
                   1989:        {
                   1990:        yy_last_accepting_state = yy_current_state;
                   1991:        yy_last_accepting_cpos = yy_cp;
                   1992:        }
                   1993:     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                   1994:        {
                   1995:        yy_current_state = yy_def[yy_current_state];
                   1996:        if ( yy_current_state >= 341 )
                   1997:            yy_c = yy_meta[yy_c];
                   1998:        }
                   1999:     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                   2000:     yy_is_jam = (yy_current_state == 340);
                   2001: 
                   2002:     return ( yy_is_jam ? 0 : yy_current_state );
                   2003:     }
                   2004: 
                   2005: 
                   2006: #ifdef YY_USE_PROTOS
                   2007: static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
                   2008: #else
                   2009: static void yyunput( c, yy_bp )
                   2010: YY_CHAR c;
                   2011: register YY_CHAR *yy_bp;
                   2012: #endif
                   2013: 
                   2014:     {
                   2015:     register YY_CHAR *yy_cp = yy_c_buf_p;
                   2016: 
                   2017:     /* undo effects of setting up yytext */
                   2018:     *yy_cp = yy_hold_char;
                   2019: 
                   2020:     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
                   2021:        { /* need to shift things up to make room */
                   2022:        register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
                   2023:        register YY_CHAR *dest =
                   2024:            &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
                   2025:        register YY_CHAR *source =
                   2026:            &yy_current_buffer->yy_ch_buf[number_to_move];
                   2027: 
                   2028:        while ( source > yy_current_buffer->yy_ch_buf )
                   2029:            *--dest = *--source;
                   2030: 
                   2031:        yy_cp += dest - source;
                   2032:        yy_bp += dest - source;
                   2033:        yy_n_chars = yy_current_buffer->yy_buf_size;
                   2034: 
                   2035:        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
                   2036:            YY_FATAL_ERROR( "flex scanner push-back overflow" );
                   2037:        }
                   2038: 
                   2039:     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
                   2040:        yy_cp[-2] = '\n';
                   2041: 
                   2042:     *--yy_cp = c;
                   2043: 
                   2044:     /* note: the formal parameter *must* be called "yy_bp" for this
                   2045:      *       macro to now work correctly
                   2046:      */
                   2047:     YY_DO_BEFORE_ACTION; /* set up yytext again */
                   2048:     }
                   2049: 
                   2050: 
                   2051: #ifdef __cplusplus
                   2052: static int yyinput()
                   2053: #else
                   2054: static int input()
                   2055: #endif
                   2056: 
                   2057:     {
                   2058:     int c;
                   2059:     YY_CHAR *yy_cp = yy_c_buf_p;
                   2060: 
                   2061:     *yy_cp = yy_hold_char;
                   2062: 
                   2063:     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
                   2064:        {
                   2065:        /* yy_c_buf_p now points to the character we want to return.
                   2066:         * If this occurs *before* the EOB characters, then it's a
                   2067:         * valid NUL; if not, then we've hit the end of the buffer.
                   2068:         */
                   2069:        if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
                   2070:            /* this was really a NUL */
                   2071:            *yy_c_buf_p = '\0';
                   2072: 
                   2073:        else
                   2074:            { /* need more input */
                   2075:            yytext = yy_c_buf_p;
                   2076:            ++yy_c_buf_p;
                   2077: 
                   2078:            switch ( yy_get_next_buffer() )
                   2079:                {
                   2080:                case EOB_ACT_END_OF_FILE:
                   2081:                    {
                   2082:                    if ( yywrap() )
                   2083:                        {
                   2084:                        yy_c_buf_p = yytext + YY_MORE_ADJ;
                   2085:                        return ( EOF );
                   2086:                        }
                   2087: 
                   2088:                    YY_NEW_FILE;
                   2089: 
                   2090: #ifdef __cplusplus
                   2091:                    return ( yyinput() );
                   2092: #else
                   2093:                    return ( input() );
                   2094: #endif
                   2095:                    }
                   2096:                    break;
                   2097: 
                   2098:                case EOB_ACT_CONTINUE_SCAN:
                   2099:                    yy_c_buf_p = yytext + YY_MORE_ADJ;
                   2100:                    break;
                   2101: 
                   2102:                case EOB_ACT_LAST_MATCH:
                   2103: #ifdef __cplusplus
                   2104:                    YY_FATAL_ERROR( "unexpected last match in yyinput()" );
                   2105: #else
                   2106:                    YY_FATAL_ERROR( "unexpected last match in input()" );
                   2107: #endif
                   2108:                }
                   2109:            }
                   2110:        }
                   2111: 
                   2112:     c = *yy_c_buf_p;
                   2113:     yy_hold_char = *++yy_c_buf_p;
                   2114: 
                   2115:     return ( c );
                   2116:     }
                   2117: 
                   2118: 
                   2119: #ifdef YY_USE_PROTOS
                   2120: void yyrestart( FILE *input_file )
                   2121: #else
                   2122: void yyrestart( input_file )
                   2123: FILE *input_file;
                   2124: #endif
                   2125: 
                   2126:     {
                   2127:     yy_init_buffer( yy_current_buffer, input_file );
                   2128:     yy_load_buffer_state();
                   2129:     }
                   2130: 
                   2131: 
                   2132: #ifdef YY_USE_PROTOS
                   2133: void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
                   2134: #else
                   2135: void yy_switch_to_buffer( new_buffer )
                   2136: YY_BUFFER_STATE new_buffer;
                   2137: #endif
                   2138: 
                   2139:     {
                   2140:     if ( yy_current_buffer == new_buffer )
                   2141:        return;
                   2142: 
                   2143:     if ( yy_current_buffer )
                   2144:        {
                   2145:        /* flush out information for old buffer */
                   2146:        *yy_c_buf_p = yy_hold_char;
                   2147:        yy_current_buffer->yy_buf_pos = yy_c_buf_p;
                   2148:        yy_current_buffer->yy_n_chars = yy_n_chars;
                   2149:        }
                   2150: 
                   2151:     yy_current_buffer = new_buffer;
                   2152:     yy_load_buffer_state();
                   2153: 
                   2154:     /* we don't actually know whether we did this switch during
                   2155:      * EOF (yywrap()) processing, but the only time this flag
                   2156:      * is looked at is after yywrap() is called, so it's safe
                   2157:      * to go ahead and always set it.
                   2158:      */
                   2159:     yy_did_buffer_switch_on_eof = 1;
                   2160:     }
                   2161: 
                   2162: 
                   2163: #ifdef YY_USE_PROTOS
                   2164: void yy_load_buffer_state( void )
                   2165: #else
                   2166: void yy_load_buffer_state()
                   2167: #endif
                   2168: 
                   2169:     {
                   2170:     yy_n_chars = yy_current_buffer->yy_n_chars;
                   2171:     yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
                   2172:     yyin = yy_current_buffer->yy_input_file;
                   2173:     yy_hold_char = *yy_c_buf_p;
                   2174:     }
                   2175: 
                   2176: 
                   2177: #ifdef YY_USE_PROTOS
                   2178: YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
                   2179: #else
                   2180: YY_BUFFER_STATE yy_create_buffer( file, size )
                   2181: FILE *file;
                   2182: int size;
                   2183: #endif
                   2184: 
                   2185:     {
                   2186:     YY_BUFFER_STATE b;
                   2187: 
                   2188:     b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
                   2189: 
                   2190:     if ( ! b )
                   2191:        YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
                   2192: 
                   2193:     b->yy_buf_size = size;
                   2194: 
                   2195:     /* yy_ch_buf has to be 2 characters longer than the size given because
                   2196:      * we need to put in 2 end-of-buffer characters.
                   2197:      */
                   2198:     b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
                   2199: 
                   2200:     if ( ! b->yy_ch_buf )
                   2201:        YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
                   2202: 
                   2203:     yy_init_buffer( b, file );
                   2204: 
                   2205:     return ( b );
                   2206:     }
                   2207: 
                   2208: 
                   2209: #ifdef YY_USE_PROTOS
                   2210: void yy_delete_buffer( YY_BUFFER_STATE b )
                   2211: #else
                   2212: void yy_delete_buffer( b )
                   2213: YY_BUFFER_STATE b;
                   2214: #endif
                   2215: 
                   2216:     {
                   2217:     if ( b == yy_current_buffer )
                   2218:        yy_current_buffer = (YY_BUFFER_STATE) 0;
                   2219: 
                   2220:     free( (char *) b->yy_ch_buf );
                   2221:     free( (char *) b );
                   2222:     }
                   2223: 
                   2224: 
                   2225: #ifdef YY_USE_PROTOS
                   2226: void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
                   2227: #else
                   2228: void yy_init_buffer( b, file )
                   2229: YY_BUFFER_STATE b;
                   2230: FILE *file;
                   2231: #endif
                   2232: 
                   2233:     {
                   2234:     b->yy_input_file = file;
                   2235: 
                   2236:     /* we put in the '\n' and start reading from [1] so that an
                   2237:      * initial match-at-newline will be true.
                   2238:      */
                   2239: 
                   2240:     b->yy_ch_buf[0] = '\n';
                   2241:     b->yy_n_chars = 1;
                   2242: 
                   2243:     /* we always need two end-of-buffer characters.  The first causes
                   2244:      * a transition to the end-of-buffer state.  The second causes
                   2245:      * a jam in that state.
                   2246:      */
                   2247:     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
                   2248:     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
                   2249: 
                   2250:     b->yy_buf_pos = &b->yy_ch_buf[1];
                   2251: 
                   2252:     b->yy_eof_status = EOF_NOT_SEEN;
                   2253:     }
                   2254: # line 497 "scan.l"
                   2255: 
                   2256: 
                   2257: 
                   2258: int yywrap()
                   2259: 
                   2260:     {
                   2261:     if ( --num_input_files > 0 )
                   2262:        {
                   2263:        set_input_file( *++input_files );
                   2264:        return ( 0 );
                   2265:        }
                   2266: 
                   2267:     else
                   2268:        return ( 1 );
                   2269:     }
                   2270: 
                   2271: 
                   2272: /* set_input_file - open the given file (if NULL, stdin) for scanning */
                   2273: 
                   2274: void set_input_file( file )
                   2275: char *file;
                   2276: 
                   2277:     {
                   2278:     if ( file )
                   2279:        {
                   2280:        infilename = file;
                   2281:        yyin = fopen( infilename, "r" );
                   2282: 
                   2283:        if ( yyin == NULL )
                   2284:            lerrsf( "can't open %s", file );
                   2285:        }
                   2286: 
                   2287:     else
                   2288:        {
                   2289:        yyin = stdin;
                   2290:        infilename = "<stdin>";
                   2291:        }
                   2292:     }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.