www.pudn.com > flex_bingle.rar > initscan-mvs.c


/* A lexical scanner generated by flex */ 
  
/* scanner skeleton version: 
 * $Header: flex.skel,v 2.13 90/05/26 17:24:13 ve 
 */ 
  
#define FLEX_SCANNER 
  
#include  
  
#ifdef __STDC__ 
  
#ifndef DONT_HAVE_STDLIB_H 
#include  
#else 
void *malloc( unsigned ); 
void free( void* ); 
#endif 
  
#define YY_USE_PROTOS 
#define YY_USE_CONST 
#endif 
  
  
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ 
#ifdef c_plusplus 
#ifndef __cplusplus 
#define __cplusplus 
#endif 
#endif 
  
  
#ifdef __cplusplus 
  
#ifndef __STDC__ 
#include  
#endif 
  
#include  
  
/* use prototypes in function declarations */ 
#define YY_USE_PROTOS 
  
/* the "const" storage-class-modifier is valid */ 
#define YY_USE_CONST 
  
#endif 
  
  
#ifdef __TURBOC__ 
#define YY_USE_CONST 
#endif 
  
  
#ifndef YY_USE_CONST 
#define const 
#endif 
  
  
#ifdef YY_USE_PROTOS 
#define YY_PROTO(proto) proto 
#else 
#define YY_PROTO(proto) () 
/* there's no standard place to get these definitions */ 
char *malloc(); 
int free(); 
int read(); 
#endif 
  
  
/* amount of stuff to slurp up with each read */ 
#ifndef YY_READ_BUF_SIZE 
#define YY_READ_BUF_SIZE 8192 
#endif 
  
/* returned upon end-of-file */ 
#define YY_END_TOK 0 
  
/* copy whatever the last rule matched to the standard output */ 
  
/* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */ 
/* this used to be an fputs(), but since the string might contain NUL's, 
 * we now use fwrite() 
 */ 
#define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout ) 
  
/* gets input and stuffs it into "buf".  number of characters read, or YY_NULL, 
 * is returned in "result". 
 */ 
#define YY_INPUT(buf,result,max_size) \ 
        if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ 
            YY_FATAL_ERROR( "read() in flex scanner failed" ); 
#define YY_NULL 0 
  
/* no semi-colon after return; correct usage is to write "yyterminate();" - 
 * we don't want an extra ';' after the "return" because that will cause 
 * some compilers to complain about unreachable statements. 
 */ 
#define yyterminate() return ( YY_NULL ) 
  
/* report a fatal error */ 
  
/* The funky do-while is used to turn this macro definition into 
 * a single C statement (which needs a semi-colon terminator). 
 * This avoids problems with code like: 
 * 
 *      if ( something_happens ) 
 *              YY_FATAL_ERROR( "oops, the something happened" ); 
 *      else 
 *              everything_okay(); 
 * 
 * Prior to using the do-while the compiler would get upset at the 
 * "else" because it interpreted the "if" statement as being all 
 * done when it reached the ';' after the YY_FATAL_ERROR() call. 
 */ 
  
#define YY_FATAL_ERROR(msg) \ 
        do \ 
                { \ 
                (void) fputs( msg, stderr ); \ 
                (void) putc( '\n', stderr ); \ 
                exit( 1 ); \ 
                } \ 
        while ( 0 ) 
  
/* default yywrap function - always treat EOF as an EOF */ 
#define yywrap() 1 
  
/* enter a start condition.  This macro really ought to take a parameter, 
 * but we do it the disgusting crufty way forced on us by the ()-less 
 * definition of BEGIN 
 */ 
#define BEGIN yy_start = 1 + 2 * 
  
/* action number for EOF rule of a given start state */ 
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 
  
/* special action meaning "start processing a new file" */ 
#define YY_NEW_FILE \ 
        do \ 
                { \ 
                yyinbffr( yy_current_buffer, yyin ); \ 
                yyldbfst(); \ 
                } \ 
        while ( 0 ) 
  
/* default declaration of generated scanner - a define so the user can 
 * easily add parameters 
 */ 
#define YY_DECL int yylex YY_PROTO(( void )) 
  
/* code executed at the end of each rule */ 
#define YY_BREAK break; 
  
#define YY_END_OF_BUFFER_CHAR 0 
  
#ifndef YY_BUF_SIZE 
#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */ 
#endif 
  
typedef struct yy_buffer_state *YY_BUFFER_STATE; 
  
#define YY_CHAR unsigned char 
# line 1 "" 
#define INITIAL 0 
/* scan.l - scanner for flex input */ 
# line 5 "" 
/*- 
 * Copyright (c) 1990 The Regents of the University of California. 
 * All rights reserved. 
 * 
 * This code is derived from software contributed to Berkeley by 
 * Vern Paxson. 
 * 
 * The United States Government has rights in this work pursuant 
 * to contract no. DE-AC03-76SF00098 between the United States 
 * Department of Energy and the University of California. 
 * 
 * Redistribution and use in source and binary forms are permitted provided 
 * that: (1) source distributions retain this entire cpyrght notice and 
 * comment, and (2) distributions including binaries display the following 
 * acknowledgement:  ``This product includes software developed by the 
 * University of California, Berkeley and its contributors'' in the 
 * documentation or other materials provided with the distribution and in 
 * all advertising materials mentioning features or use of this software. 
 * Neither the name of the University nor the names of its contributors may 
 * be used to endorse or promote products derived from this software without 
 * specific prior written permission. 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 
 */ 
  
#ifndef lint 
static char rcsid[] = 
    "@(#) $Header: scan.l,v 2.9 90/06/27 23:48:34 vern Exp $ (LBL)"; 
#endif 
  
#undef yywrap 
  
#include  
#include  
  
#define ACTION_ECHO fprintf( tmpactfl, "%s", yytext ) 
#define MARK_END_OF_PROLOG fprintf( tmpactfl, "%%%% end of prolog\n" ); 
  
#undef YY_DECL 
#define YY_DECL \ 
        int flexscan() 
  
#define RETURNCHAR \ 
        yylval = yytext[0]; \ 
        return ( CHAR ); 
  
#define RETURNNAME \ 
        (void) strcpy( nmstr, (char *) yytext ); \ 
        return ( NAME ); 
  
#define PUT_BACK_STRING(str, start) \ 
        for ( i = strlen( (char *) (str) ) - 1; i >= start; --i ) \ 
            unput((str)[i]) 
  
#define CHECK_REJECT(str) \ 
        if ( allupper( str ) ) \ 
            reject = true; 
  
#define CHECK_YYMORE(str) \ 
        if ( alllower( str ) ) \ 
            yymrused = true; 
#define SECT2 1 
#define SECT2PROLOG 2 
#define SECT3 3 
#define CODEBLOCK 4 
#define PICKUPDEF 5 
#define SC 6 
#define CARETISBOL 7 
#define NUM 8 
#define QUOTE 9 
#define FIRSTCCL 10 
#define CCL 11 
#define ACTION 12 
#define RECOVER 13 
#define BRACEERROR 14 
#define C_COMMENT 15 
#define ACTION_COMMENT 16 
#define ACTION_STRING 17 
#define PERCENT_BRACE_ACTION 18 
#define USED_LIST 19 
#define CODEBLOCK_2 20 
#define XLATION 21 
# line 84 "" 
  
/* done after the current pattern has been matched and before the 
 * corresponding action - sets up yytext 
 */ 
#define YY_DO_BEFORE_ACTION \ 
        yytext = yy_bp; \ 
	yyleng = yy_cp - yy_bp; \ 
        yy_hold_char = *yy_cp; \ 
        *yy_cp = '\0'; \ 
        yy_c_buf_p = yy_cp; 
  
#define EOB_ACT_CONTINUE_SCAN 0 
#define EOB_ACT_END_OF_FILE 1 
#define EOB_ACT_LAST_MATCH 2 
  
/* return all but the first 'n' matched characters back to the input stream */ 
#define yyless(n) \ 
        do \ 
                { \ 
                /* undo effects of setting up yytext */ \ 
                *yy_cp = yy_hold_char; \ 
                yy_c_buf_p = yy_cp = yy_bp + n; \ 
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 
                } \ 
        while ( 0 ) 
  
#define unput(c) yyunput( c, yytext ) 
  
  
struct yy_buffer_state 
    { 
    FILE *yy_input_file; 
  
    YY_CHAR *yy_ch_buf;         /* input buffer */ 
    YY_CHAR *yy_buf_pos;        /* current position in input buffer */ 
  
    /* size of input buffer in bytes, not including room for EOB characters*/ 
    int yy_buf_size; 
  
    /* number of characters read into yy_ch_buf, not including EOB characters */ 
    int yy_n_chars; 
  
    int yy_eof_status;          /* whether we've seen an EOF on this buffer */ 
#define EOF_NOT_SEEN 0 
    /* "pending" happens when the EOF has been seen but there's still 
     * some text process 
     */ 
#define EOF_PENDING 1 
#define EOF_DONE 2 
    }; 
  
static YY_BUFFER_STATE yy_current_buffer; 
  
/* we provide macros for accessing buffer states in case in the 
 * future we want to put the buffer states in a more general 
 * "scanner state" 
 */ 
#define YY_CURRENT_BUFFER yy_current_buffer 
  
  
/* yy_hold_char holds the character lost when yytext is formed */ 
static YY_CHAR yy_hold_char; 
  
static int yy_n_chars;          /* number of characters read into yy_ch_buf */ 
  
  
  
#ifndef YY_USER_ACTION 
#define YY_USER_ACTION 
#endif 
  
#ifndef YY_USER_INIT 
#define YY_USER_INIT 
#endif 
  
extern YY_CHAR *yytext; 
extern int yyleng; 
extern FILE *yyin, *yyout; 
  
YY_CHAR *yytext; 
int yyleng; 
  
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; 
  
#define YY_END_OF_BUFFER 121 
typedef int yy_ste_type; 
static const short int yy_accept[341] = 
    {   0, 
        0,    0,    0,    0,    0,    0,  119,  119,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,  121,   19,    7,   18,   19,   16, 
        1,   17,   19,   19,   15,   19,   67,   59,   60,   66, 
       51,   67,   53,   67,   67,   67,   50,   49,   52,   67, 
      120,   47,  119,  119,   28,   29,   28,   28,   28,   28, 
       31,   30,   32,   73,  120,   69,   72,   70,   74,   88, 
       89,   86,   87,   85,   75,   77,   76,   75,   81,   81, 
  
       80,   81,   83,   83,   84,   83,   99,  104,  105,  100, 
      105,  103,  100,  100,   97,   98,  120,   33,   91,   90, 
       22,   24,   23,  107,  109,  108,  111,  113,  114,  115, 
       95,   95,   96,   95,   95,   95,   95,   38,   35,   34, 
       38,   38,   44,   42,   45,   44,   44,   41,   41,   41, 
       41,   40,    7,   18,    0,   16,    1,   17,    3,   14, 
        8,    0,   12,    4,    0,    0,    5,    0,   15,    0, 
        2,   59,   60,    0,    0,    0,   56,    0,    0,   55, 
       55,   54,  117,  117,  117,   50,   49,   63,   50,    0, 
       47,   46,  119,  119,   28,   28,   28,   28,   28,   31, 
  
       30,   72,   71,   85,   78,   79,  118,  118,  118,   82, 
       99,  101,  100,    0,  102,    0,  100,  100,    0,   33, 
       22,   20,  107,  106,  111,  112,   95,   95,   95,   92, 
       95,   95,   95,   38,   35,   38,   38,   42,    0,   43, 
       43,   43,   42,   40,    0,   13,   14,    8,    8,    0, 
       12,    4,    0,    0,    0,    5,    0,    6,    0,   58, 
       57,    0,   64,    0,    0,   55,   55,   65,  117,  117, 
       63,   28,   28,   28,   25,    0,  118,  118,  100,  100, 
        0,   21,   92,   92,   95,   95,   38,   38,    0,   39, 
       43,   43,    0,   11,    4,    0,   11,    0,    0,    5, 
  
        0,    0,    0,  117,   28,   28,  118,  100,  100,   95, 
       95,   38,   38,   43,    0,    9,    0,    0,    0,   28, 
       28,  100,  100,   95,   95,   38,   38,    0,    0,   26, 
       27,   93,   94,   93,   94,   36,   37,   10,   62,    0 
    } ; 
  
static const YY_CHAR yy_ec[256] = 
    {   0, 
        1,    1,    1,    1,    2,    1,    1,    1,    1,    1, 
        1,    3,    1,    1,    1,    1,    1,    1,    1,    1, 
        4,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    5,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    6,    7,    6,    6,    8,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        9,   10,    6,    1,   11,   12,   13,    1,    1,    1, 
  
        1,    1,    1,    1,    1,    1,   14,   15,   16,   17, 
        6,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,   18,    1,   19,    1,   20,    1,   21,   22, 
       23,   24,   25,   26,   16,   16,   16,   16,   16,   16, 
       16,   16,   16,   16,   27,   28,   16,   29,   30,   31, 
       28,   16,   32,   16,   16,   16,   16,   16,   16,   16, 
       16,   33,   34,   35,   16,   16,   36,   37,   16,    1, 
        1,    1,   38,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,   39,    1, 
        1,   40,   21,   22,   23,   24,   25,   26,   16,   16, 
  
       16,    1,    1,    1,    1,    1,    1,   41,   27,   28, 
       16,   29,   30,   31,   28,   16,   32,    1,    1,    1, 
        1,    1,    1,   42,    1,   33,   34,   35,   16,   16, 
       36,   37,   16,    1,    1,    1,    1,    1,    1,   43, 
       43,   43,   43,   43,   43,   43,   43,   43,   43,    1, 
        1,    1,    1,    1,    1 
    } ; 
  
static const short int yy_base[404] = 
    {   0, 
        0,   43,   85,  126, 1573, 1572, 1571, 1570,  168, 1558, 
       97,  104,  211,    0, 1544, 1543,   99,  106,  118,  251, 
      252,  254,  112,  114,  296,    0, 1549, 1548,  107,  111, 
      140,  151,  153,  155,  253,  336,  378,    0,  339,  420, 
        0,    0,  424,  465, 1550, 3243,  257, 3243, 1515,    0, 
      265, 3243, 1538,  494,    0, 1540, 3243,  272, 3243, 3243, 
     1495,  277, 3243, 1459,  534,   61,  343, 3243, 3243,   81, 
     1496,    0, 1495, 3243,    0, 3243,    0, 1473, 1443, 1438, 
        0,  281, 3243, 3243, 3243, 3243,    0, 1467, 3243, 3243, 
     3243, 3243, 3243, 1434, 3243, 3243, 3243,   76, 3243, 1463, 
  
     3243,  242, 3243,    0, 3243,  314,    0, 3243, 1464,    0, 
      330, 3243, 1448,  745, 3243, 3243,  777, 3243, 3243, 3243, 
        0, 3243,  767,    0, 3243,  766,    0, 3243, 3243,    0, 
        0,  350, 3243,  737,    0,  752,  739,    0,  286, 3243, 
      750,  737, 3243,  357, 3243,  739,  318, 3243,  428,  738, 
      327,  728,  364, 3243,  432,    0,  438, 3243, 3243,  372, 
      442,  765,  446,    0,  451,   84,    0,  765,    0,  764, 
     3243,  457, 3243,  763,  718,  732, 3243,  434,  438,    0, 
      566, 3243, 3243,    0,  712,  480, 3243,    0, 3243,  750, 
        0, 3243,  749, 3243,    0,    0,  725,  722,  609,    0, 
  
      484,    0, 3243,  707, 3243, 3243, 3243,    0,  706, 3243, 
        0, 3243,    0,  456, 3243,    0,  721,  718,  742, 3243, 
        0,  741,    0, 3243,    0, 3243,    0,  488,  703,  652, 
        0,  709,  706,    0,  494,  707,  704,  499,  508, 3243, 
        0,  689,  694,  688,  581, 3243,  518,    0,  603,  725, 
      698,    0,  702,  693,  697,    0,  706, 3243,  705, 3243, 
     3243,  671, 3243,  717,  669,    0,    0, 3243,    0,  655, 
        0,  631,  573,    0, 3243,  577,    0,  537,  554,  507, 
      529, 3243,    0,    0,  507,  500,  493,  485,  711, 3243, 
        0,  471,  502, 3243,    0,  715, 3243,  472,  476,    0, 
  
      468,  740,  682, 3243,  469,  447, 3243,  455,  432,  440, 
      426,  427,  414, 3243,  413, 3243,  415,  684,  688,  339, 
      339,  258,  265,  238,  142,  128,  133,  121,  126,    0, 
        0,    0,    0,    0,    0,    0,    0, 3243, 3243, 3243, 
      783,  826,  869,  912,  955,  998, 1041, 1084, 1127, 1170, 
     1213, 1256, 1299, 1342, 1385, 1428, 1460, 1503, 1535, 1578, 
     1621, 1664, 1707, 1750, 1793, 1836, 1868, 1911, 1943, 1986, 
     2029, 2072, 2115, 2147, 2190, 2233, 2276, 2319, 2362, 2405, 
     2448, 2480, 2523, 2566, 2609, 2637, 2659, 2696, 2739, 2782, 
     2805, 2848, 2871, 2914, 2937, 2980, 3012, 3044, 3067, 3110, 
  
     3133, 3176, 3199 
    } ; 
  
static const short int yy_def[404] = 
    {   0, 
      340,  340,  341,  341,  342,  342,  343,  343,  340,    9, 
      344,  344,  340,   13,  345,  345,  346,  346,  347,  347, 
      348,  348,  349,  349,  340,   25,  350,  350,  345,  345, 
      351,  351,  352,  352,  353,  353,  340,   37,  354,  354, 
       37,   37,  355,  356,  340,  340,  340,  340,  340,  357, 
      340,  340,  340,  358,  359,  360,  340,  340,  340,  340, 
      340,  340,  340,  361,  340,  362,  340,  340,  340,  340, 
      363,  364,  365,  340,  366,  340,  367,  367,  367,  366, 
      368,  340,  340,  340,  340,  340,  369,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  362,  340,  370, 
  
      340,  371,  340,  372,  340,  362,  373,  340,  340,  374, 
      375,  340,  374,  374,  340,  340,  376,  340,  340,  340, 
      377,  340,  340,  378,  340,  340,  379,  340,  340,  380, 
      381,  381,  340,  381,  382,  382,  382,  383,  340,  340, 
      383,  383,  340,  340,  340,  340,  384,  340,  340,  340, 
      384,  340,  340,  340,  340,  357,  340,  340,  340,  340, 
      385,  340,  340,  386,  340,  340,  387,  388,  359,  360, 
      340,  340,  340,  389,  340,  340,  340,  361,  361,  390, 
      390,  340,  340,  391,  340,  340,  340,  392,  340,  363, 
      364,  340,  365,  340,  366,  367,  367,  367,  340,  368, 
  
      340,  369,  340,  340,  340,  340,  340,  393,  340,  340, 
      373,  340,  374,  375,  340,  375,  374,  374,  376,  340, 
      377,  394,  378,  340,  379,  340,  381,  381,  381,  340, 
      382,  382,  382,  383,  340,  383,  383,  340,  340,  340, 
      395,  340,  340,  340,  340,  340,  340,  385,  385,  396, 
      340,  397,  396,  340,  340,  398,  388,  340,  389,  340, 
      340,  340,  340,  361,  361,  390,  181,  340,  399,  340, 
      392,  367,  367,  199,  340,  400,  401,  340,  374,  374, 
      394,  340,  230,  402,  382,  382,  383,  383,  340,  340, 
      403,  340,  396,  340,  397,  396,  340,  340,  340,  398, 
  
      340,  264,  361,  340,  367,  367,  340,  374,  374,  382, 
      382,  383,  383,  340,  340,  340,  340,  361,  361,  367, 
      367,  374,  374,  382,  382,  383,  383,  340,  340,  367, 
      367,  374,  374,  382,  382,  383,  383,  340,  340,    0, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
  
      340,  340,  340 
    } ; 
  
static const short int yy_nxt[3287] = 
    {   0, 
       46,   47,   47,   48,   47,   46,   46,   46,   46,   46, 
       46,   46,   46,   46,   49,   50,   46,   46,   46,   46, 
       50,   50,   50,   50,   50,   50,   50,   50,   50,   50, 
       50,   50,   50,   50,   50,   50,   50,   46,   46,   46, 
       46,   46,   46,   46,   51,   51,   52,   51,   46,   46, 
       46,   46,   46,   46,   46,   53,   46,   54,   55,   46, 
       56,   46,   46,   55,   55,   55,   55,   55,   55,   55, 
       55,   55,   55,   55,   55,   55,   55,   55,   55,   55, 
       46,   46,   46,   46,   46,   46,   58,   58,   59,   58, 
       60,   61,   60,   62,   60,  188,  184,   60,   82,   82, 
  
       83,   82,   91,  185,   63,   82,   82,   83,   82,   91, 
      119,  184,   92,  254,  119,   85,  255,   85,  185,   92, 
      189,   96,   64,  104,   65,  104,   66,   67,   67,   68, 
       67,   60,   61,   60,   62,   60,   69,   97,   60,   93, 
       70,   94,  339,  122,  338,   63,   93,  120,   94,  123, 
      105,  120,  105,  106,  122,  106,  125,  337,  125,   98, 
      123,  336,  126,   64,  126,   65,  335,   66,   75,   75, 
       75,   76,   75,   75,   75,   75,   75,   75,   75,   75, 
       75,   75,   75,   77,   75,   75,   75,   75,   77,   77, 
       77,   77,   77,   77,   77,   77,   77,   77,   77,   78, 
  
       77,   77,   77,   77,   79,   75,   75,   75,   75,   75, 
       75,   84,   84,   84,   85,   84,   84,   84,   84,   84, 
       84,   84,   84,   84,   86,   84,   87,   88,   84,   84, 
       84,   87,   87,   87,   87,   87,   87,   87,   87,   87, 
       87,   87,   87,   87,   87,   87,   87,   87,   84,   84, 
       84,   84,   84,   84,   96,   85,  128,   85,  153,  153, 
      154,  153,  100,  101,  100,  101,  157,  157,  158,  157, 
       97,  334,  129,  172,  172,  173,  172,  208,  177,  174, 
      177,  177,  201,  201,  209,  201,  175,  235,  235,  333, 
      235,  332,   98,  102,  130,  102,  107,  107,  107,  108, 
  
      107,  107,  107,  107,  107,  107,  107,  107,  109,  107, 
      107,  110,  107,  107,  111,  112,  110,  110,  110,  110, 
      110,  110,  110,  110,  110,  110,  110,  113,  110,  110, 
      110,  110,  114,  107,  107,  115,  116,  107,  107,  128, 
      139,  139,  140,  139,  186,  186,  187,  186,  215,  184, 
      174,  228,  228,  241,  228,  129,  185,  175,  238,  238, 
      242,  238,  241,  331,  229,  153,  153,  154,  153,  242, 
      141,  216,  330,  247,  247,  142,  247,  130,  131,  132, 
      132,  133,  132,  131,  131,  131,  131,  131,  131,  131, 
      131,  131,  134,  135,  131,  131,  131,  131,  135,  135, 
  
      135,  135,  135,  135,  135,  135,  135,  135,  135,  136, 
      135,  135,  135,  135,  137,  131,  131,  131,  131,  131, 
      131,  139,  139,  140,  139,  144,  144,  145,  144,  243, 
      243,  329,  243,  245,  245,  246,  245,  328,  146,  157, 
      157,  158,  157,  249,  249,  327,  249,  251,  251,  326, 
      251,  141,  245,  245,  246,  253,  142,  325,  172,  172, 
      173,  172,  324,  323,  174,  147,  149,  149,  145,  149, 
      244,  175,  263,  264,  215,  179,  178,  322,  321,  150, 
      265,  186,  186,  187,  186,  201,  201,  174,  201,  228, 
      228,  320,  228,  317,  175,  235,  235,  216,  235,  316, 
  
      238,  238,  229,  238,  315,  294,  151,  152,  161,  289, 
      289,  290,  289,  240,  162,  313,  163,  312,  162,  247, 
      247,  162,  247,  162,  162,  163,  164,  165,  166,  167, 
      311,  310,  282,  168,  180,  180,  180,  309,  180,  180, 
      180,  180,  180,  180,  180,  180,  180,  180,  180,  181, 
      180,  180,  180,  180,  181,  181,  181,  181,  181,  181, 
      181,  181,  181,  181,  181,  181,  181,  181,  181,  181, 
      181,  180,  180,  180,  180,  180,  182,  267,  308,  207, 
      275,  267,  245,  245,  246,  245,  267,  267,  267,  267, 
      267,  267,  267,  267,  267,  267,  267,  267,  267,  267, 
  
      267,  267,  267,  306,  249,  249,  268,  249,  267,  274, 
      274,  274,  275,  274,  274,  274,  274,  274,  274,  274, 
      274,  274,  274,  274,  276,  274,  274,  274,  274,  276, 
      276,  276,  276,  276,  276,  276,  276,  276,  276,  276, 
      276,  276,  276,  276,  276,  276,  274,  274,  274,  274, 
      274,  274,  283,  283,  283,  305,  283,  283,  283,  283, 
      283,  283,  283,  283,  283,  283,  283,  284,  283,  283, 
      283,  283,  284,  284,  284,  284,  284,  284,  284,  284, 
      284,  284,  284,  284,  284,  284,  284,  284,  284,  283, 
      283,  283,  283,  283,  283,  243,  243,  183,  243,  251, 
  
      251,  301,  251,  296,  296,  297,  296,  263,  260,  258, 
      179,  303,  289,  289,  290,  289,  296,  296,  297,  296, 
      263,  299,  263,  179,  319,  179,  263,  298,  294,  179, 
      244,  292,  288,  287,  286,  285,  244,  302,  302,  302, 
      302,  302,  302,  230,  282,  220,  280,  279,  278,  204, 
      273,  272,  194,  191,  270,  263,  262,  261,  179,  302, 
      318,  318,  318,  318,  318,  318,  260,  171,  258,  250, 
      244,  239,  239,  237,  236,  233,  232,  230,  224,  222, 
      220,  218,  318,   57,   57,   57,   57,   57,   57,   57, 
       57,   57,   57,   57,   57,   57,   57,   57,   57,   57, 
  
       57,   57,   57,   57,   57,   57,   57,   57,   57,   57, 
       57,   57,   57,   57,   57,   57,   57,   57,   57,   57, 
       57,   57,   57,   57,   57,   57,   71,   71,   71,   71, 
       71,   71,   71,   71,   71,   71,   71,   71,   71,   71, 
       71,   71,   71,   71,   71,   71,   71,   71,   71,   71, 
       71,   71,   71,   71,   71,   71,   71,   71,   71,   71, 
       71,   71,   71,   71,   71,   71,   71,   71,   71,   73, 
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
  
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73, 
       73,   73,   81,   81,   81,   81,   81,   81,   81,   81, 
       81,   81,   81,   81,   81,   81,   81,   81,   81,   81, 
       81,   81,   81,   81,   81,   81,   81,   81,   81,   81, 
       81,   81,   81,   81,   81,   81,   81,   81,   81,   81, 
       81,   81,   81,   81,   81,   85,   85,   85,   85,   85, 
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85, 
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85, 
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85, 
       85,   85,   85,   85,   85,   85,   85,   85,   90,   90, 
  
       90,   90,   90,   90,   90,   90,   90,   90,   90,   90, 
       90,   90,   90,   90,   90,   90,   90,   90,   90,   90, 
       90,   90,   90,   90,   90,   90,   90,   90,   90,   90, 
       90,   90,   90,   90,   90,   90,   90,   90,   90,   90, 
       90,   95,   95,   95,   95,   95,   95,   95,   95,   95, 
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95, 
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95, 
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95, 
       95,   95,   95,   95,   99,   99,   99,   99,   99,   99, 
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99, 
  
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99, 
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99, 
       99,   99,   99,   99,   99,   99,   99,  103,  103,  103, 
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103, 
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103, 
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103, 
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103, 
      117,  117,  117,  117,  117,  117,  117,  117,  117,  117, 
      117,  117,  117,  117,  117,  117,  117,  117,  117,  117, 
      117,  117,  117,  117,  117,  117,  117,  117,  117,  117, 
  
      117,  117,  117,  117,  117,  117,  117,  117,  117,  117, 
      117,  117,  117,  121,  121,  121,  121,  121,  121,  121, 
      121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
      121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
      121,  121,  121,  121,  121,  121,  121,  121,  121,  121, 
      121,  121,  121,  121,  121,  121,  124,  124,  124,  124, 
      124,  124,  124,  124,  124,  124,  124,  124,  124,  124, 
      124,  124,  124,  124,  124,  124,  124,  124,  124,  124, 
      124,  124,  124,  124,  124,  124,  124,  124,  124,  124, 
      124,  124,  124,  124,  124,  124,  124,  124,  124,  127, 
  
      127,  127,  127,  127,  127,  127,  127,  127,  127,  127, 
      127,  127,  127,  127,  127,  127,  127,  127,  127,  127, 
      127,  127,  127,  127,  127,  127,  127,  127,  127,  127, 
      127,  127,  127,  127,  127,  127,  127,  127,  127,  127, 
      127,  127,  138,  138,  138,  138,  138,  138,  138,  138, 
      138,  138,  138,  138,  138,  138,  138,  138,  138,  138, 
      138,  138,  138,  138,  138,  138,  138,  138,  138,  138, 
      138,  138,  138,  138,  138,  138,  138,  138,  138,  138, 
      138,  138,  138,  138,  138,  143,  143,  143,  143,  143, 
      143,  143,  143,  143,  143,  143,  143,  143,  143,  143, 
  
      143,  143,  143,  143,  143,  143,  143,  143,  143,  143, 
      143,  143,  143,  143,  143,  143,  143,  143,  143,  143, 
      143,  143,  143,  143,  143,  143,  143,  143,  148,  148, 
      148,  148,  148,  148,  148,  148,  148,  148,  148,  148, 
      148,  148,  148,  148,  148,  148,  148,  148,  148,  148, 
      148,  148,  148,  148,  148,  148,  148,  148,  148,  148, 
      148,  148,  148,  148,  148,  148,  148,  148,  148,  148, 
      148,  156,  217,  212,  206,  156,  204,  203,  199,  198, 
      156,  156,  156,  156,  156,  156,  156,  156,  156,  156, 
      156,  156,  156,  156,  156,  156,  156,  197,  194,  191, 
  
      179,  176,  156,  160,  160,  160,  160,  160,  160,  160, 
      160,  160,  160,  160,  160,  160,  160,  160,  160,  160, 
      160,  160,  160,  160,  160,  160,  160,  160,  160,  160, 
      160,  160,  160,  160,  160,  160,  160,  160,  160,  160, 
      160,  160,  160,  171,  160,  160,  169,  159,  155,  340, 
      169,  118,  118,   89,   89,  169,  169,  169,  169,  169, 
      169,  169,  169,  169,  169,  169,  169,  169,  169,  169, 
      169,  169,   80,   74,   74,   72,   72,  169,  170,  170, 
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170, 
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170, 
  
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170, 
      170,  170,  170,  170,  170,  170,  170,  170,  170,  170, 
      170,  178,  178,  178,  340,  178,  178,  178,  178,  178, 
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178, 
      178,  178,  178,  178,  178,  178,  178,  178,  178,  178, 
      178,  178,  178,  178,  178,  178,  178,  178,  178,  340, 
      178,  178,  178,  178,  183,  183,  183,  340,  183,  183, 
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183, 
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183, 
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183, 
  
      183,  183,  183,  183,  183,  183,  183,  190,  190,  190, 
      190,  190,  190,  190,  190,  190,  190,  190,  190,  190, 
      190,  190,  190,  190,  190,  190,  190,  190,  190,  190, 
      190,  190,  190,  190,  190,  190,  190,  190,  190,  190, 
      190,  190,  190,  190,  190,  190,  190,  190,  190,  190, 
      192,  340,  340,  340,  340,  192,  192,  192,  192,  192, 
      192,  192,  192,  192,  192,  192,  192,  192,  192,  192, 
      192,  192,  192,  192,  192,  192,  192,  192,  192,  192, 
      192,  192,  192,  192,  192,  192,  192,  192,  192,  192, 
      192,  192,  192,  193,  193,  193,  193,  193,  193,  193, 
  
      193,  193,  193,  193,  193,  193,  193,  193,  193,  193, 
      193,  193,  193,  193,  193,  193,  193,  193,  193,  193, 
      193,  193,  193,  193,  193,  193,  193,  193,  193,  193, 
      193,  193,  193,  193,  193,  193,  195,  195,  195,  340, 
      195,  195,  195,  195,  195,  195,  195,  195,  195,  195, 
      195,  340,  195,  195,  195,  195,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  195,  195,  195,  195,  195,  195,  196, 
      340,  340,  340,  196,  340,  340,  340,  340,  196,  196, 
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196, 
  
      196,  196,  196,  196,  196,  340,  340,  340,  340,  340, 
      196,  200,  200,  200,  340,  200,  200,  200,  200,  200, 
      200,  200,  200,  200,  200,  200,  200,  200,  200,  200, 
      200,  200,  200,  200,  200,  200,  200,  200,  200,  200, 
      200,  200,  200,  200,  200,  200,  200,  200,  200,  200, 
      200,  200,  200,  200,  202,  340,  340,  340,  202,  340, 
      340,  340,  340,  202,  202,  202,  202,  202,  202,  202, 
      202,  202,  202,  202,  202,  202,  202,  202,  202,  202, 
      340,  340,  340,  340,  340,  202,  205,  205,  205,  340, 
      205,  205,  205,  205,  205,  205,  205,  205,  205,  205, 
  
      205,  205,  205,  205,  205,  205,  205,  205,  205,  205, 
      205,  205,  205,  205,  205,  205,  205,  205,  205,  205, 
      205,  205,  205,  205,  205,  205,  205,  205,  205,  207, 
      207,  207,  340,  207,  207,  207,  207,  207,  207,  207, 
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207, 
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207, 
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207, 
      207,  207,  210,  210,  210,  340,  210,  210,  210,  210, 
      210,  210,  210,  210,  210,  210,  210,  210,  210,  210, 
      210,  210,  210,  210,  210,  210,  210,  210,  210,  210, 
  
      210,  210,  210,  210,  210,  210,  210,  210,  210,  210, 
      340,  210,  210,  210,  210,  211,  211,  211,  340,  211, 
      211,  211,  211,  211,  211,  211,  211,  340,  211,  211, 
      340,  211,  211,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  211,  211,  340,  340,  211,  211,  213,  340, 
      340,  340,  213,  340,  340,  340,  340,  213,  213,  213, 
      213,  213,  213,  213,  213,  213,  213,  213,  213,  213, 
      213,  213,  213,  213,  340,  340,  340,  340,  340,  213, 
      214,  214,  214,  340,  214,  214,  214,  214,  214,  214, 
  
      214,  214,  214,  214,  214,  214,  214,  214,  214,  214, 
      214,  214,  214,  214,  214,  214,  214,  214,  214,  214, 
      214,  214,  214,  214,  214,  214,  214,  214,  214,  214, 
      214,  214,  214,  219,  219,  219,  219,  219,  219,  219, 
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219, 
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219, 
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219, 
      219,  219,  219,  219,  219,  219,  221,  221,  221,  340, 
      221,  221,  221,  221,  221,  340,  221,  221,  221,  221, 
      221,  221,  221,  221,  221,  221,  221,  221,  221,  221, 
  
      221,  221,  221,  221,  221,  221,  221,  221,  221,  221, 
      221,  221,  221,  221,  221,  221,  221,  221,  221,  223, 
      223,  223,  340,  223,  223,  223,  223,  223,  340,  223, 
      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, 
      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, 
      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, 
      223,  223,  225,  225,  225,  340,  225,  225,  225,  225, 
      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
      225,  340,  225,  225,  225,  225,  225,  225,  225,  225, 
      225,  225,  225,  225,  225,  225,  225,  225,  225,  225, 
  
      225,  225,  225,  340,  225,  226,  226,  226,  340,  226, 
      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, 
      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, 
      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, 
      226,  226,  226,  226,  226,  226,  226,  226,  227,  227, 
      227,  340,  227,  227,  227,  227,  227,  227,  227,  227, 
      227,  227,  227,  340,  227,  227,  227,  227,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  227,  227,  227,  227,  227, 
      227,  231,  340,  340,  340,  231,  340,  340,  340,  340, 
  
      231,  231,  231,  231,  231,  231,  231,  231,  231,  231, 
      231,  231,  231,  231,  231,  231,  231,  340,  340,  340, 
      340,  340,  231,  234,  340,  340,  340,  340,  234,  234, 
      234,  234,  234,  234,  234,  234,  234,  234,  234,  234, 
      234,  234,  234,  234,  234,  234,  234,  234,  234,  234, 
      234,  234,  234,  234,  234,  234,  234,  234,  234,  234, 
      234,  234,  234,  234,  234,  234,  240,  240,  240,  340, 
      240,  240,  240,  240,  240,  240,  240,  240,  240,  240, 
      240,  240,  240,  240,  240,  240,  240,  240,  240,  240, 
      240,  240,  240,  240,  240,  240,  240,  240,  240,  240, 
  
      240,  240,  240,  240,  240,  240,  240,  240,  240,  248, 
      248,  248,  340,  248,  248,  248,  248,  248,  248,  248, 
      248,  248,  248,  248,  248,  248,  248,  248,  248,  248, 
      248,  248,  248,  248,  248,  248,  248,  248,  248,  248, 
      248,  248,  248,  248,  248,  248,  248,  248,  248,  248, 
      248,  248,  252,  340,  340,  340,  340,  252,  252,  252, 
      252,  252,  252,  252,  252,  252,  252,  252,  252,  252, 
      252,  252,  252,  252,  256,  340,  340,  340,  340,  256, 
      256,  256,  256,  256,  256,  256,  256,  256,  256,  256, 
      256,  256,  256,  256,  256,  256,  257,  257,  257,  257, 
  
      257,  257,  257,  257,  257,  257,  257,  257,  257,  257, 
      257,  257,  257,  257,  257,  257,  257,  257,  257,  257, 
      257,  257,  257,  257,  257,  257,  257,  257,  257,  257, 
      257,  257,  257,  257,  257,  257,  257,  257,  257,  259, 
      259,  259,  259,  259,  259,  259,  259,  259,  259,  259, 
      259,  259,  259,  259,  259,  259,  259,  259,  259,  259, 
      259,  259,  259,  259,  259,  259,  259,  259,  259,  259, 
      259,  259,  259,  259,  259,  259,  259,  259,  259,  259, 
      259,  259,  266,  266,  266,  340,  266,  266,  266,  266, 
      266,  266,  266,  266,  266,  266,  266,  266,  266,  266, 
  
      266,  266,  266,  266,  266,  266,  266,  266,  266,  266, 
      266,  266,  266,  266,  266,  266,  266,  266,  266,  266, 
      266,  266,  340,  266,  266,  269,  269,  269,  269,  269, 
      269,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  269,  271,  271, 
      271,  340,  271,  271,  271,  271,  271,  271,  271,  271, 
      271,  271,  271,  271,  271,  271,  271,  271,  271,  271, 
      271,  271,  271,  271,  271,  271,  271,  271,  271,  271, 
      271,  271,  271,  271,  271,  271,  271,  271,  271,  271, 
      271,  277,  277,  277,  277,  277,  277,  340,  340,  340, 
  
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  277,  281,  281,  281,  281,  281,  281, 
      281,  281,  281,  281,  281,  281,  281,  281,  281,  281, 
      281,  281,  281,  281,  281,  281,  281,  281,  281,  281, 
      281,  281,  281,  281,  281,  281,  281,  281,  281,  281, 
      281,  281,  281,  281,  281,  281,  281,  291,  291,  291, 
      291,  291,  291,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  291, 
      293,  293,  293,  293,  293,  293,  293,  293,  293,  293, 
      293,  293,  293,  293,  293,  293,  293,  293,  293,  293, 
  
      293,  293,  293,  293,  293,  293,  293,  293,  293,  293, 
      293,  293,  293,  293,  293,  293,  293,  293,  293,  293, 
      293,  293,  293,  295,  340,  340,  340,  295,  340,  340, 
      340,  340,  295,  295,  295,  295,  295,  295,  295,  295, 
      295,  295,  295,  295,  295,  295,  295,  295,  295,  340, 
      340,  340,  340,  340,  295,  300,  340,  340,  340,  300, 
      340,  340,  340,  340,  300,  300,  300,  300,  300,  300, 
      300,  300,  300,  300,  300,  300,  300,  300,  300,  300, 
      300,  340,  340,  340,  340,  340,  300,  304,  304,  304, 
      304,  304,  304,  340,  340,  340,  340,  340,  340,  340, 
  
      340,  340,  340,  340,  340,  340,  340,  340,  340,  304, 
      276,  276,  276,  276,  276,  276,  276,  276,  276,  276, 
      276,  276,  276,  276,  276,  276,  276,  276,  276,  276, 
      276,  276,  276,  276,  276,  276,  276,  276,  276,  276, 
      276,  276,  276,  276,  276,  276,  276,  276,  276,  276, 
      276,  276,  276,  307,  307,  307,  307,  307,  307,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  307,  284,  284,  284,  340, 
      284,  284,  284,  284,  284,  284,  284,  284,  284,  284, 
      284,  284,  284,  284,  284,  284,  284,  284,  284,  284, 
  
      284,  284,  284,  284,  284,  284,  284,  284,  284,  284, 
      284,  284,  284,  284,  284,  284,  284,  284,  284,  314, 
      314,  314,  314,  314,  314,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  314,   45,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340 
    } ; 
  
static const short int yy_chk[3287] = 
    {   0, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
        1,    1,    1,    2,    2,    2,    2,    2,    2,    2, 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2, 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2, 
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2, 
        2,    2,    2,    2,    2,    2,    3,    3,    3,    3, 
        3,    3,    3,    3,    3,   70,   66,    3,   11,   11, 
  
       11,   11,   17,   66,    3,   12,   12,   12,   12,   18, 
       29,   98,   17,  166,   30,   23,  166,   24,   98,   18, 
       70,   19,    3,   23,    3,   24,    3,    4,    4,    4, 
        4,    4,    4,    4,    4,    4,    4,   19,    4,   17, 
        4,   17,  329,   31,  328,    4,   18,   29,   18,   31, 
       23,   30,   24,   23,   32,   24,   33,  327,   34,   19, 
       32,  326,   33,    4,   34,    4,  325,    4,    9,    9, 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9, 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9, 
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9, 
  
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9, 
        9,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13, 
       13,   13,   13,   13,   20,   21,   35,   22,   47,   47, 
       47,   47,   21,   21,   22,   22,   51,   51,   51,   51, 
       20,  324,   35,   58,   58,   58,   58,  102,   62,   58, 
       62,   62,   82,   82,  102,   82,   58,  139,  139,  323, 
      139,  322,   20,   21,   35,   22,   25,   25,   25,   25, 
  
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25, 
       25,   25,   25,   25,   25,   25,   25,   25,   25,   36, 
       39,   39,   39,   39,   67,   67,   67,   67,  111,  106, 
       67,  132,  132,  147,  132,   36,  106,   67,  144,  144, 
      147,  144,  151,  321,  132,  153,  153,  153,  153,  151, 
       39,  111,  320,  160,  160,   39,  160,   36,   37,   37, 
       37,   37,   37,   37,   37,   37,   37,   37,   37,   37, 
       37,   37,   37,   37,   37,   37,   37,   37,   37,   37, 
  
       37,   37,   37,   37,   37,   37,   37,   37,   37,   37, 
       37,   37,   37,   37,   37,   37,   37,   37,   37,   37, 
       37,   40,   40,   40,   40,   43,   43,   43,   43,  149, 
      149,  317,  149,  155,  155,  155,  155,  315,   43,  157, 
      157,  157,  157,  161,  161,  313,  161,  163,  163,  312, 
      163,   40,  165,  165,  165,  165,   40,  311,  172,  172, 
      172,  172,  310,  309,  172,   43,   44,   44,   44,   44, 
      149,  172,  178,  179,  214,  178,  179,  308,  306,   44, 
      179,  186,  186,  186,  186,  201,  201,  186,  201,  228, 
      228,  305,  228,  301,  186,  235,  235,  214,  235,  299, 
  
      238,  238,  228,  238,  298,  293,   44,   44,   54,  239, 
      239,  239,  239,  292,   54,  288,   54,  287,   54,  247, 
      247,   54,  247,   54,   54,   54,   54,   54,   54,   54, 
      286,  285,  281,   54,   65,   65,   65,  280,   65,   65, 
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65, 
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65, 
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65, 
       65,   65,   65,   65,   65,   65,   65,  181,  279,  278, 
      276,  181,  245,  245,  245,  245,  181,  181,  181,  181, 
      181,  181,  181,  181,  181,  181,  181,  181,  181,  181, 
  
      181,  181,  181,  273,  249,  249,  181,  249,  181,  199, 
      199,  199,  199,  199,  199,  199,  199,  199,  199,  199, 
      199,  199,  199,  199,  199,  199,  199,  199,  199,  199, 
      199,  199,  199,  199,  199,  199,  199,  199,  199,  199, 
      199,  199,  199,  199,  199,  199,  199,  199,  199,  199, 
      199,  199,  230,  230,  230,  272,  230,  230,  230,  230, 
      230,  230,  230,  230,  230,  230,  230,  230,  230,  230, 
      230,  230,  230,  230,  230,  230,  230,  230,  230,  230, 
      230,  230,  230,  230,  230,  230,  230,  230,  230,  230, 
      230,  230,  230,  230,  230,  243,  243,  270,  243,  251, 
  
      251,  262,  251,  253,  253,  253,  253,  265,  259,  257, 
      265,  265,  289,  289,  289,  289,  296,  296,  296,  296, 
      303,  255,  318,  303,  303,  318,  319,  254,  250,  319, 
      244,  242,  237,  236,  233,  232,  243,  264,  264,  264, 
      264,  264,  264,  229,  222,  219,  218,  217,  209,  204, 
      198,  197,  193,  190,  185,  264,  176,  175,  264,  264, 
      302,  302,  302,  302,  302,  302,  174,  170,  168,  162, 
      152,  150,  146,  142,  141,  137,  136,  134,  126,  123, 
      117,  114,  302,  341,  341,  341,  341,  341,  341,  341, 
      341,  341,  341,  341,  341,  341,  341,  341,  341,  341, 
  
      341,  341,  341,  341,  341,  341,  341,  341,  341,  341, 
      341,  341,  341,  341,  341,  341,  341,  341,  341,  341, 
      341,  341,  341,  341,  341,  341,  342,  342,  342,  342, 
      342,  342,  342,  342,  342,  342,  342,  342,  342,  342, 
      342,  342,  342,  342,  342,  342,  342,  342,  342,  342, 
      342,  342,  342,  342,  342,  342,  342,  342,  342,  342, 
      342,  342,  342,  342,  342,  342,  342,  342,  342,  343, 
      343,  343,  343,  343,  343,  343,  343,  343,  343,  343, 
      343,  343,  343,  343,  343,  343,  343,  343,  343,  343, 
      343,  343,  343,  343,  343,  343,  343,  343,  343,  343, 
  
      343,  343,  343,  343,  343,  343,  343,  343,  343,  343, 
      343,  343,  344,  344,  344,  344,  344,  344,  344,  344, 
      344,  344,  344,  344,  344,  344,  344,  344,  344,  344, 
      344,  344,  344,  344,  344,  344,  344,  344,  344,  344, 
      344,  344,  344,  344,  344,  344,  344,  344,  344,  344, 
      344,  344,  344,  344,  344,  345,  345,  345,  345,  345, 
      345,  345,  345,  345,  345,  345,  345,  345,  345,  345, 
      345,  345,  345,  345,  345,  345,  345,  345,  345,  345, 
      345,  345,  345,  345,  345,  345,  345,  345,  345,  345, 
      345,  345,  345,  345,  345,  345,  345,  345,  346,  346, 
  
      346,  346,  346,  346,  346,  346,  346,  346,  346,  346, 
      346,  346,  346,  346,  346,  346,  346,  346,  346,  346, 
      346,  346,  346,  346,  346,  346,  346,  346,  346,  346, 
      346,  346,  346,  346,  346,  346,  346,  346,  346,  346, 
      346,  347,  347,  347,  347,  347,  347,  347,  347,  347, 
      347,  347,  347,  347,  347,  347,  347,  347,  347,  347, 
      347,  347,  347,  347,  347,  347,  347,  347,  347,  347, 
      347,  347,  347,  347,  347,  347,  347,  347,  347,  347, 
      347,  347,  347,  347,  348,  348,  348,  348,  348,  348, 
      348,  348,  348,  348,  348,  348,  348,  348,  348,  348, 
  
      348,  348,  348,  348,  348,  348,  348,  348,  348,  348, 
      348,  348,  348,  348,  348,  348,  348,  348,  348,  348, 
      348,  348,  348,  348,  348,  348,  348,  349,  349,  349, 
      349,  349,  349,  349,  349,  349,  349,  349,  349,  349, 
      349,  349,  349,  349,  349,  349,  349,  349,  349,  349, 
      349,  349,  349,  349,  349,  349,  349,  349,  349,  349, 
      349,  349,  349,  349,  349,  349,  349,  349,  349,  349, 
      350,  350,  350,  350,  350,  350,  350,  350,  350,  350, 
      350,  350,  350,  350,  350,  350,  350,  350,  350,  350, 
      350,  350,  350,  350,  350,  350,  350,  350,  350,  350, 
  
      350,  350,  350,  350,  350,  350,  350,  350,  350,  350, 
      350,  350,  350,  351,  351,  351,  351,  351,  351,  351, 
      351,  351,  351,  351,  351,  351,  351,  351,  351,  351, 
      351,  351,  351,  351,  351,  351,  351,  351,  351,  351, 
      351,  351,  351,  351,  351,  351,  351,  351,  351,  351, 
      351,  351,  351,  351,  351,  351,  352,  352,  352,  352, 
      352,  352,  352,  352,  352,  352,  352,  352,  352,  352, 
      352,  352,  352,  352,  352,  352,  352,  352,  352,  352, 
      352,  352,  352,  352,  352,  352,  352,  352,  352,  352, 
      352,  352,  352,  352,  352,  352,  352,  352,  352,  353, 
  
      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
      353,  353,  353,  353,  353,  353,  353,  353,  353,  353, 
      353,  353,  354,  354,  354,  354,  354,  354,  354,  354, 
      354,  354,  354,  354,  354,  354,  354,  354,  354,  354, 
      354,  354,  354,  354,  354,  354,  354,  354,  354,  354, 
      354,  354,  354,  354,  354,  354,  354,  354,  354,  354, 
      354,  354,  354,  354,  354,  355,  355,  355,  355,  355, 
      355,  355,  355,  355,  355,  355,  355,  355,  355,  355, 
  
      355,  355,  355,  355,  355,  355,  355,  355,  355,  355, 
      355,  355,  355,  355,  355,  355,  355,  355,  355,  355, 
      355,  355,  355,  355,  355,  355,  355,  355,  356,  356, 
      356,  356,  356,  356,  356,  356,  356,  356,  356,  356, 
      356,  356,  356,  356,  356,  356,  356,  356,  356,  356, 
      356,  356,  356,  356,  356,  356,  356,  356,  356,  356, 
      356,  356,  356,  356,  356,  356,  356,  356,  356,  356, 
      356,  357,  113,  109,  100,  357,   94,   88,   80,   79, 
      357,  357,  357,  357,  357,  357,  357,  357,  357,  357, 
      357,  357,  357,  357,  357,  357,  357,   78,   73,   71, 
  
       64,   61,  357,  358,  358,  358,  358,  358,  358,  358, 
      358,  358,  358,  358,  358,  358,  358,  358,  358,  358, 
      358,  358,  358,  358,  358,  358,  358,  358,  358,  358, 
      358,  358,  358,  358,  358,  358,  358,  358,  358,  358, 
      358,  358,  358,   56,  358,  358,  359,   53,   49,   45, 
      359,   28,   27,   16,   15,  359,  359,  359,  359,  359, 
      359,  359,  359,  359,  359,  359,  359,  359,  359,  359, 
      359,  359,   10,    8,    7,    6,    5,  359,  360,  360, 
      360,  360,  360,  360,  360,  360,  360,  360,  360,  360, 
      360,  360,  360,  360,  360,  360,  360,  360,  360,  360, 
  
      360,  360,  360,  360,  360,  360,  360,  360,  360,  360, 
      360,  360,  360,  360,  360,  360,  360,  360,  360,  360, 
      360,  361,  361,  361,    0,  361,  361,  361,  361,  361, 
      361,  361,  361,  361,  361,  361,  361,  361,  361,  361, 
      361,  361,  361,  361,  361,  361,  361,  361,  361,  361, 
      361,  361,  361,  361,  361,  361,  361,  361,  361,    0, 
      361,  361,  361,  361,  362,  362,  362,    0,  362,  362, 
      362,  362,  362,  362,  362,  362,  362,  362,  362,  362, 
      362,  362,  362,  362,  362,  362,  362,  362,  362,  362, 
      362,  362,  362,  362,  362,  362,  362,  362,  362,  362, 
  
      362,  362,  362,  362,  362,  362,  362,  363,  363,  363, 
      363,  363,  363,  363,  363,  363,  363,  363,  363,  363, 
      363,  363,  363,  363,  363,  363,  363,  363,  363,  363, 
      363,  363,  363,  363,  363,  363,  363,  363,  363,  363, 
      363,  363,  363,  363,  363,  363,  363,  363,  363,  363, 
      364,    0,    0,    0,    0,  364,  364,  364,  364,  364, 
      364,  364,  364,  364,  364,  364,  364,  364,  364,  364, 
      364,  364,  364,  364,  364,  364,  364,  364,  364,  364, 
      364,  364,  364,  364,  364,  364,  364,  364,  364,  364, 
      364,  364,  364,  365,  365,  365,  365,  365,  365,  365, 
  
      365,  365,  365,  365,  365,  365,  365,  365,  365,  365, 
      365,  365,  365,  365,  365,  365,  365,  365,  365,  365, 
      365,  365,  365,  365,  365,  365,  365,  365,  365,  365, 
      365,  365,  365,  365,  365,  365,  366,  366,  366,    0, 
      366,  366,  366,  366,  366,  366,  366,  366,  366,  366, 
      366,    0,  366,  366,  366,  366,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,  366,  366,  366,  366,  366,  366,  367, 
        0,    0,    0,  367,    0,    0,    0,    0,  367,  367, 
      367,  367,  367,  367,  367,  367,  367,  367,  367,  367, 
  
      367,  367,  367,  367,  367,    0,    0,    0,    0,    0, 
      367,  368,  368,  368,    0,  368,  368,  368,  368,  368, 
      368,  368,  368,  368,  368,  368,  368,  368,  368,  368, 
      368,  368,  368,  368,  368,  368,  368,  368,  368,  368, 
      368,  368,  368,  368,  368,  368,  368,  368,  368,  368, 
      368,  368,  368,  368,  369,    0,    0,    0,  369,    0, 
        0,    0,    0,  369,  369,  369,  369,  369,  369,  369, 
      369,  369,  369,  369,  369,  369,  369,  369,  369,  369, 
        0,    0,    0,    0,    0,  369,  370,  370,  370,    0, 
      370,  370,  370,  370,  370,  370,  370,  370,  370,  370, 
  
      370,  370,  370,  370,  370,  370,  370,  370,  370,  370, 
      370,  370,  370,  370,  370,  370,  370,  370,  370,  370, 
      370,  370,  370,  370,  370,  370,  370,  370,  370,  371, 
      371,  371,    0,  371,  371,  371,  371,  371,  371,  371, 
      371,  371,  371,  371,  371,  371,  371,  371,  371,  371, 
      371,  371,  371,  371,  371,  371,  371,  371,  371,  371, 
      371,  371,  371,  371,  371,  371,  371,  371,  371,  371, 
      371,  371,  372,  372,  372,    0,  372,  372,  372,  372, 
      372,  372,  372,  372,  372,  372,  372,  372,  372,  372, 
      372,  372,  372,  372,  372,  372,  372,  372,  372,  372, 
  
      372,  372,  372,  372,  372,  372,  372,  372,  372,  372, 
        0,  372,  372,  372,  372,  373,  373,  373,    0,  373, 
      373,  373,  373,  373,  373,  373,  373,    0,  373,  373, 
        0,  373,  373,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,  373,  373,    0,    0,  373,  373,  374,    0, 
        0,    0,  374,    0,    0,    0,    0,  374,  374,  374, 
      374,  374,  374,  374,  374,  374,  374,  374,  374,  374, 
      374,  374,  374,  374,    0,    0,    0,    0,    0,  374, 
      375,  375,  375,    0,  375,  375,  375,  375,  375,  375, 
  
      375,  375,  375,  375,  375,  375,  375,  375,  375,  375, 
      375,  375,  375,  375,  375,  375,  375,  375,  375,  375, 
      375,  375,  375,  375,  375,  375,  375,  375,  375,  375, 
      375,  375,  375,  376,  376,  376,  376,  376,  376,  376, 
      376,  376,  376,  376,  376,  376,  376,  376,  376,  376, 
      376,  376,  376,  376,  376,  376,  376,  376,  376,  376, 
      376,  376,  376,  376,  376,  376,  376,  376,  376,  376, 
      376,  376,  376,  376,  376,  376,  377,  377,  377,    0, 
      377,  377,  377,  377,  377,    0,  377,  377,  377,  377, 
      377,  377,  377,  377,  377,  377,  377,  377,  377,  377, 
  
      377,  377,  377,  377,  377,  377,  377,  377,  377,  377, 
      377,  377,  377,  377,  377,  377,  377,  377,  377,  378, 
      378,  378,    0,  378,  378,  378,  378,  378,    0,  378, 
      378,  378,  378,  378,  378,  378,  378,  378,  378,  378, 
      378,  378,  378,  378,  378,  378,  378,  378,  378,  378, 
      378,  378,  378,  378,  378,  378,  378,  378,  378,  378, 
      378,  378,  379,  379,  379,    0,  379,  379,  379,  379, 
      379,  379,  379,  379,  379,  379,  379,  379,  379,  379, 
      379,    0,  379,  379,  379,  379,  379,  379,  379,  379, 
      379,  379,  379,  379,  379,  379,  379,  379,  379,  379, 
  
      379,  379,  379,    0,  379,  380,  380,  380,    0,  380, 
      380,  380,  380,  380,  380,  380,  380,  380,  380,  380, 
      380,  380,  380,  380,  380,  380,  380,  380,  380,  380, 
      380,  380,  380,  380,  380,  380,  380,  380,  380,  380, 
      380,  380,  380,  380,  380,  380,  380,  380,  381,  381, 
      381,    0,  381,  381,  381,  381,  381,  381,  381,  381, 
      381,  381,  381,    0,  381,  381,  381,  381,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,  381,  381,  381,  381,  381, 
      381,  382,    0,    0,    0,  382,    0,    0,    0,    0, 
  
      382,  382,  382,  382,  382,  382,  382,  382,  382,  382, 
      382,  382,  382,  382,  382,  382,  382,    0,    0,    0, 
        0,    0,  382,  383,    0,    0,    0,    0,  383,  383, 
      383,  383,  383,  383,  383,  383,  383,  383,  383,  383, 
      383,  383,  383,  383,  383,  383,  383,  383,  383,  383, 
      383,  383,  383,  383,  383,  383,  383,  383,  383,  383, 
      383,  383,  383,  383,  383,  383,  384,  384,  384,    0, 
      384,  384,  384,  384,  384,  384,  384,  384,  384,  384, 
      384,  384,  384,  384,  384,  384,  384,  384,  384,  384, 
      384,  384,  384,  384,  384,  384,  384,  384,  384,  384, 
  
      384,  384,  384,  384,  384,  384,  384,  384,  384,  385, 
      385,  385,    0,  385,  385,  385,  385,  385,  385,  385, 
      385,  385,  385,  385,  385,  385,  385,  385,  385,  385, 
      385,  385,  385,  385,  385,  385,  385,  385,  385,  385, 
      385,  385,  385,  385,  385,  385,  385,  385,  385,  385, 
      385,  385,  386,    0,    0,    0,    0,  386,  386,  386, 
      386,  386,  386,  386,  386,  386,  386,  386,  386,  386, 
      386,  386,  386,  386,  387,    0,    0,    0,    0,  387, 
      387,  387,  387,  387,  387,  387,  387,  387,  387,  387, 
      387,  387,  387,  387,  387,  387,  388,  388,  388,  388, 
  
      388,  388,  388,  388,  388,  388,  388,  388,  388,  388, 
      388,  388,  388,  388,  388,  388,  388,  388,  388,  388, 
      388,  388,  388,  388,  388,  388,  388,  388,  388,  388, 
      388,  388,  388,  388,  388,  388,  388,  388,  388,  389, 
      389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
      389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
      389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
      389,  389,  389,  389,  389,  389,  389,  389,  389,  389, 
      389,  389,  390,  390,  390,    0,  390,  390,  390,  390, 
      390,  390,  390,  390,  390,  390,  390,  390,  390,  390, 
  
      390,  390,  390,  390,  390,  390,  390,  390,  390,  390, 
      390,  390,  390,  390,  390,  390,  390,  390,  390,  390, 
      390,  390,    0,  390,  390,  391,  391,  391,  391,  391, 
      391,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,  391,  392,  392, 
      392,    0,  392,  392,  392,  392,  392,  392,  392,  392, 
      392,  392,  392,  392,  392,  392,  392,  392,  392,  392, 
      392,  392,  392,  392,  392,  392,  392,  392,  392,  392, 
      392,  392,  392,  392,  392,  392,  392,  392,  392,  392, 
      392,  393,  393,  393,  393,  393,  393,    0,    0,    0, 
  
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,  393,  394,  394,  394,  394,  394,  394, 
      394,  394,  394,  394,  394,  394,  394,  394,  394,  394, 
      394,  394,  394,  394,  394,  394,  394,  394,  394,  394, 
      394,  394,  394,  394,  394,  394,  394,  394,  394,  394, 
      394,  394,  394,  394,  394,  394,  394,  395,  395,  395, 
      395,  395,  395,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,  395, 
      396,  396,  396,  396,  396,  396,  396,  396,  396,  396, 
      396,  396,  396,  396,  396,  396,  396,  396,  396,  396, 
  
      396,  396,  396,  396,  396,  396,  396,  396,  396,  396, 
      396,  396,  396,  396,  396,  396,  396,  396,  396,  396, 
      396,  396,  396,  397,    0,    0,    0,  397,    0,    0, 
        0,    0,  397,  397,  397,  397,  397,  397,  397,  397, 
      397,  397,  397,  397,  397,  397,  397,  397,  397,    0, 
        0,    0,    0,    0,  397,  398,    0,    0,    0,  398, 
        0,    0,    0,    0,  398,  398,  398,  398,  398,  398, 
      398,  398,  398,  398,  398,  398,  398,  398,  398,  398, 
      398,    0,    0,    0,    0,    0,  398,  399,  399,  399, 
      399,  399,  399,    0,    0,    0,    0,    0,    0,    0, 
  
        0,    0,    0,    0,    0,    0,    0,    0,    0,  399, 
      400,  400,  400,  400,  400,  400,  400,  400,  400,  400, 
      400,  400,  400,  400,  400,  400,  400,  400,  400,  400, 
      400,  400,  400,  400,  400,  400,  400,  400,  400,  400, 
      400,  400,  400,  400,  400,  400,  400,  400,  400,  400, 
      400,  400,  400,  401,  401,  401,  401,  401,  401,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,  401,  402,  402,  402,    0, 
      402,  402,  402,  402,  402,  402,  402,  402,  402,  402, 
      402,  402,  402,  402,  402,  402,  402,  402,  402,  402, 
  
      402,  402,  402,  402,  402,  402,  402,  402,  402,  402, 
      402,  402,  402,  402,  402,  402,  402,  402,  402,  403, 
      403,  403,  403,  403,  403,    0,    0,    0,    0,    0, 
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
        0,  403,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340,  340,  340,  340,  340, 
      340,  340,  340,  340,  340,  340 
    } ; 
  
static yy_ste_type yy_last_accepting_state; 
static YY_CHAR *yy_last_accepting_cpos; 
  
/* the intent behind this definition is that it'll catch 
 * any uses of REJECT which flex missed 
 */ 
#define REJECT reject_used_but_not_detected 
#define yymore() yymrused_but_not_detected 
#define YY_MORE_ADJ 0 
  
/* these variables are all declared out here so that section 3 code can 
 * manipulate them 
 */ 
/* points to current character in buffer */ 
static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0; 
static int yy_init = 1;         /* whether we need to initialize */ 
static int yy_start = 0;        /* start state number */ 
  
/* flag which is used to allow yywrap()'s to do buffer switches 
 * instead of setting up a fresh yyin.  A bit of a hack ... 
 */ 
static int yy_did_buffer_switch_on_eof; 
  
static yy_ste_type yy_get_previous_state YY_PROTO(( void )); 
static yy_ste_type yy_try_NUL_trans YY_PROTO(( yy_ste_type current_state )); 
static int yy_get_next_buffer YY_PROTO(( void )); 
static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr )); 
void yyrestrt YY_PROTO(( FILE *input_file )); 
void yyswtobf YY_PROTO(( YY_BUFFER_STATE new_buffer )); 
void yyldbfst YY_PROTO(( void )); 
YY_BUFFER_STATE yycrbffr YY_PROTO(( FILE *file, int size )); 
void yydlbffr YY_PROTO(( YY_BUFFER_STATE b )); 
void yyinbffr YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); 
  
#define yy_new_buffer yycrbffr 
  
#ifdef __cplusplus 
static int yyinput YY_PROTO(( void )); 
#else 
static int input YY_PROTO(( void )); 
#endif 
  
YY_DECL 
    { 
    register yy_ste_type yy_current_state; 
    register YY_CHAR *yy_cp, *yy_bp; 
    register int yy_act; 
  
  
    static int bracelevel, didadef; 
    int i, indented_code, checking_used, new_xlation; 
    int doing_codeblock = false; 
    Char nmdef[MAXLINE], myesc(); 
  
  
    if ( yy_init ) 
        { 
        YY_USER_INIT; 
  
        if ( ! yy_start ) 
            yy_start = 1;       /* first start state */ 
  
        if ( ! yyin ) 
            yyin = stdin; 
  
        if ( ! yyout ) 
            yyout = stdout; 
  
        if ( yy_current_buffer ) 
            yyinbffr( yy_current_buffer, yyin ); 
        else 
            yy_current_buffer = yycrbffr( yyin, YY_BUF_SIZE ); 
  
        yyldbfst(); 
  
        yy_init = 0; 
        } 
  
    while ( 1 )         /* loops until end-of-file is reached */ 
        { 
        yy_cp = yy_c_buf_p; 
  
        /* support of yytext */ 
        *yy_cp = yy_hold_char; 
  
        /* yy_bp points to the position in yy_ch_buf of the start of the 
         * current run. 
         */ 
        yy_bp = yy_cp; 
  
	yy_current_state = yy_start; 
	if ( yy_bp[-1] == '\n' ) 
	    ++yy_current_state; 
yy_match: 
	do 
	    { 
	    register YY_CHAR yy_c = yy_ec[*yy_cp]; 
	    if ( yy_accept[yy_current_state] ) 
		{ 
		yy_last_accepting_state = yy_current_state; 
		yy_last_accepting_cpos = yy_cp; 
		} 
	    while(yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) 
		{ 
		yy_current_state = yy_def[yy_current_state]; 
		} 
	    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 
	    ++yy_cp; 
	    } 
	while ( yy_current_state != 340 ); 
	yy_cp = yy_last_accepting_cpos; 
	yy_current_state = yy_last_accepting_state; 
  
yy_find_action: 
	yy_act = yy_accept[yy_current_state]; 
  
        YY_DO_BEFORE_ACTION; 
        YY_USER_ACTION; 
  
do_action:      /* this label is used only to access EOF actions */ 
  
  
        switch ( yy_act ) 
            { 
	    case 0: /* must backtrack */ 
	    /* undo the effects of YY_DO_BEFORE_ACTION */ 
	    *yy_cp = yy_hold_char; 
	    yy_cp = yy_last_accepting_cpos; 
	    yy_current_state = yy_last_accepting_state; 
	    goto yy_find_action; 
  
case 1: 
# line 90 "" 
indented_code = true; BEGIN(CODEBLOCK); 
	YY_BREAK 
case 2: 
# line 91 "" 
++linenum; /* treat as a comment */ 
	YY_BREAK 
case 3: 
# line 92 "" 
ECHO; BEGIN(C_COMMENT); 
	YY_BREAK 
case 4: 
# line 93 "" 
return ( SCDECL ); 
	YY_BREAK 
case 5: 
# line 94 "" 
return ( XSCDECL ); 
	YY_BREAK 
case 6: 
# line 95 "" 
{ 
                        ++linenum; 
                        lndirout( stdout ); 
                        indented_code = false; 
                        BEGIN(CODEBLOCK); 
                        } 
	YY_BREAK 
case 7: 
# line 102 "" 
return ( WHITESPACE ); 
	YY_BREAK 
case 8: 
# line 104 "" 
{ 
                        sectnum = 2; 
                        lndirout( stdout ); 
                        BEGIN(SECT2PROLOG); 
                        return ( SECTEND ); 
                        } 
	YY_BREAK 
case 9: 
# line 111 "" 
{ 
        pptmsg( "warning - %%used/%%unused have been deprecated" ); 
                        checking_used = REALLY_USED; BEGIN(USED_LIST); 
                        } 
	YY_BREAK 
case 10: 
# line 115 "" 
{ 
                        checking_used = REALLY_NOT_USED; BEGIN(USED_LIST); 
        pptmsg( "warning - %%used/%%unused have been deprecated" ); 
                        checking_used = REALLY_NOT_USED; BEGIN(USED_LIST); 
                        } 
	YY_BREAK 
case 11: 
# line 122 "" 
{ 
#ifdef NOTDEF 
                        fprintf( stderr, 
                             "old-style lex command at line %d ignored:\n\t%s", 
                                 linenum, yytext ); 
#endif 
                        ++linenum; 
                        } 
	YY_BREAK 
case 12: 
# line 131 "" 
/* ignore old lex directive */ 
	YY_BREAK 
case 13: 
# line 133 "" 
{ 
                        ++linenum; 
                        xlation = 
                            (int *) malloc( sizeof( int ) * (unsigned) csize ); 
  
                        if ( ! xlation ) 
                            flxfatal( 
                                "dynamic memory failure building %t table" ); 
  
                        for ( i = 0; i < csize; ++i ) 
                            xlation[i] = 0; 
  
                        nuxlatns = 0; 
  
                        BEGIN(XLATION); 
                        } 
	YY_BREAK 
case 14: 
# line 150 "" 
synerr( "unrecognized '%' directive" ); 
	YY_BREAK 
case 15: 
# line 152 "" 
{ 
                        (void) strcpy( nmstr, (char *) yytext ); 
                        didadef = false; 
                        BEGIN(PICKUPDEF); 
                        } 
	YY_BREAK 
case 16: 
# line 158 "" 
RETURNNAME; 
	YY_BREAK 
case 17: 
# line 159 "" 
++linenum; /* allows blank lines in section 1 */ 
	YY_BREAK 
case 18: 
# line 160 "" 
++linenum; return ( '\n' ); 
	YY_BREAK 
case 19: 
# line 161 "" 
synerr( "illegal character" ); BEGIN(RECOVER); 
	YY_BREAK 
case 20: 
# line 164 "" 
ECHO; BEGIN(INITIAL); 
	YY_BREAK 
case 21: 
# line 165 "" 
++linenum; ECHO; BEGIN(INITIAL); 
	YY_BREAK 
case 22: 
# line 166 "" 
ECHO; 
	YY_BREAK 
case 23: 
# line 167 "" 
ECHO; 
	YY_BREAK 
case 24: 
# line 168 "" 
++linenum; ECHO; 
	YY_BREAK 
case 25: 
# line 171 "" 
++linenum; BEGIN(INITIAL); 
	YY_BREAK 
case 26: 
# line 172 "" 
ECHO; CHECK_REJECT(yytext); 
	YY_BREAK 
case 27: 
# line 173 "" 
ECHO; CHECK_YYMORE(yytext); 
	YY_BREAK 
case 28: 
# line 174 "" 
ECHO; 
	YY_BREAK 
case 29: 
# line 175 "" 
{ 
                        ++linenum; 
                        ECHO; 
                        if ( indented_code ) 
                            BEGIN(INITIAL); 
                        } 
	YY_BREAK 
case 30: 
# line 183 "" 
/* separates name and definition */ 
	YY_BREAK 
case 31: 
# line 185 "" 
{ 
                        (void) strcpy( (char *) nmdef, (char *) yytext ); 
  
                        for ( i = strlen( (char *) nmdef ) - 1; 
                              i >= 0 && 
                              nmdef[i] == ' ' || nmdef[i] == '\t'; 
                              --i ) 
                            ; 
  
                        nmdef[i + 1] = '\0'; 
  
                        ndinstal( nmstr, nmdef ); 
                        didadef = true; 
                        } 
	YY_BREAK 
case 32: 
# line 200 "" 
{ 
                        if ( ! didadef ) 
                            synerr( "incomplete name definition" ); 
                        BEGIN(INITIAL); 
                        ++linenum; 
                        } 
	YY_BREAK 
case 33: 
# line 207 "" 
++linenum; BEGIN(INITIAL); RETURNNAME; 
	YY_BREAK 
case 34: 
# line 210 "" 
++linenum; BEGIN(INITIAL); 
	YY_BREAK 
case 35: 
# line 211 "" 
  
	YY_BREAK 
case 36: 
# line 212 "" 
{ 
                        if ( allupper( yytext ) ) 
                            rjctused = checking_used; 
                        else 
                            synerr( "unrecognized %used/%unused construct" ); 
                        } 
	YY_BREAK 
case 37: 
# line 218 "" 
{ 
                        if ( alllower( yytext ) ) 
                            yymrreus = checking_used; 
                        else 
                            synerr( "unrecognized %used/%unused construct" ); 
                        } 
	YY_BREAK 
case 38: 
# line 224 "" 
synerr( "unrecognized %used/%unused construct" ); 
	YY_BREAK 
case 39: 
# line 227 "" 
++linenum; BEGIN(INITIAL); 
	YY_BREAK 
case 40: 
# line 228 "" 
++nuxlatns; new_xlation = true; 
	YY_BREAK 
case 41: 
# line 229 "" 
synerr( "bad row in translation table" ); 
	YY_BREAK 
case 42: 
# line 230 "" 
/* ignore whitespace */ 
	YY_BREAK 
case 43: 
# line 232 "" 
{ 
                        xlation[myesc( yytext )] = 
                                (new_xlation ? nuxlatns : -nuxlatns); 
                        new_xlation = false; 
                        } 
	YY_BREAK 
case 44: 
# line 237 "" 
{ 
                        xlation[yytext[0]] = 
                                (new_xlation ? nuxlatns : -nuxlatns); 
                        new_xlation = false; 
                        } 
	YY_BREAK 
case 45: 
# line 243 "" 
++linenum; 
	YY_BREAK 
case 46: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp -= 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 246 "" 
{ 
                        ++linenum; 
                        ACTION_ECHO; 
                        MARK_END_OF_PROLOG; 
                        BEGIN(SECT2); 
                        } 
	YY_BREAK 
case 47: 
# line 253 "" 
++linenum; ACTION_ECHO; 
	YY_BREAK 
case YY_STATE_EOF(SECT2PROLOG): 
# line 255 "" 
MARK_END_OF_PROLOG; yyterminate(); 
	YY_BREAK 
case 49: 
# line 257 "" 
++linenum; /* allow blank lines in section 2 */ 
	YY_BREAK 
case 50: 
# line 259 "" 
{ 
                        indented_code = (yytext[0] != '%'); 
                        doing_codeblock = true; 
                        bracelevel = 1; 
  
                        if ( indented_code ) 
                            ACTION_ECHO; 
  
                        BEGIN(CODEBLOCK_2); 
                        } 
	YY_BREAK 
case 51: 
# line 270 "" 
BEGIN(SC); return ( '<' ); 
	YY_BREAK 
case 52: 
# line 271 "" 
return ( '^' ); 
	YY_BREAK 
case 53: 
# line 272 "" 
BEGIN(QUOTE); return ( '"' ); 
	YY_BREAK 
case 54: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 273 "" 
BEGIN(NUM); return ( '{' ); 
	YY_BREAK 
case 55: 
# line 274 "" 
BEGIN(BRACEERROR); 
	YY_BREAK 
case 56: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 275 "" 
return ( '$' ); 
	YY_BREAK 
case 57: 
# line 277 "" 
{ 
                        bracelevel = 1; 
                        BEGIN(PERCENT_BRACE_ACTION); 
                        return ( '\n' ); 
                        } 
	YY_BREAK 
case 58: 
# line 282 "" 
cntdactn = true; ++linenum; return ( '\n' ); 
	YY_BREAK 
case 59: 
# line 284 "" 
{ 
                        /* this rule is separate from the one below because 
                         * otherwise we get variable trailing context, so 
                         * we can't build the scanner using -{f,F} 
                         */ 
                        bracelevel = 0; 
                        cntdactn = false; 
                        BEGIN(ACTION); 
                        return ( '\n' ); 
                        } 
	YY_BREAK 
case 60: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp -= 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 295 "" 
{ 
                        bracelevel = 0; 
                        cntdactn = false; 
                        BEGIN(ACTION); 
                        return ( '\n' ); 
                        } 
	YY_BREAK 
case 61: 
# line 302 "" 
++linenum; return ( '\n' ); 
	YY_BREAK 
case 62: 
# line 304 "" 
return ( EOF_OP ); 
	YY_BREAK 
case 63: 
# line 306 "" 
{ 
                        sectnum = 3; 
                        BEGIN(SECT3); 
                        return ( EOF ); /* to stop the parser */ 
                        } 
	YY_BREAK 
case 64: 
# line 312 "" 
{ 
                        int cclval; 
  
                        (void) strcpy( nmstr, (char *) yytext ); 
  
                        /* check to see if we've already encountered this ccl */ 
                        if ( (cclval = ccllookp( (Char *) nmstr )) ) 
                            { 
                            yylval = cclval; 
                            ++cclreuse; 
                            return ( PREVCCL ); 
                            } 
                        else 
                            { 
                            /* we fudge a bit.  We know that this ccl will 
                             * soon be numbered as lastccl + 1 by cclinit 
                             */ 
                            cclnstal( (Char *) nmstr, lastccl + 1 ); 
  
                            /* push back everything but the leading bracket 
                             * so the ccl can be rescanned 
                             */ 
                            PUT_BACK_STRING((Char *) nmstr, 1); 
  
                            BEGIN(FIRSTCCL); 
                            return ( '[' ); 
                            } 
                        } 
	YY_BREAK 
case 65: 
# line 341 "" 
{ 
                        register Char *nmdefptr; 
                        Char *ndlookup(); 
  
                        (void) strcpy( nmstr, (char *) yytext ); 
                        nmstr[yyleng - 1] = '\0';  /* chop trailing brace */ 
  
                        /* lookup from "nmstr + 1" to chop leading brace */ 
                        if ( ! (nmdefptr = ndlookup( nmstr + 1 )) ) 
                            synerr( "undefined {name}" ); 
  
                        else 
                            { /* push back name surrounded by ()'s */ 
                            unput(')'); 
                            PUT_BACK_STRING(nmdefptr, 0); 
                            unput('('); 
                            } 
                        } 
	YY_BREAK 
case 66: 
# line 360 "" 
return ( yytext[0] ); 
	YY_BREAK 
case 67: 
# line 361 "" 
RETURNCHAR; 
	YY_BREAK 
case 68: 
# line 362 "" 
++linenum; return ( '\n' ); 
	YY_BREAK 
case 69: 
# line 365 "" 
return ( ',' ); 
	YY_BREAK 
case 70: 
# line 366 "" 
BEGIN(SECT2); return ( '>' ); 
	YY_BREAK 
case 71: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 367 "" 
BEGIN(CARETISBOL); return ( '>' ); 
	YY_BREAK 
case 72: 
# line 368 "" 
RETURNNAME; 
	YY_BREAK 
case 73: 
# line 369 "" 
synerr( "bad start condition name" ); 
	YY_BREAK 
case 74: 
# line 371 "" 
BEGIN(SECT2); return ( '^' ); 
	YY_BREAK 
case 75: 
# line 374 "" 
RETURNCHAR; 
	YY_BREAK 
case 76: 
# line 375 "" 
BEGIN(SECT2); return ( '"' ); 
	YY_BREAK 
case 77: 
# line 377 "" 
{ 
                        synerr( "missing quote" ); 
                        BEGIN(SECT2); 
                        ++linenum; 
                        return ( '"' ); 
                        } 
	YY_BREAK 
case 78: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 385 "" 
BEGIN(CCL); return ( '^' ); 
	YY_BREAK 
case 79: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 386 "" 
return ( '^' ); 
	YY_BREAK 
case 80: 
# line 387 "" 
BEGIN(CCL); yylval = '-'; return ( CHAR ); 
	YY_BREAK 
case 81: 
# line 388 "" 
BEGIN(CCL); RETURNCHAR; 
	YY_BREAK 
case 82: 
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 
yy_c_buf_p = yy_cp = yy_bp + 1; 
YY_DO_BEFORE_ACTION; /* set up yytext again */ 
# line 390 "" 
return ( '-' ); 
	YY_BREAK 
case 83: 
# line 391 "" 
RETURNCHAR; 
	YY_BREAK 
case 84: 
# line 392 "" 
BEGIN(SECT2); return ( ']' ); 
	YY_BREAK 
case 85: 
# line 395 "" 
{ 
                        yylval = myctoi( yytext ); 
                        return ( NUMBER ); 
                        } 
	YY_BREAK 
case 86: 
# line 400 "" 
return ( ',' ); 
	YY_BREAK 
case 87: 
# line 401 "" 
BEGIN(SECT2); return ( '}' ); 
	YY_BREAK 
case 88: 
# line 403 "" 
{ 
                        synerr( "bad character inside {}'s" ); 
                        BEGIN(SECT2); 
                        return ( '}' ); 
                        } 
	YY_BREAK 
case 89: 
# line 409 "" 
{ 
                        synerr( "missing }" ); 
                        BEGIN(SECT2); 
                        ++linenum; 
                        return ( '}' ); 
                        } 
	YY_BREAK 
case 90: 
# line 417 "" 
synerr( "bad name in {}'s" ); BEGIN(SECT2); 
	YY_BREAK 
case 91: 
# line 418 "" 
synerr( "missing }" ); ++linenum; BEGIN(SECT2); 
	YY_BREAK 
case 92: 
# line 421 "" 
bracelevel = 0; 
	YY_BREAK 
case 93: 
# line 422 "" 
{ 
                        ACTION_ECHO; 
                        CHECK_REJECT(yytext); 
                        } 
	YY_BREAK 
case 94: 
# line 426 "" 
{ 
                        ACTION_ECHO; 
                        CHECK_YYMORE(yytext); 
                        } 
	YY_BREAK 
case 95: 
# line 430 "" 
ACTION_ECHO; 
	YY_BREAK 
case 96: 
# line 431 "" 
{ 
                        ++linenum; 
                        ACTION_ECHO; 
                        if ( bracelevel == 0 || 
                             (doing_codeblock && indented_code) ) 
                            { 
                            if ( ! doing_codeblock ) 
                                fputs( "\tYY_BREAK\n", tmpactfl ); 
  
                            doing_codeblock = false; 
                            BEGIN(SECT2); 
                            } 
                        } 
	YY_BREAK 
        /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ 
case 97: 
# line 447 "" 
ACTION_ECHO; ++bracelevel; 
	YY_BREAK 
case 98: 
# line 448 "" 
ACTION_ECHO; --bracelevel; 
	YY_BREAK 
case 99: 
# line 449 "" 
ACTION_ECHO; 
	YY_BREAK 
case 100: 
# line 450 "" 
ACTION_ECHO; 
	YY_BREAK 
case 101: 
# line 451 "" 
ACTION_ECHO; BEGIN(ACTION_COMMENT); 
	YY_BREAK 
case 102: 
# line 452 "" 
ACTION_ECHO; /* character constant */ 
	YY_BREAK 
case 103: 
# line 453 "" 
ACTION_ECHO; BEGIN(ACTION_STRING); 
	YY_BREAK 
case 104: 
# line 454 "" 
{ 
                        ++linenum; 
                        ACTION_ECHO; 
                        if ( bracelevel == 0 ) 
                            { 
                            fputs( "\tYY_BREAK\n", tmpactfl ); 
                            BEGIN(SECT2); 
                            } 
                        } 
	YY_BREAK 
case 105: 
# line 463 "" 
ACTION_ECHO; 
	YY_BREAK 
case 106: 
# line 465 "" 
ACTION_ECHO; BEGIN(ACTION); 
	YY_BREAK 
case 107: 
# line 466 "" 
ACTION_ECHO; 
	YY_BREAK 
case 108: 
# line 467 "" 
ACTION_ECHO; 
	YY_BREAK 
case 109: 
# line 468 "" 
++linenum; ACTION_ECHO; 
	YY_BREAK 
case 110: 
# line 469 "" 
ACTION_ECHO; 
	YY_BREAK 
case 111: 
# line 471 "" 
ACTION_ECHO; 
	YY_BREAK 
case 112: 
# line 472 "" 
ACTION_ECHO; 
	YY_BREAK 
case 113: 
# line 473 "" 
++linenum; ACTION_ECHO; 
	YY_BREAK 
case 114: 
# line 474 "" 
ACTION_ECHO; BEGIN(ACTION); 
	YY_BREAK 
case 115: 
# line 475 "" 
ACTION_ECHO; 
	YY_BREAK 
case YY_STATE_EOF(ACTION): 
case YY_STATE_EOF(ACTION_COMMENT): 
case YY_STATE_EOF(ACTION_STRING): 
# line 477 "" 
{ 
                        synerr( "EOF encountered inside an action" ); 
                        yyterminate(); 
                        } 
	YY_BREAK 
case 117: 
# line 483 "" 
{ 
                        yylval = myesc( yytext ); 
                        return ( CHAR ); 
                        } 
	YY_BREAK 
case 118: 
# line 488 "" 
{ 
                        yylval = myesc( yytext ); 
                        BEGIN(CCL); 
                        return ( CHAR ); 
                        } 
	YY_BREAK 
case 119: 
# line 495 "" 
ECHO; 
	YY_BREAK 
case 120: 
# line 496 "" 
YY_FATAL_ERROR( "flex scanner jammed" ); 
	YY_BREAK 
case YY_STATE_EOF(INITIAL): 
case YY_STATE_EOF(SECT2): 
case YY_STATE_EOF(SECT3): 
case YY_STATE_EOF(CODEBLOCK): 
case YY_STATE_EOF(PICKUPDEF): 
case YY_STATE_EOF(SC): 
case YY_STATE_EOF(CARETISBOL): 
case YY_STATE_EOF(NUM): 
case YY_STATE_EOF(QUOTE): 
case YY_STATE_EOF(FIRSTCCL): 
case YY_STATE_EOF(CCL): 
case YY_STATE_EOF(RECOVER): 
case YY_STATE_EOF(BRACEERROR): 
case YY_STATE_EOF(C_COMMENT): 
case YY_STATE_EOF(PERCENT_BRACE_ACTION): 
case YY_STATE_EOF(USED_LIST): 
case YY_STATE_EOF(CODEBLOCK_2): 
case YY_STATE_EOF(XLATION): 
    yyterminate(); 
  
            case YY_END_OF_BUFFER: 
                { 
                /* amount of text matched not including the EOB char */ 
                int yy_amount_of_matched_text = yy_cp - yytext - 1; 
  
                /* undo the effects of YY_DO_BEFORE_ACTION */ 
                *yy_cp = yy_hold_char; 
  
                /* note that here we test for yy_c_buf_p "<=" to the position 
                 * of the first EOB in the buffer, since yy_c_buf_p will 
                 * already have been incremented past the NUL character 
                 * (since all states make transitions on EOB to the end- 
                 * of-buffer state).  Contrast this with the test in yyinput(). 
                 */ 
                if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 
                    /* this was really a NUL */ 
                    { 
                    yy_ste_type yy_next_state; 
  
                    yy_c_buf_p = yytext + yy_amount_of_matched_text; 
  
                    yy_current_state = yy_get_previous_state(); 
  
                    /* okay, we're now positioned to make the 
                     * NUL transition.  We couldn't have 
                     * yy_get_previous_state() go ahead and do it 
                     * for us because it doesn't know how to deal 
                     * with the possibility of jamming (and we 
                     * don't want to build jamming into it because 
                     * then it will run more slowly) 
                     */ 
  
                    yy_next_state = yy_try_NUL_trans( yy_current_state ); 
  
                    yy_bp = yytext + YY_MORE_ADJ; 
  
                    if ( yy_next_state ) 
                        { 
                        /* consume the NUL */ 
                        yy_cp = ++yy_c_buf_p; 
                        yy_current_state = yy_next_state; 
                        goto yy_match; 
                        } 
  
                    else 
                        { 
			    yy_cp = yy_last_accepting_cpos; 
			    yy_current_state = yy_last_accepting_state; 
                        goto yy_find_action; 
                        } 
                    } 
  
                else switch ( yy_get_next_buffer() ) 
                    { 
                    case EOB_ACT_END_OF_FILE: 
                        { 
                        yy_did_buffer_switch_on_eof = 0; 
  
                        if ( yywrap() ) 
                            { 
                            /* note: because we've taken care in 
                             * yy_get_next_buffer() to have set up yytext, 
                             * we can now set up yy_c_buf_p so that if some 
                             * total hoser (like flex itself) wants 
                             * to call the scanner after we return the 
                             * YY_NULL, it'll still work - another YY_NULL 
                             * will get returned. 
                             */ 
                            yy_c_buf_p = yytext + YY_MORE_ADJ; 
  
                            yy_act = YY_STATE_EOF((yy_start - 1) / 2); 
                            goto do_action; 
                            } 
  
                        else 
                            { 
                            if ( ! yy_did_buffer_switch_on_eof ) 
                                YY_NEW_FILE; 
                            } 
                        } 
                        break; 
  
                    case EOB_ACT_CONTINUE_SCAN: 
                        yy_c_buf_p = yytext + yy_amount_of_matched_text; 
  
                        yy_current_state = yy_get_previous_state(); 
  
                        yy_cp = yy_c_buf_p; 
                        yy_bp = yytext + YY_MORE_ADJ; 
                        goto yy_match; 
  
                    case EOB_ACT_LAST_MATCH: 
                        yy_c_buf_p = 
                            &yy_current_buffer->yy_ch_buf[yy_n_chars]; 
  
                        yy_current_state = yy_get_previous_state(); 
  
                        yy_cp = yy_c_buf_p; 
                        yy_bp = yytext + YY_MORE_ADJ; 
                        goto yy_find_action; 
                    } 
                break; 
                } 
  
            default: 
#ifdef FLEX_DEBUG 
                printf( "action # %d\n", yy_act ); 
#endif 
                YY_FATAL_ERROR( 
                        "fatal flex scanner internal error--no action found" ); 
            } 
        } 
    } 
  
  
/* yy_get_next_buffer - try to read in a new buffer 
 * 
 * synopsis 
 *     int yy_get_next_buffer(); 
 * 
 * returns a code representing an action 
 *     EOB_ACT_LAST_MATCH - 
 *     EOB_ACT_CONTINUE_SCAN - continue scanning from current position 
 *     EOB_ACT_END_OF_FILE - end of file 
 */ 
  
static int yy_get_next_buffer() 
  
    { 
    register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; 
    register YY_CHAR *source = yytext - 1; /* copy prev. char, too */ 
    register int number_to_move, i; 
    int ret_val; 
  
    if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) 
        YY_FATAL_ERROR( 
                "fatal flex scanner internal error--end of buffer missed" ); 
  
    /* try to read more data */ 
  
    /* first move last chars to start of buffer */ 
    number_to_move = yy_c_buf_p - yytext; 
  
    for ( i = 0; i < number_to_move; ++i ) 
        *(dest++) = *(source++); 
  
    if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN ) 
        /* don't do the read, it's not guaranteed to return an EOF, 
         * just force an EOF 
         */ 
        yy_n_chars = 0; 
  
    else 
        { 
        int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; 
  
        if ( num_to_read > YY_READ_BUF_SIZE ) 
            num_to_read = YY_READ_BUF_SIZE; 
  
        else if ( num_to_read <= 0 ) 
            YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); 
  
        /* read in more data */ 
        YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), 
                  yy_n_chars, num_to_read ); 
        } 
  
    if ( yy_n_chars == 0 ) 
        { 
        if ( number_to_move == 1 ) 
            { 
            ret_val = EOB_ACT_END_OF_FILE; 
            yy_current_buffer->yy_eof_status = EOF_DONE; 
            } 
  
        else 
            { 
            ret_val = EOB_ACT_LAST_MATCH; 
            yy_current_buffer->yy_eof_status = EOF_PENDING; 
            } 
        } 
  
    else 
        ret_val = EOB_ACT_CONTINUE_SCAN; 
  
    yy_n_chars += number_to_move; 
    yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; 
    yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 
  
    /* yytext begins at the second character in yy_ch_buf; the first 
     * character is the one which preceded it before reading in the latest 
     * buffer; it needs to be kept around in case it's a newline, so 
     * yy_get_previous_state() will have with '^' rules active 
     */ 
  
    yytext = &yy_current_buffer->yy_ch_buf[1]; 
  
    return ( ret_val ); 
    } 
  
  
/* yy_get_previous_state - get the state just before the EOB char was reached 
 * 
 * synopsis 
 *     yy_ste_type yy_get_previous_state(); 
 */ 
  
static yy_ste_type yy_get_previous_state() 
  
    { 
    register yy_ste_type yy_current_state; 
    register YY_CHAR *yy_cp; 
  
    register YY_CHAR *yy_bp = yytext; 
  
    yy_current_state = yy_start; 
    if ( yy_bp[-1] == '\n' ) 
	++yy_current_state; 
  
    for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) 
        { 
	register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1); 
	if ( yy_accept[yy_current_state] ) 
	    { 
	    yy_last_accepting_state = yy_current_state; 
	    yy_last_accepting_cpos = yy_cp; 
	    } 
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 
	    { 
	    yy_current_state = yy_def[yy_current_state]; 
	    } 
	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 
        } 
  
    return ( yy_current_state ); 
    } 
  
  
/* yy_try_NUL_trans - try to make a transition on the NUL character 
 * 
 * synopsis 
 *     next_state = yy_try_NUL_trans( current_state ); 
 */ 
  
#ifdef YY_USE_PROTOS 
static yy_ste_type yy_try_NUL_trans( register yy_ste_type yy_current_state ) 
#else 
static yy_ste_type yy_try_NUL_trans( yy_current_state ) 
register yy_ste_type yy_current_state; 
#endif 
  
    { 
    register int yy_is_jam; 
    register YY_CHAR *yy_cp = yy_c_buf_p; 
  
    register YY_CHAR yy_c = 1; 
    if ( yy_accept[yy_current_state] ) 
	{ 
	yy_last_accepting_state = yy_current_state; 
	yy_last_accepting_cpos = yy_cp; 
	} 
    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 
	{ 
	yy_current_state = yy_def[yy_current_state]; 
	} 
    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 
    yy_is_jam = (yy_current_state == 340); 
  
    return ( yy_is_jam ? 0 : yy_current_state ); 
    } 
  
  
#ifdef YY_USE_PROTOS 
static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp ) 
#else 
static void yyunput( c, yy_bp ) 
YY_CHAR c; 
register YY_CHAR *yy_bp; 
#endif 
  
    { 
    register YY_CHAR *yy_cp = yy_c_buf_p; 
  
    /* undo effects of setting up yytext */ 
    *yy_cp = yy_hold_char; 
  
    if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 
        { /* need to shift things up to make room */ 
        register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */ 
        register YY_CHAR *dest = 
            &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2]; 
        register YY_CHAR *source = 
            &yy_current_buffer->yy_ch_buf[number_to_move]; 
  
        while ( source > yy_current_buffer->yy_ch_buf ) 
            *--dest = *--source; 
  
        yy_cp += dest - source; 
        yy_bp += dest - source; 
        yy_n_chars = yy_current_buffer->yy_buf_size; 
  
        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 
            YY_FATAL_ERROR( "flex scanner push-back overflow" ); 
        } 
  
    if ( yy_cp > yy_bp && yy_cp[-1] == '\n' ) 
        yy_cp[-2] = '\n'; 
  
    *--yy_cp = c; 
  
    /* note: the formal parameter *must* be called "yy_bp" for this 
     *       macro to now work correctly 
     */ 
    YY_DO_BEFORE_ACTION; /* set up yytext again */ 
    } 
  
  
#ifdef __cplusplus 
static int yyinput() 
#else 
static int input() 
#endif 
  
    { 
    int c; 
    YY_CHAR *yy_cp = yy_c_buf_p; 
  
    *yy_cp = yy_hold_char; 
  
    if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 
        { 
        /* yy_c_buf_p now points to the character we want to return. 
         * If this occurs *before* the EOB characters, then it's a 
         * valid NUL; if not, then we've hit the end of the buffer. 
         */ 
        if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 
            /* this was really a NUL */ 
            *yy_c_buf_p = '\0'; 
  
        else 
            { /* need more input */ 
            yytext = yy_c_buf_p; 
            ++yy_c_buf_p; 
  
            switch ( yy_get_next_buffer() ) 
                { 
                case EOB_ACT_END_OF_FILE: 
                    { 
                    if ( yywrap() ) 
                        { 
                        yy_c_buf_p = yytext + YY_MORE_ADJ; 
                        return ( EOF ); 
                        } 
  
                    YY_NEW_FILE; 
  
#ifdef __cplusplus 
                    return ( yyinput() ); 
#else 
                    return ( input() ); 
#endif 
                    } 
                    break; 
  
                case EOB_ACT_CONTINUE_SCAN: 
                    yy_c_buf_p = yytext + YY_MORE_ADJ; 
                    break; 
  
                case EOB_ACT_LAST_MATCH: 
#ifdef __cplusplus 
                    YY_FATAL_ERROR( "unexpected last match in yyinput()" ); 
#else 
                    YY_FATAL_ERROR( "unexpected last match in input()" ); 
#endif 
                } 
            } 
        } 
  
    c = *yy_c_buf_p; 
    yy_hold_char = *++yy_c_buf_p; 
  
    return ( c ); 
    } 
  
  
#ifdef YY_USE_PROTOS 
void yyrestrt( FILE *input_file ) 
#else 
void yyrestrt( input_file ) 
FILE *input_file; 
#endif 
  
    { 
    yyinbffr( yy_current_buffer, input_file ); 
    yyldbfst(); 
    } 
  
  
#ifdef YY_USE_PROTOS 
void yyswtobf( YY_BUFFER_STATE new_buffer ) 
#else 
void yyswtobf( new_buffer ) 
YY_BUFFER_STATE new_buffer; 
#endif 
  
    { 
    if ( yy_current_buffer == new_buffer ) 
        return; 
  
    if ( yy_current_buffer ) 
        { 
        /* flush out information for old buffer */ 
        *yy_c_buf_p = yy_hold_char; 
        yy_current_buffer->yy_buf_pos = yy_c_buf_p; 
        yy_current_buffer->yy_n_chars = yy_n_chars; 
        } 
  
    yy_current_buffer = new_buffer; 
    yyldbfst(); 
  
    /* we don't actually know whether we did this switch during 
     * EOF (yywrap()) processing, but the only time this flag 
     * is looked at is after yywrap() is called, so it's safe 
     * to go ahead and always set it. 
     */ 
    yy_did_buffer_switch_on_eof = 1; 
    } 
  
  
#ifdef YY_USE_PROTOS 
void yyldbfst( void ) 
#else 
void yyldbfst() 
#endif 
  
    { 
    yy_n_chars = yy_current_buffer->yy_n_chars; 
    yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos; 
    yyin = yy_current_buffer->yy_input_file; 
    yy_hold_char = *yy_c_buf_p; 
    } 
  
  
#ifdef YY_USE_PROTOS 
YY_BUFFER_STATE yycrbffr( FILE *file, int size ) 
#else 
YY_BUFFER_STATE yycrbffr( file, size ) 
FILE *file; 
int size; 
#endif 
  
    { 
    YY_BUFFER_STATE b; 
  
    b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) ); 
  
    if ( ! b ) 
        YY_FATAL_ERROR( "out of dynamic memory in yycrbffr()" ); 
  
    b->yy_buf_size = size; 
  
    /* yy_ch_buf has to be 2 characters longer than the size given because 
     * we need to put in 2 end-of-buffer characters. 
     */ 
    b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) ); 
  
    if ( ! b->yy_ch_buf ) 
        YY_FATAL_ERROR( "out of dynamic memory in yycrbffr()" ); 
  
    yyinbffr( b, file ); 
  
    return ( b ); 
    } 
  
  
#ifdef YY_USE_PROTOS 
void yydlbffr( YY_BUFFER_STATE b ) 
#else 
void yydlbffr( b ) 
YY_BUFFER_STATE b; 
#endif 
  
    { 
    if ( b == yy_current_buffer ) 
        yy_current_buffer = (YY_BUFFER_STATE) 0; 
  
    free( (char *) b->yy_ch_buf ); 
    free( (char *) b ); 
    } 
  
  
#ifdef YY_USE_PROTOS 
void yyinbffr( YY_BUFFER_STATE b, FILE *file ) 
#else 
void yyinbffr( b, file ) 
YY_BUFFER_STATE b; 
FILE *file; 
#endif 
  
    { 
    b->yy_input_file = file; 
  
    /* we put in the '\n' and start reading from [1] so that an 
     * initial match-at-newline will be true. 
     */ 
  
    b->yy_ch_buf[0] = '\n'; 
    b->yy_n_chars = 1; 
  
    /* we always need two end-of-buffer characters.  The first causes 
     * a transition to the end-of-buffer state.  The second causes 
     * a jam in that state. 
     */ 
    b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 
    b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR; 
  
    b->yy_buf_pos = &b->yy_ch_buf[1]; 
  
    b->yy_eof_status = EOF_NOT_SEEN; 
    } 
# line 496 "" 
  
  
  
int yywrap() 
  
    { 
    if ( --ninfiles > 0 ) 
        { 
        stinpfle( *++inp_fles ); 
        return ( 0 ); 
        } 
  
    else 
        return ( 1 ); 
    } 
  
  
/* stinpfle - open the given file (if NULL, stdin) for scanning */ 
  
void stinpfle( file ) 
char *file; 
  
    { 
    if ( file ) 
        { 
        infilnam = file; 
        yyin = fopen( infilnam, "r" ); 
  
        if ( yyin == NULL ) 
            lerrsf( "can't open %s", file ); 
        } 
  
    else 
        { 
        yyin = stdin; 
        infilnam = ""; 
        } 
    }