Main Page | Class List | Directories | File List | Class Members | File Members

cflex.c

Go to the documentation of this file.
00001 /* A lexical scanner generated by flex */
00002 
00003 /* Scanner skeleton version:
00004  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
00005  */
00006 
00007 #define FLEX_SCANNER
00008 #define YY_FLEX_MAJOR_VERSION 2
00009 #define YY_FLEX_MINOR_VERSION 5
00010 
00011 #include <stdio.h>
00012 
00013 
00014 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
00015 #ifdef c_plusplus
00016 #ifndef __cplusplus
00017 #define __cplusplus
00018 #endif
00019 #endif
00020 
00021 
00022 #ifdef __cplusplus
00023 
00024 #include <stdlib.h>
00025 #include <unistd.h>
00026 
00027 /* Use prototypes in function declarations. */
00028 #define YY_USE_PROTOS
00029 
00030 /* The "const" storage-class-modifier is valid. */
00031 #define YY_USE_CONST
00032 
00033 #else   /* ! __cplusplus */
00034 
00035 #if __STDC__
00036 
00037 #define YY_USE_PROTOS
00038 #define YY_USE_CONST
00039 
00040 #endif  /* __STDC__ */
00041 #endif  /* ! __cplusplus */
00042 
00043 #ifdef __TURBOC__
00044  #pragma warn -rch
00045  #pragma warn -use
00046 #include <io.h>
00047 #include <stdlib.h>
00048 #define YY_USE_CONST
00049 #define YY_USE_PROTOS
00050 #endif
00051 
00052 #ifdef YY_USE_CONST
00053 #define yyconst const
00054 #else
00055 #define yyconst
00056 #endif
00057 
00058 
00059 #ifdef YY_USE_PROTOS
00060 #define YY_PROTO(proto) proto
00061 #else
00062 #define YY_PROTO(proto) ()
00063 #endif
00064 
00065 /* Returned upon end-of-file. */
00066 #define YY_NULL 0
00067 
00068 /* Promotes a possibly negative, possibly signed char to an unsigned
00069  * integer for use as an array index.  If the signed char is negative,
00070  * we want to instead treat it as an 8-bit unsigned char, hence the
00071  * double cast.
00072  */
00073 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00074 
00075 /* Enter a start condition.  This macro really ought to take a parameter,
00076  * but we do it the disgusting crufty way forced on us by the ()-less
00077  * definition of BEGIN.
00078  */
00079 #define BEGIN yy_start = 1 + 2 *
00080 
00081 /* Translate the current start state into a value that can be later handed
00082  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00083  * compatibility.
00084  */
00085 #define YY_START ((yy_start - 1) / 2)
00086 #define YYSTATE YY_START
00087 
00088 /* Action number for EOF rule of a given start state. */
00089 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00090 
00091 /* Special action meaning "start processing a new file". */
00092 #define YY_NEW_FILE yyrestart( yyin )
00093 
00094 #define YY_END_OF_BUFFER_CHAR 0
00095 
00096 /* Size of default input buffer. */
00097 #define YY_BUF_SIZE 16384
00098 
00099 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00100 
00101 extern int yyleng;
00102 extern FILE *yyin, *yyout;
00103 
00104 #define EOB_ACT_CONTINUE_SCAN 0
00105 #define EOB_ACT_END_OF_FILE 1
00106 #define EOB_ACT_LAST_MATCH 2
00107 
00108 /* The funky do-while in the following #define is used to turn the definition
00109  * int a single C statement (which needs a semi-colon terminator).  This
00110  * avoids problems with code like:
00111  *
00112  *      if ( condition_holds )
00113  *              yyless( 5 );
00114  *      else
00115  *              do_something_else();
00116  *
00117  * Prior to using the do-while the compiler would get upset at the
00118  * "else" because it interpreted the "if" statement as being all
00119  * done when it reached the ';' after the yyless() call.
00120  */
00121 
00122 /* Return all but the first 'n' matched characters back to the input stream. */
00123 
00124 #define yyless(n) \
00125         do \
00126                 { \
00127                 /* Undo effects of setting up yytext. */ \
00128                 *yy_cp = yy_hold_char; \
00129                 YY_RESTORE_YY_MORE_OFFSET \
00130                 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
00131                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00132                 } \
00133         while ( 0 )
00134 
00135 #define unput(c) yyunput( c, yytext_ptr )
00136 
00137 /* The following is because we cannot portably get our hands on size_t
00138  * (without autoconf's help, which isn't available because we want
00139  * flex-generated scanners to compile on their own).
00140  */
00141 typedef unsigned int yy_size_t;
00142 
00143 
00144 struct yy_buffer_state
00145         {
00146         FILE *yy_input_file;
00147 
00148         char *yy_ch_buf;                /* input buffer */
00149         char *yy_buf_pos;               /* current position in input buffer */
00150 
00151         /* Size of input buffer in bytes, not including room for EOB
00152          * characters.
00153          */
00154         yy_size_t yy_buf_size;
00155 
00156         /* Number of characters read into yy_ch_buf, not including EOB
00157          * characters.
00158          */
00159         int yy_n_chars;
00160 
00161         /* Whether we "own" the buffer - i.e., we know we created it,
00162          * and can realloc() it to grow it, and should free() it to
00163          * delete it.
00164          */
00165         int yy_is_our_buffer;
00166 
00167         /* Whether this is an "interactive" input source; if so, and
00168          * if we're using stdio for input, then we want to use getc()
00169          * instead of fread(), to make sure we stop fetching input after
00170          * each newline.
00171          */
00172         int yy_is_interactive;
00173 
00174         /* Whether we're considered to be at the beginning of a line.
00175          * If so, '^' rules will be active on the next match, otherwise
00176          * not.
00177          */
00178         int yy_at_bol;
00179 
00180         /* Whether to try to fill the input buffer when we reach the
00181          * end of it.
00182          */
00183         int yy_fill_buffer;
00184 
00185         int yy_buffer_status;
00186 #define YY_BUFFER_NEW 0
00187 #define YY_BUFFER_NORMAL 1
00188         /* When an EOF's been seen but there's still some text to process
00189          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00190          * shouldn't try reading from the input source any more.  We might
00191          * still have a bunch of tokens to match, though, because of
00192          * possible backing-up.
00193          *
00194          * When we actually see the EOF, we change the status to "new"
00195          * (via yyrestart()), so that the user can continue scanning by
00196          * just pointing yyin at a new input file.
00197          */
00198 #define YY_BUFFER_EOF_PENDING 2
00199         };
00200 
00201 static YY_BUFFER_STATE yy_current_buffer = 0;
00202 
00203 /* We provide macros for accessing buffer states in case in the
00204  * future we want to put the buffer states in a more general
00205  * "scanner state".
00206  */
00207 #define YY_CURRENT_BUFFER yy_current_buffer
00208 
00209 
00210 /* yy_hold_char holds the character lost when yytext is formed. */
00211 static char yy_hold_char;
00212 
00213 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00214 
00215 
00216 int yyleng;
00217 
00218 /* Points to current character in buffer. */
00219 static char *yy_c_buf_p = (char *) 0;
00220 static int yy_init = 1;         /* whether we need to initialize */
00221 static int yy_start = 0;        /* start state number */
00222 
00223 /* Flag which is used to allow yywrap()'s to do buffer switches
00224  * instead of setting up a fresh yyin.  A bit of a hack ...
00225  */
00226 static int yy_did_buffer_switch_on_eof;
00227 
00228 void yyrestart YY_PROTO(( FILE *input_file ));
00229 
00230 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
00231 void yy_load_buffer_state YY_PROTO(( void ));
00232 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
00233 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00234 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
00235 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
00236 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
00237 
00238 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
00239 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
00240 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
00241 
00242 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00243 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
00244 static void yy_flex_free YY_PROTO(( void * ));
00245 
00246 #define yy_new_buffer yy_create_buffer
00247 
00248 #define yy_set_interactive(is_interactive) \
00249         { \
00250         if ( ! yy_current_buffer ) \
00251                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00252         yy_current_buffer->yy_is_interactive = is_interactive; \
00253         }
00254 
00255 #define yy_set_bol(at_bol) \
00256         { \
00257         if ( ! yy_current_buffer ) \
00258                 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00259         yy_current_buffer->yy_at_bol = at_bol; \
00260         }
00261 
00262 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00263 
00264 
00265 #define yywrap() 1
00266 #define YY_SKIP_YYWRAP
00267 typedef unsigned char YY_CHAR;
00268 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00269 typedef int yy_state_type;
00270 extern char *yytext;
00271 #define yytext_ptr yytext
00272 
00273 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
00274 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
00275 static int yy_get_next_buffer YY_PROTO(( void ));
00276 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
00277 
00278 /* Done after the current pattern has been matched and before the
00279  * corresponding action - sets up yytext.
00280  */
00281 #define YY_DO_BEFORE_ACTION \
00282         yytext_ptr = yy_bp; \
00283         yyleng = (int) (yy_cp - yy_bp); \
00284         yy_hold_char = *yy_cp; \
00285         *yy_cp = '\0'; \
00286         yy_c_buf_p = yy_cp;
00287 
00288 #define YY_NUM_RULES 37
00289 #define YY_END_OF_BUFFER 38
00290 static yyconst short int yy_accept[588] =
00291     {   0,
00292        34,   34,   34,   34,   38,   35,   14,   13,   30,   35,
00293        16,   33,   31,   36,   35,   25,   27,   34,   35,   30,
00294        30,   31,   31,   21,   34,   30,   30,   35,   30,   30,
00295        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00296        30,   30,   30,   30,   26,   36,   28,   30,   24,   35,
00297        24,   34,   24,   24,   24,   24,   24,   24,   24,   24,
00298        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00299        24,   35,   14,   30,    0,   30,   35,   35,   30,    0,
00300        30,   35,    0,   32,   16,   16,   16,   33,   33,   33,
00301        34,   33,   31,   31,   35,    0,   34,   34,    0,   20,
00302 
00303        30,   30,   31,   31,   31,   30,   19,   30,   31,   31,
00304        31,   31,   34,   30,   35,    0,   30,   30,   30,   30,
00305        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00306        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00307        30,   30,    0,   31,   31,   24,   24,   24,   24,   24,
00308        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00309        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00310        24,   24,   24,   24,   24,   24,   22,   32,   16,   23,
00311        17,   22,   18,   31,    0,    0,   34,   34,   29,    0,
00312        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00313 
00314        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00315        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00316        30,   22,   22,   24,   24,   24,   24,   24,   24,   24,
00317        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00318        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00319        24,   24,   24,   24,   16,   29,   29,   29,   23,    8,
00320        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00321        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00322        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00323        30,   30,    8,   24,   24,   24,   24,   24,   24,   24,
00324 
00325        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00326        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00327        24,   24,   24,   24,   24,   16,   30,   30,   30,   30,
00328        30,   30,   10,   30,    3,   30,   30,   30,   30,   30,
00329        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00330        30,   30,   30,   30,   30,   30,   30,   24,   24,   24,
00331        24,   24,   24,   10,   24,    3,   24,   24,   24,   24,
00332        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00333        24,   24,   24,   24,   24,   24,   24,   24,   16,    1,
00334        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00335 
00336         2,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00337        30,   30,   30,   30,   30,    1,   24,   24,   24,   24,
00338        24,   24,   24,   24,   24,   24,    2,   24,   24,   24,
00339        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00340        24,   15,   30,   30,   30,   30,   30,   30,   30,   30,
00341        30,    6,   30,   11,   30,   30,   30,   30,   30,   30,
00342        30,   30,   30,   30,   24,   24,   24,   24,   24,   24,
00343        24,   24,   24,    6,   24,   11,   24,   24,   24,   24,
00344        24,   24,   24,   24,   24,   24,   15,   15,   30,   30,
00345         7,    4,   30,   30,   30,    9,   30,   30,   30,   30,
00346 
00347        30,   30,   30,   30,   30,   24,   24,    7,    4,   24,
00348        24,   24,    9,   24,   24,   24,   24,   24,   24,   24,
00349        24,   24,   30,   30,   30,   30,   30,   30,   30,   30,
00350        30,   30,   30,   30,   30,   24,   24,   24,   24,   24,
00351        24,   24,   24,   24,   24,   24,   24,   24,   30,   30,
00352        30,   12,   30,   30,   30,   30,   30,   30,   30,   24,
00353        24,   24,   12,   24,   24,   24,   24,   24,   24,   24,
00354        30,   30,   30,   30,    5,   24,   24,   24,   24,    5,
00355        30,   30,   24,   24,   30,   24,    0
00356     } ;
00357 
00358 static yyconst int yy_ec[256] =
00359     {   0,
00360         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00361         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00362         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00363         1,    2,    4,    5,    6,    7,    8,    9,   10,   11,
00364        12,   13,   14,   15,   16,   15,   17,   18,   18,   18,
00365        18,   18,   18,   18,   18,   18,   18,   19,   20,    7,
00366        21,   22,   13,   23,   24,   24,   24,   24,   24,   24,
00367        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00368        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
00369         1,    1,    9,    1,   24,   25,   26,   27,   28,   29,
00370 
00371        30,   31,   32,   33,   34,   24,   35,   36,   37,   38,
00372        39,   40,   41,   42,   43,   44,   45,   46,   24,   24,
00373        47,   24,   48,   49,   50,    1,    1,   51,   51,   51,
00374        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00375        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00376        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00377        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00378        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00379        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00380        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00381 
00382        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00383        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00384        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00385        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00386        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
00387        51,   51,   51,   51,   51
00388     } ;
00389 
00390 static yyconst int yy_meta[52] =
00391     {   0,
00392         1,    2,    3,    4,    1,    1,    5,    6,    2,    1,
00393         7,    7,    5,    8,    9,   10,   11,    9,   12,   12,
00394        13,   14,   15,    9,    1,    9,    9,    9,    9,    9,
00395         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
00396         9,    9,    9,    9,    9,    9,    9,    5,   16,   17,
00397        18
00398     } ;
00399 
00400 static yyconst short int yy_base[633] =
00401     {   0,
00402         0,    0,   51,    0, 1208,    0, 1204, 3439,  102,  152,
00403       202,  253,  304, 3439,  354,  402,  449,  499,  550,  601,
00404       652,  703,  754,  805,    0,    0,  846,  892,  130,  118,
00405       126,  137, 1176, 1168, 1159, 1160,  140, 1160,  142, 1151,
00406      1162,  136, 1153, 1148,    0,  171,    0,  940,  990, 1163,
00407      1041, 1162, 1092,  156,  145,  134,  159, 1154, 1148, 1139,
00408      1141,  159, 1145,  160, 1136, 1147,  162, 1142, 1137,  196,
00409      1140,    0, 1172,    0, 1154, 1190, 1153, 1241,    0,  198,
00410       207, 1291, 1166,    0, 1341,    0, 1391, 1442, 1493,  214,
00411         0,    0, 1544,    0, 1594, 1160,    0, 1642, 1150, 1164,
00412 
00413         0, 1692, 1743, 1148, 1794, 1842, 1162, 1889, 1939, 1990,
00414      2035, 2082, 2131, 2172, 2218, 1140, 1128, 1126, 1128, 1117,
00415      1115, 1124,  160,   73,  113, 1115, 1112,  190, 1109, 1107,
00416      1075, 1057, 1057, 1060, 1021, 1005, 1005,  198, 1013,  998,
00417      1008,  999, 1016, 2263, 1015, 2313,  231, 2364, 2412, 2462,
00418       997,  995, 1001,  992,  990, 1002,  206,  174,  178,  993,
00419       990,  206,  988,  986,  983,  978,  983,  986,  976,  973,
00420       978,  206,  986,  972,  984,  975,    0, 3439,  202, 3439,
00421      3439,    0, 3439, 2507,  998, 2557, 2608,    0, 2654,  236,
00422       989,  971,  957,  951,  967,  949,  943,  939,  959,  937,
00423 
00424       953,  234,  938,  236,  943,  935,  949,  939,  938,  946,
00425       940,  938,  945,  934,  943,  925,  930,  932,  941,  919,
00426       926, 3439,    0,  945,  924,  913,  911,  924,  906,  902,
00427       898,  914,  892,  908,  236,  893,  238,  898,  890,  904,
00428       894,  893,  901,  895,  893,  900,  889,  898,  880,  885,
00429       887,  896,  874,  881,  247, 3439,  900,    0,  906,  897,
00430       869,  868,  881,  881,  866,  866,  888,  861,  886,  874,
00431       873,  856,  867,  854,  866,  851,  831,  826,  826,  825,
00432       824,  822,  821,  826,  818,  831,  826,  823,  822,  810,
00433       834,  807,  832,  806,  805,  818,  818,  803,  803,  825,
00434 
00435       798,  823,  813,  813,  796,  807,  794,  806,  791,  794,
00436       790,  790,  789,  787,  785,  783,  786,  778,  791,  786,
00437       782,  778,  768,  789,  762,  268,  785,  734,  734,  735,
00438       727,  717,  733,  676,  687,  661,  665,  642,  621,  635,
00439       568,  585,  560,  570,  569,  553,  565,  576,  564,  554,
00440       566,  548,  548,  543,  560,  557,  548,  566,  541,  541,
00441       554,  551,  541,  560,  542,  558,  532,  538,  549,  532,
00442       546,  520,  542,  516,  524,  523,  508,  517,  528,  516,
00443       506,  518,  500,  500,  495,  512,  509,  500,  277,  518,
00444       517,  489,  508,  490,  496,  487,  491,  499,  492,  484,
00445 
00446       507,  506,  481,  503,  501,  491,  474,  470,  487,  469,
00447       478,  476,  463,  469,  452,  476,  475,  447,  466,  448,
00448       454,  445,  449,  457,  450,  442,  465,  464,  440,  462,
00449       461,  453,  436,  432,  449,  432,  444,  443,  433,  435,
00450       420,  445,  431,  417,  440,  439,  415,  413,  435,  419,
00451       429,  428,  400,  426,  416,  397,  404,  405,  410,  410,
00452       419,  400,  402,  416,  404,  390,  413,  412,  388,  387,
00453       409,  397,  407,  406,  374,  398,  388,  368,  375,  376,
00454       381,  381,  389,  370,  368,  382,    0,  382,  357,  354,
00455       378,  377,  356,  360,  350,  373,  361,  360,  359,  344,
00456 
00457       357,  343,  366,  347,  353,  340,  337,  361,  360,  339,
00458       341,  331,  354,  342,  341,  340,  325,  338,  324,  343,
00459       324,  330,  316,  339,  312,  324,  334,  309,  307,  307,
00460       305,  304,  327,  319,  301,  300,  323,  296,  310,  320,
00461       296,  294,  294,  292,  291,  314,  306,  288,  311,  284,
00462       284,  307,  281,  304,  303,  302,  301,  281,  297,  296,
00463       269,  269,  288,  263,  282,  281,  280,  279,  259,  277,
00464       264,  274,  273,  262,  271,  259,  269,  268,  257,  266,
00465       265,  240,  212,  145,  105,   86, 3439, 2704, 2717, 2735,
00466      2753, 2771, 2789, 2804, 2822, 2840, 2854, 2869, 2887, 2902,
00467 
00468      2917, 2935, 2950, 2965, 2980, 2998, 3013, 3031, 3049, 3067,
00469      3081, 3095, 3108, 3126, 3144, 3159, 3174, 3192, 3206, 3221,
00470      3239, 3257, 3271, 3289, 3304, 3319, 3333, 3351, 3369, 3384,
00471      3402, 3420
00472     } ;
00473 
00474 static yyconst short int yy_def[633] =
00475     {   0,
00476       587,    1,  587,    3,  587,  588,  587,  587,  587,  589,
00477       590,  591,  592,  587,  593,  594,  594,  595,  596,  587,
00478       587,  587,  587,  595,  597,  598,   20,  599,   27,   27,
00479        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00480        27,   27,   27,   27,   24,  600,  597,  601,  602,  588,
00481       587,   24,  587,   53,   53,   53,   53,   53,   53,   53,
00482        53,   53,   53,   53,   53,   53,   53,   53,   53,  603,
00483       604,  588,  587,    9,  605,  596,  588,  606,  598,  600,
00484       607,  589,  608,  588,  590,  609,  590,  591,  610,  611,
00485        24,  612,  592,  613,  614,  615,  597,  616,  587,  587,
00486 
00487        20,  587,  587,   93,  587,  601,  597,  617,  618,  587,
00488       619,  620,  587,   20,  621,  622,  114,  114,  114,  114,
00489       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00490       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00491       114,  114,  587,  623,  613,  624,  625,  587,  626,  587,
00492       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00493       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00494       150,  150,  150,  150,  150,  150,  588,  587,   87,  587,
00495       587,   93,  587,  627,  628,  587,  629,  113,  616,  628,
00496       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00497 
00498       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00499       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00500       114,  587,  613,  150,  150,  150,  150,  150,  150,  150,
00501       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00502       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00503       150,  150,  150,  150,   87,  587,  630,  597,  628,   93,
00504       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00505       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00506       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00507       114,  114,  588,  150,  150,  150,  150,  150,  150,  150,
00508 
00509       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00510       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00511       150,  150,  150,  150,  150,   87,  114,  114,  114,  114,
00512       114,  114,   93,  114,   93,  114,  114,  114,  114,  114,
00513       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00514       114,  114,  114,  114,  114,  114,  114,  150,  150,  150,
00515       150,  150,  150,  588,  150,  588,  150,  150,  150,  150,
00516       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00517       150,  150,  150,  150,  150,  150,  150,  150,  631,   93,
00518       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00519 
00520        93,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00521       114,  114,  114,  114,  114,  588,  150,  150,  150,  150,
00522       150,  150,  150,  150,  150,  150,  588,  150,  150,  150,
00523       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00524       150,  632,  114,  114,  114,  114,  114,  114,  114,  114,
00525       114,   93,  114,   93,  114,  114,  114,  114,  114,  114,
00526       114,  114,  114,  114,  150,  150,  150,  150,  150,  150,
00527       150,  150,  150,  588,  150,  588,  150,  150,  150,  150,
00528       150,  150,  150,  150,  150,  150,  632,  632,  114,  114,
00529        93,   93,  114,  114,  114,   93,  114,  114,  114,  114,
00530 
00531       114,  114,  114,  114,  114,  150,  150,  588,  588,  150,
00532       150,  150,  588,  150,  150,  150,  150,  150,  150,  150,
00533       150,  150,  114,  114,  114,  114,  114,  114,  114,  114,
00534       114,  114,  114,  114,  114,  150,  150,  150,  150,  150,
00535       150,  150,  150,  150,  150,  150,  150,  150,  114,  114,
00536       114,   93,  114,  114,  114,  114,  114,  114,  114,  150,
00537       150,  150,  588,  150,  150,  150,  150,  150,  150,  150,
00538       114,  114,  114,  114,   93,  150,  150,  150,  150,  588,
00539       114,  114,  150,  150,  114,  150,    0,  587,  587,  587,
00540       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00541 
00542       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00543       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00544       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00545       587,  587
00546     } ;
00547 
00548 static yyconst short int yy_nxt[3491] =
00549     {   0,
00550         6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
00551        16,   17,   18,   19,   20,   21,   22,   20,   13,   23,
00552        24,   25,   26,   27,   28,   29,   30,   31,   32,   33,
00553        34,   35,   36,   37,   27,   38,   39,   27,   27,   40,
00554        27,   41,   42,   43,   44,   27,   27,   45,   46,   47,
00555        48,    6,    7,    8,   49,   10,   11,   12,    6,   14,
00556        15,   16,   17,   18,   50,   51,   52,   12,   51,    6,
00557        49,   24,   25,   14,   53,   28,   54,   55,   56,   57,
00558        58,   59,   60,   61,   62,   53,   63,   64,   53,   53,
00559        65,   53,   66,   67,   68,   69,   53,   53,   45,   70,
00560 
00561        47,   71,   72,  199,  364,   74,   72,   72,   72,   72,
00562       200,   72,   75,   75,   72,   72,   74,   76,   72,   74,
00563        77,   78,   72,  333,   79,   74,   72,   74,   74,   74,
00564        74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
00565        74,   74,   74,   74,   74,   74,   74,   74,   74,   72,
00566        80,  120,   81,   83,  201,  202,   84,  117,  118,  121,
00567        83,  122,   83,   83,  123,  119,  124,  134,  139,  156,
00568       125,  130,  157,   83,   83,  135,  131,  132,  154,  140,
00569       136,   75,   75,  151,  152,  168,  155,  586,  158,  143,
00570       164,  153,  159,  169,  173,  165,  166,  197,  170,  198,
00571 
00572        83,   83,   83,   86,  232,  174,   75,   75,   75,   75,
00573        86,  233,   86,   86,  143,  205,  143,   75,   75,  234,
00574       235,   92,   79,   86,   86,  143,   80,   92,  206,   79,
00575       364,  238,   92,   92,   97,   85,   92,   87,  216,  255,
00576       217,   75,   75,  230,  239,  231,  249,  256,  250,  143,
00577        86,   86,   86,   72,  259,   80,   72,   72,   72,  271,
00578        89,  304,   72,   90,   90,  274,   89,  307,  272,  389,
00579       305,   89,   89,   91,   90,   92,  326,   72,  389,  275,
00580        85,  308,  585,  333,  177,  584,  364,  364,  583,  182,
00581       582,  333,  333,  581,  442,  580,  579,  364,  364,  364,
00582 
00583       364,   85,   90,   90,   72,  578,  177,   72,   72,   72,
00584        72,  577,  576,   72,  364,  575,   72,   72,  574,  333,
00585       333,  333,  333,  573,   72,  182,  572,  571,   72,  333,
00586       570,  569,  364,  568,  567,  566,  565,  564,  563,  562,
00587       561,  364,  560,  559,  558,  333,  557,  556,  555,  554,
00588       553,   72,  552,  551,   94,   96,  550,  333,  549,  548,
00589       547,  364,   96,   84,   96,   96,  546,  545,  544,  543,
00590       542,  541,  177,  540,  539,   96,   96,  538,  177,  177,
00591       537,  536,  535,  534,  333,  533,  532,  531,  530,  529,
00592       528,  182,  527,  526,  525,  182,  182,  524,  523,  488,
00593 
00594       364,  522,   96,   96,   96,   75,  521,  364,   97,  520,
00595       519,  518,  517,  516,   97,  515,  177,   97,   97,  514,
00596        99,   75,   97,   97,  177,  513,  512,  364,  511,  510,
00597       509,  508,  507,  506,  333,  505,  504,  333,  503,  502,
00598       501,  500,  499,  498,  182,  497,  182,  496,  495,   97,
00599        75,   97,   75,  333,  494,   97,  493,  492,  491,  490,
00600       489,   97,  488,  486,   97,   97,  485,   99,   75,   97,
00601        97,  484,  483,  482,  481,  480,  479,  478,  477,  476,
00602       364,  475,  474,  177,  473,  472,  471,  470,  469,  468,
00603       467,  466,  465,  364,  177,  464,   97,   75,   97,   72,
00604 
00605       463,  462,   72,   72,   72,  461,   72,  460,   72,   97,
00606        97,  459,   72,  458,  457,  456,  455,   72,   72,  454,
00607        97,  333,  453,   72,  452,  182,  451,  450,  449,  448,
00608       447,  446,  445,  444,  443,  333,  182,  441,  440,  439,
00609       438,  437,  436,  435,  434,  433,  364,  432,   97,   97,
00610        72,  431,  430,  429,   72,   72,   72,   72,  428,   72,
00611       427,  426,   72,   72,  364,  425,   72,  364,   72,   72,
00612        72,  100,   79,  424,   72,  423,  177,  422,  177,  421,
00613       420,  419,  418,  417,  416,  415,  414,  413,  412,  411,
00614       410,  409,  408,  407,  333,  406,  405,   72,  404,  403,
00615 
00616        79,   72,  402,  401,   74,   72,   72,   91,   93,  400,
00617        72,   98,   98,   91,   72,  101,  102,  103,  101,  104,
00618       105,   91,   97,   79,  101,   72,  101,  101,  101,  101,
00619       101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
00620       101,  101,  101,  101,  101,  101,  101,  101,   91,   80,
00621        97,  106,   72,  333,  399,   76,   72,   72,   91,   93,
00622       333,   72,   97,   97,   91,   72,  102,  102,  103,  102,
00623        93,   93,   91,  107,   79,  102,   72,  102,  102,  102,
00624       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
00625       102,  102,  102,  102,  102,  102,  102,  102,  102,   91,
00626 
00627       398,   97,  108,   72,  397,  182,   72,   72,   72,   88,
00628       109,  396,   72,   90,   90,   88,   89,  110,  110,  110,
00629       110,  109,  109,   91,   90,   92,  110,   72,  110,  110,
00630       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
00631       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
00632        88,  182,   90,  111,   72,  395,  394,   78,   72,   72,
00633        72,   93,  393,   72,   75,   75,   72,   72,  105,   93,
00634        93,  105,  104,  105,   72,  392,  391,  105,   72,  105,
00635       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00636       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00637 
00638       105,   72,   80,  390,  112,   72,  388,  364,   72,   72,
00639        72,  387,   72,  386,   72,   97,   97,  385,   72,  384,
00640       383,  382,  381,   72,   72,  380,   97,  379,  378,   72,
00641       377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
00642       367,  366,  365,  364,  363,  362,  361,  360,  359,  358,
00643       177,  357,  333,  356,   97,   97,  113,  355,  354,  353,
00644       352,  351,  350,  349,  348,  347,  346,  345,  344,  114,
00645       343,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00646       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00647       114,  114,  114,  116,  342,  341,  340,  339,  338,  337,
00648 
00649       116,  336,  116,  116,  335,  334,  333,  332,  331,  330,
00650       329,  328,  327,  116,  116,  182,   84,  256,   99,  325,
00651       324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
00652       314,  313,  312,  311,  310,  309,  306,  303,  302,  301,
00653       116,  116,  116,   81,  300,  299,   97,   94,  298,  297,
00654        98,   98,   97,  296,  295,  108,  144,  294,  145,  112,
00655        97,   97,   79,  293,  292,  291,  290,  289,  288,  287,
00656       286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
00657       276,  273,  270,  269,  268,  267,  266,   97,   80,   97,
00658        72,  265,  264,  263,   72,   72,   72,   72,  262,   72,
00659 
00660        75,   75,   72,   72,  261,   72,   72,  260,   77,  256,
00661        72,  254,  253,  252,   72,  251,  248,  247,  246,  245,
00662       244,  243,  242,  241,  240,  237,  236,  229,  228,  227,
00663       226,  225,  224,  223,  222,  221,  220,   72,  147,  219,
00664       147,   72,  218,  215,  146,   72,   72,   91,   72,  214,
00665        72,   98,   98,   91,   72,  148,   91,   91,  148,   77,
00666       146,   91,   97,  213,  148,   72,  148,  148,  148,  148,
00667       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
00668       148,  148,  148,  148,  148,  148,  148,  148,   91,  147,
00669        97,  149,   72,  212,  211,  146,   72,   72,   91,   72,
00670 
00671       210,   72,  113,   98,   91,   72,  148,   91,   91,  148,
00672        77,  146,   91,   97,  209,  150,   72,  150,  150,  150,
00673       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00674       150,  150,  150,  150,  150,  150,  150,  150,  150,   91,
00675       147,   97,  149,  147,  208,  207,   97,  204,  203,  196,
00676        98,   98,   97,  195,  194,   97,   97,  193,  143,  147,
00677        97,   97,  192,  191,  178,  183,  182,  181,  180,  178,
00678       178,  177,   99,   73,  176,  175,  172,  171,  167,  163,
00679       162,  161,  160,  107,  100,  142,  141,   97,  147,   97,
00680        72,  138,  137,  133,   72,   72,   72,   72,  129,   72,
00681 
00682       128,  127,   72,   72,  126,   73,   72,  587,   72,   72,
00683        72,  587,   79,  587,   72,  587,  587,  587,  587,  587,
00684       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00685       587,  587,  587,  587,  587,  587,  587,   72,  587,  587,
00686        79,   72,  587,  587,  587,   72,   72,   72,   72,  587,
00687        72,   75,   75,   72,   72,  587,   72,   72,  587,   77,
00688       587,   72,  587,  587,  587,   72,  587,  587,  587,  587,
00689       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00690       587,  587,  587,  587,  587,  587,  587,  587,   72,   80,
00691       587,   80,   83,  587,  587,   84,  587,  587,  587,   83,
00692 
00693       587,   83,   83,  587,  587,  587,  587,  587,  587,  587,
00694       587,  587,   83,   83,  587,  587,  587,  587,  587,  587,
00695       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00696       587,  587,  587,  587,  587,  587,  587,  587,  587,   83,
00697        83,   83,   86,  587,  587,  587,  587,  587,  587,   86,
00698       587,   86,   86,  587,  587,  587,  587,  587,  587,  587,
00699       587,  587,   86,   86,  587,  587,  587,  587,  587,  587,
00700       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00701       587,  587,  587,  587,  587,  587,  587,  587,  587,   86,
00702        86,   86,   86,  587,  587,  587,  587,  587,  587,   86,
00703 
00704       587,   86,   86,  587,  587,  587,  587,  587,  587,  587,
00705       587,  587,   86,   86,  587,  587,  587,  587,  587,  587,
00706       587,  587,  587,  587,  179,  587,  587,  587,  587,  587,
00707       587,  587,  587,  587,  587,  587,  587,  587,  587,   86,
00708        86,   86,   72,  587,  587,   72,   72,   72,  587,   89,
00709       587,   72,   90,   90,  587,   89,  587,  587,  587,  587,
00710        89,   89,   91,   90,   92,  587,   72,  587,  587,  587,
00711       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00712       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00713       587,   90,   90,   72,  587,  587,   72,   72,   72,  587,
00714 
00715       587,  587,   72,   92,   92,  587,  587,  587,  587,  587,
00716       587,  587,  587,   72,   92,   92,  587,   72,  587,  587,
00717       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00718       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00719       587,  587,   92,   92,   72,  587,  587,   72,   72,   72,
00720        72,  587,  587,   72,  587,  587,   72,   72,  587,  587,
00721       587,  587,  587,  587,   72,  587,  587,  587,   72,  587,
00722       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00723       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00724       587,   72,  587,  587,   94,   96,  587,  587,  587,  587,
00725 
00726       587,  587,   96,   84,   96,   96,  587,  587,  587,  587,
00727       587,  587,  587,  587,  587,   96,   96,  587,  587,  587,
00728       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00729       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00730       587,  587,   96,   96,   96,   75,  587,  587,   97,  587,
00731       587,  587,  587,  587,   97,  587,  587,   97,   97,  587,
00732        99,   75,   97,   97,  587,  587,  587,  587,  587,  587,
00733       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00734       587,  587,  587,  587,  587,  587,  587,  587,  587,   97,
00735        75,   97,   72,  587,  587,   76,   72,   72,   91,   93,
00736 
00737       587,   72,   97,   97,   91,   72,  102,  102,  103,  102,
00738        93,   93,   91,   97,   79,  102,   72,  102,  102,  102,
00739       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
00740       102,  102,  102,  102,  102,  102,  102,  102,  102,   91,
00741       587,   97,  108,   72,  587,  587,   72,   72,   72,   91,
00742        93,  587,   72,   97,   97,   91,   72,  103,  103,  103,
00743       103,   93,   93,   91,   97,  587,  103,   72,  103,  103,
00744       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
00745       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
00746        91,  587,   97,  144,   72,  587,  587,   78,   72,   72,
00747 
00748        72,   93,  587,   72,   75,   75,   72,   72,  105,   93,
00749        93,  105,  104,  105,   72,  587,  587,  105,   72,  105,
00750       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00751       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00752       105,   72,   80,  587,  112,   81,  587,  587,   97,   94,
00753       587,  587,   98,   98,   97,  587,  587,  108,  144,  587,
00754       145,  112,   97,   97,   79,  587,  587,  587,  587,  587,
00755       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00756       587,  587,  587,  587,  587,  587,  587,  587,  587,   97,
00757        80,   97,   79,  587,  587,   97,   94,  587,  587,   97,
00758 
00759        97,   97,  587,  587,  587,  144,  587,   94,   94,   97,
00760        97,   79,  587,  587,  587,  587,  587,  587,  587,  587,
00761       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00762       587,  587,  587,  587,  587,  587,   97,  587,   97,   72,
00763       587,  587,   72,   72,   72,   89,  587,  587,   72,   92,
00764        92,   89,   89,  587,  587,  587,  587,  587,  587,   72,
00765        92,   92,  587,   72,  587,  587,  587,  587,  587,  587,
00766       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00767       587,  587,  587,  587,  587,  587,   89,  587,   92,  184,
00768        72,  587,  587,   72,   72,   72,   88,  109,  587,   72,
00769 
00770        90,   90,   88,   89,  110,  110,  110,  110,  109,  109,
00771        91,   90,   92,  110,   72,  110,  110,  110,  110,  110,
00772       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
00773       110,  110,  110,  110,  110,  110,  110,   88,  587,   90,
00774       111,   90,  184,  587,  587,   90,   90,   90,   92,  587,
00775       587,  587,  587,  184,  184,   97,   90,   92,  587,  587,
00776       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00777       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00778       587,  587,   90,  587,   90,   80,  587,  587,  587,   94,
00779       587,  587,   75,   75,  587,  587,  587,   94,   94,  587,
00780 
00781       145,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00782       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00783       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00784        80,  185,  185,  185,  186,  185,  185,  187,  185,  185,
00785       185,  188,  189,  187,  185,  188,  187,  187,  188,  190,
00786       186,  187,  187,  185,  188,  185,  188,  188,  188,  188,
00787       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
00788       188,  188,  188,  188,  188,  188,  188,  188,  187,  186,
00789       187,  188,  113,  587,  587,  587,  587,  587,  587,  587,
00790       587,  587,  587,  587,  587,  114,  587,  114,  114,  114,
00791 
00792       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
00793       114,  114,  114,  114,  114,  114,  114,  114,  114,  116,
00794       587,  587,  587,  587,  587,  587,  116,  587,  116,  116,
00795       587,  587,  587,  587,  587,  587,  587,  587,  587,  116,
00796       116,  587,   84,  587,  587,  587,  587,  587,  587,  587,
00797       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00798       587,  587,  587,  587,  587,  587,  116,  116,  116,   97,
00799        94,  587,  587,   97,   97,   97,  587,  587,  587,  587,
00800       587,   94,   94,   97,   97,  587,  587,  587,  587,  587,
00801       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00802 
00803       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00804        97,  587,   97,   72,  587,  587,  587,   72,   72,   72,
00805        72,  587,   72,   75,   75,   72,   72,  587,   72,   72,
00806       587,   77,  587,   72,  587,  587,  587,   72,  587,  587,
00807       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00808       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00809        72,  147,  587,  147,   72,  587,  587,  146,   72,   72,
00810        91,   72,  587,   72,   98,   98,   91,   72,  148,   91,
00811        91,  148,   77,  146,   91,   97,  587,  148,   72,  148,
00812       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
00813 
00814       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
00815       148,   91,  147,   97,  149,  147,  587,  587,   97,  587,
00816       587,  587,   98,   98,   97,  587,  587,   97,   97,  587,
00817       143,  147,   97,   97,  587,  587,  587,  587,  587,  587,
00818       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00819       587,  587,  587,  587,  587,  587,  587,  587,  587,   97,
00820       147,   97,   72,  587,  587,  146,   72,   72,   91,   72,
00821       587,   72,  113,   98,   91,   72,  148,   91,   91,  148,
00822        77,  146,   91,   97,  587,  150,   72,  150,  150,  150,
00823       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
00824 
00825       150,  150,  150,  150,  150,  150,  150,  150,  150,   91,
00826       147,   97,  149,   92,  587,  587,  587,   92,   92,   92,
00827        92,  587,  587,  587,  587,  587,  587,  587,   92,   92,
00828       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00829       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00830       587,  587,  587,  587,   92,  587,   92,  185,  185,  185,
00831       186,  185,  185,  185,  185,  185,  185,  186,  257,  185,
00832       185,  186,  185,  185,  186,  190,  186,  185,  185,  185,
00833       186,  185,  186,  186,  186,  186,  186,  186,  186,  186,
00834       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
00835 
00836       186,  186,  186,  186,  185,  186,  185,  186,  185,  185,
00837       185,  185,  185,  185,  587,  185,  185,  185,  587,  258,
00838       587,  185,  587,  587,  587,  587,  185,  185,  587,  587,
00839       185,  587,  185,  587,  587,  587,  587,  587,  587,  587,
00840       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00841       587,  587,  587,  587,  587,  587,  185,   75,  587,  587,
00842        97,  587,  587,  587,  587,  587,   97,  587,  587,   97,
00843        97,  587,   99,   75,   97,   97,  587,  587,  587,  587,
00844       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00845       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00846 
00847       587,   97,   75,   97,   72,  587,  587,   72,   72,   72,
00848       587,   72,   72,   72,   72,   72,   72,   82,   82,  587,
00849        82,   82,   82,   82,   82,   82,   82,   82,   82,   82,
00850        82,   82,   82,   82,   82,   85,   85,  587,   85,   85,
00851        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
00852        85,   85,   85,   88,  587,  587,   88,   88,   88,   88,
00853        88,   88,   88,   88,   88,   88,   88,   88,  587,   88,
00854        88,   93,  587,  587,   93,   93,   93,  587,   93,   93,
00855        93,   93,   93,   93,  587,  587,  587,  587,   93,   95,
00856        95,  587,   95,   95,   95,   95,   95,   95,   95,   95,
00857 
00858        95,   95,   95,   95,   95,   95,   95,   98,   98,  587,
00859        98,  587,   98,   98,   98,   98,   98,   98,  587,   98,
00860        98,   98,   91,  587,  587,   91,   91,   91,   91,   91,
00861        91,   91,   91,   91,   91,   91,  587,  587,   91,   91,
00862        76,  587,  587,   76,   76,   76,  587,   76,   76,   76,
00863        76,   76,   76,   76,   76,  587,  587,   76,   97,  587,
00864        97,  587,   97,   97,   97,  587,   97,   97,  587,  587,
00865        97,   97,   79,  587,  587,  587,  587,   79,   79,  587,
00866       587,  587,  587,   79,  587,  587,   79,  115,  115,  587,
00867       115,  115,  115,  115,  115,  115,  115,  115,  115,  115,
00868 
00869       115,  115,  115,  115,  115,   80,  587,  587,   80,  587,
00870        80,  587,  587,   80,  587,  587,  587,   80,  587,   80,
00871       106,  106,  106,  106,  587,  106,  106,  106,  106,  106,
00872       106,  106,  106,  106,  106,  146,  587,  587,  146,  146,
00873       146,  146,  146,  146,  146,  146,  146,  146,  587,  587,
00874       146,  587,  146,  147,  587,  587,  147,  587,  147,  587,
00875       587,  147,  587,  587,  587,  147,  587,  147,  149,  149,
00876       587,  149,  587,  149,  149,  149,  149,  149,  149,  587,
00877       149,  149,  149,   75,  587,  587,   75,  587,   75,  587,
00878       587,   75,  587,  587,  587,   75,  587,   75,   78,  587,
00879 
00880       587,   78,   78,   78,   78,   78,   78,   78,   78,   78,
00881        78,  587,  587,   78,  587,   78,   81,  587,  587,   81,
00882       587,   81,   81,  587,   81,  587,  587,   81,   81,  587,
00883        81,   83,   83,  587,   83,   83,   83,   83,   83,   83,
00884        83,   83,   83,   83,   83,   83,   83,   83,   83,   86,
00885        86,  587,   86,   86,   86,   86,   86,   86,   86,   86,
00886        86,   86,   86,   86,   86,   86,   86,   89,  587,  587,
00887        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
00888        89,   89,  587,   89,   89,   90,   90,   90,   90,   90,
00889        90,   90,   90,   90,   90,   90,  587,   90,   90,   92,
00890 
00891        92,   92,   92,   92,   92,   92,   92,  587,   92,   92,
00892       587,   92,   92,   94,  587,  587,   94,   94,   94,   94,
00893       587,  587,  587,  587,  587,   94,   95,   95,  587,   95,
00894        95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
00895        95,   95,   95,   95,   96,   96,  587,   96,   96,   96,
00896        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
00897        96,   96,   98,   98,  587,   98,  587,   98,   98,   98,
00898        98,   98,   98,  587,   98,   98,   98,  108,  108,  108,
00899       108,  587,  108,  108,  108,  108,  108,  108,  108,  587,
00900       108,  108,  109,  587,  587,  109,  109,  109,  109,  109,
00901 
00902       109,  109,  109,  109,  109,  109,  109,  587,  109,  109,
00903       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
00904       111,  587,  111,  111,  112,  587,  112,  112,  587,  112,
00905       112,  112,  112,  587,  587,  587,  112,  587,  112,  115,
00906       115,  587,  115,  115,  115,  115,  115,  115,  115,  115,
00907       115,  115,  115,  115,  115,  115,  115,  116,  116,  587,
00908       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
00909       116,  116,  116,  116,  116,  144,  144,  144,  587,  144,
00910       144,  144,  144,  144,  144,  587,  587,  144,  144,  146,
00911       587,  587,  146,  146,  146,  146,  146,  146,  146,  146,
00912 
00913       146,  146,  587,  587,  146,  587,  146,  147,  587,  587,
00914       147,  587,  147,  587,  587,  147,  587,  587,  587,  147,
00915       587,  147,  149,  149,  587,  149,  587,  149,  149,  149,
00916       149,  149,  149,  587,  149,  149,  149,  184,  184,  184,
00917       184,  184,  184,  184,  184,  587,  184,  184,  587,  184,
00918       184,  185,  185,  185,  185,  185,  185,  185,  185,  185,
00919       185,  185,  185,  185,  185,  185,  185,  185,  185,  187,
00920       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
00921       187,  187,  187,  187,  187,  187,  187,   75,  587,  587,
00922        75,  587,   75,  587,  587,   75,  587,  587,  587,   75,
00923 
00924       587,   75,   86,   86,  587,   86,   86,   86,   86,   86,
00925        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
00926       487,  487,  587,  487,  487,  487,  487,  487,  487,  487,
00927       487,  487,  487,  487,  487,  487,  487,  487,    5,  587,
00928       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00929       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00930       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00931       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
00932       587,  587,  587,  587,  587,  587,  587,  587,  587,  587
00933     } ;
00934 
00935 static yyconst short int yy_chk[3491] =
00936     {   0,
00937         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00938         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00939         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00940         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00941         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00942         1,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00943         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00944         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00945         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00946         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
00947 
00948         3,    3,    9,  124,  586,    9,    9,    9,    9,    9,
00949       124,    9,    9,    9,    9,    9,    9,    9,    9,    9,
00950         9,    9,    9,  585,    9,    9,    9,    9,    9,    9,
00951         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
00952         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
00953         9,   30,    9,   10,  125,  125,   10,   29,   29,   30,
00954        10,   31,   10,   10,   31,   29,   32,   39,   42,   56,
00955        32,   37,   56,   10,   10,   39,   37,   37,   55,   42,
00956        39,   46,   46,   54,   54,   64,   55,  584,   57,   46,
00957        62,   54,   57,   64,   67,   62,   62,  123,   64,  123,
00958 
00959        10,   10,   10,   11,  158,   67,   70,   70,   80,   80,
00960        11,  158,   11,   11,   70,  128,   80,   81,   81,  159,
00961       159,   90,   81,   11,   11,   81,   81,   90,  128,   81,
00962       583,  162,   90,   90,   90,  179,   90,   11,  138,  179,
00963       138,  147,  147,  157,  162,  157,  172,  190,  172,  147,
00964        11,   11,   11,   12,  190,   81,   12,   12,   12,  202,
00965        12,  235,   12,   12,   12,  204,   12,  237,  202,  326,
00966       235,   12,   12,   12,   12,   12,  255,   12,  389,  204,
00967       255,  237,  582,  581,  580,  579,  578,  577,  576,  575,
00968       574,  573,  572,  571,  389,  570,  569,  568,  567,  566,
00969 
00970       565,  326,   12,   12,   13,  564,  563,   13,   13,   13,
00971        13,  562,  561,   13,  560,  559,   13,   13,  558,  557,
00972       556,  555,  554,  553,   13,  552,  551,  550,   13,  549,
00973       548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
00974       538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
00975       528,   13,  527,  526,   13,   15,  525,  524,  523,  522,
00976       521,  520,   15,   15,   15,   15,  519,  518,  517,  516,
00977       515,  514,  513,  512,  511,   15,   15,  510,  509,  508,
00978       507,  506,  505,  504,  503,  502,  501,  500,  499,  498,
00979       497,  496,  495,  494,  493,  492,  491,  490,  489,  488,
00980 
00981       486,  485,   15,   15,   15,   16,  484,  483,   16,  482,
00982       481,  480,  479,  478,   16,  477,  476,   16,   16,  475,
00983        16,   16,   16,   16,  474,  473,  472,  471,  470,  469,
00984       468,  467,  466,  465,  464,  463,  462,  461,  460,  459,
00985       458,  457,  456,  455,  454,  453,  452,  451,  450,   16,
00986        16,   16,   17,  449,  448,   17,  447,  446,  445,  444,
00987       443,   17,  442,  441,   17,   17,  440,   17,   17,   17,
00988        17,  439,  438,  437,  436,  435,  434,  433,  432,  431,
00989       430,  429,  428,  427,  426,  425,  424,  423,  422,  421,
00990       420,  419,  418,  417,  416,  415,   17,   17,   17,   18,
00991 
00992       414,  413,   18,   18,   18,  412,   18,  411,   18,   18,
00993        18,  410,   18,  409,  408,  407,  406,   18,   18,  405,
00994        18,  404,  403,   18,  402,  401,  400,  399,  398,  397,
00995       396,  395,  394,  393,  392,  391,  390,  388,  387,  386,
00996       385,  384,  383,  382,  381,  380,  379,  378,   18,   18,
00997        19,  377,  376,  375,   19,   19,   19,   19,  374,   19,
00998       373,  372,   19,   19,  371,  370,   19,  369,   19,   19,
00999        19,   19,   19,  368,   19,  367,  366,  365,  364,  363,
01000       362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
01001       352,  351,  350,  349,  348,  347,  346,   19,  345,  344,
01002 
01003        19,   20,  343,  342,   20,   20,   20,   20,   20,  341,
01004        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
01005        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
01006        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
01007        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
01008        20,   20,   21,  340,  339,   21,   21,   21,   21,   21,
01009       338,   21,   21,   21,   21,   21,   21,   21,   21,   21,
01010        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
01011        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
01012        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
01013 
01014       337,   21,   21,   22,  336,  335,   22,   22,   22,   22,
01015        22,  334,   22,   22,   22,   22,   22,   22,   22,   22,
01016        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
01017        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
01018        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
01019        22,  333,   22,   22,   23,  332,  331,   23,   23,   23,
01020        23,   23,  330,   23,   23,   23,   23,   23,   23,   23,
01021        23,   23,   23,   23,   23,  329,  328,   23,   23,   23,
01022        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
01023        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
01024 
01025        23,   23,   23,  327,   23,   24,  325,  324,   24,   24,
01026        24,  323,   24,  322,   24,   24,   24,  321,   24,  320,
01027       319,  318,  317,   24,   24,  316,   24,  315,  314,   24,
01028       313,  312,  311,  310,  309,  308,  307,  306,  305,  304,
01029       303,  302,  301,  300,  299,  298,  297,  296,  295,  294,
01030       293,  292,  291,  290,   24,   24,   27,  289,  288,  287,
01031       286,  285,  284,  283,  282,  281,  280,  279,  278,   27,
01032       277,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01033        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01034        27,   27,   27,   28,  276,  275,  274,  273,  272,  271,
01035 
01036        28,  270,   28,   28,  269,  268,  267,  266,  265,  264,
01037       263,  262,  261,   28,   28,  260,   28,  259,  257,  254,
01038       253,  252,  251,  250,  249,  248,  247,  246,  245,  244,
01039       243,  242,  241,  240,  239,  238,  236,  234,  233,  232,
01040        28,   28,   28,   48,  231,  230,   48,   48,  229,  228,
01041        48,   48,   48,  227,  226,   48,   48,  225,   48,   48,
01042        48,   48,   48,  224,  221,  220,  219,  218,  217,  216,
01043       215,  214,  213,  212,  211,  210,  209,  208,  207,  206,
01044       205,  203,  201,  200,  199,  198,  197,   48,   48,   48,
01045        49,  196,  195,  194,   49,   49,   49,   49,  193,   49,
01046 
01047        49,   49,   49,   49,  192,   49,   49,  191,   49,  185,
01048        49,  176,  175,  174,   49,  173,  171,  170,  169,  168,
01049       167,  166,  165,  164,  163,  161,  160,  156,  155,  154,
01050       153,  152,  151,  145,  143,  142,  141,   49,   49,  140,
01051        49,   51,  139,  137,   51,   51,   51,   51,   51,  136,
01052        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
01053        51,   51,   51,  135,   51,   51,   51,   51,   51,   51,
01054        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
01055        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
01056        51,   51,   53,  134,  133,   53,   53,   53,   53,   53,
01057 
01058       132,   53,   53,   53,   53,   53,   53,   53,   53,   53,
01059        53,   53,   53,   53,  131,   53,   53,   53,   53,   53,
01060        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
01061        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
01062        53,   53,   53,   71,  130,  129,   71,  127,  126,  122,
01063        71,   71,   71,  121,  120,   71,   71,  119,   71,   71,
01064        71,   71,  118,  117,  116,  107,  104,  100,   99,   96,
01065        83,   77,   75,   73,   69,   68,   66,   65,   63,   61,
01066        60,   59,   58,   52,   50,   44,   43,   71,   71,   71,
01067        76,   41,   40,   38,   76,   76,   76,   76,   36,   76,
01068 
01069        35,   34,   76,   76,   33,    7,   76,    5,   76,   76,
01070        76,   76,   76,    0,   76,    0,    0,    0,    0,    0,
01071         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01072         0,    0,    0,    0,    0,    0,    0,   76,    0,    0,
01073        76,   78,    0,    0,    0,   78,   78,   78,   78,    0,
01074        78,   78,   78,   78,   78,    0,   78,   78,    0,   78,
01075         0,   78,    0,    0,    0,   78,    0,    0,    0,    0,
01076         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01077         0,    0,    0,    0,    0,    0,    0,    0,   78,   78,
01078         0,   78,   82,    0,    0,   82,    0,    0,    0,   82,
01079 
01080         0,   82,   82,    0,    0,    0,    0,    0,    0,    0,
01081         0,    0,   82,   82,    0,    0,    0,    0,    0,    0,
01082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01083         0,    0,    0,    0,    0,    0,    0,    0,    0,   82,
01084        82,   82,   85,    0,    0,    0,    0,    0,    0,   85,
01085         0,   85,   85,    0,    0,    0,    0,    0,    0,    0,
01086         0,    0,   85,   85,    0,    0,    0,    0,    0,    0,
01087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01088         0,    0,    0,    0,    0,    0,    0,    0,    0,   85,
01089        85,   85,   87,    0,    0,    0,    0,    0,    0,   87,
01090 
01091         0,   87,   87,    0,    0,    0,    0,    0,    0,    0,
01092         0,    0,   87,   87,    0,    0,    0,    0,    0,    0,
01093         0,    0,    0,    0,   87,    0,    0,    0,    0,    0,
01094         0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
01095        87,   87,   88,    0,    0,   88,   88,   88,    0,   88,
01096         0,   88,   88,   88,    0,   88,    0,    0,    0,    0,
01097        88,   88,   88,   88,   88,    0,   88,    0,    0,    0,
01098         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01099         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01100         0,   88,   88,   89,    0,    0,   89,   89,   89,    0,
01101 
01102         0,    0,   89,   89,   89,    0,    0,    0,    0,    0,
01103         0,    0,    0,   89,   89,   89,    0,   89,    0,    0,
01104         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01105         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01106         0,    0,   89,   89,   93,    0,    0,   93,   93,   93,
01107        93,    0,    0,   93,    0,    0,   93,   93,    0,    0,
01108         0,    0,    0,    0,   93,    0,    0,    0,   93,    0,
01109         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01110         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01111         0,   93,    0,    0,   93,   95,    0,    0,    0,    0,
01112 
01113         0,    0,   95,   95,   95,   95,    0,    0,    0,    0,
01114         0,    0,    0,    0,    0,   95,   95,    0,    0,    0,
01115         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01116         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01117         0,    0,   95,   95,   95,   98,    0,    0,   98,    0,
01118         0,    0,    0,    0,   98,    0,    0,   98,   98,    0,
01119        98,   98,   98,   98,    0,    0,    0,    0,    0,    0,
01120         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01121         0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
01122        98,   98,  102,    0,    0,  102,  102,  102,  102,  102,
01123 
01124         0,  102,  102,  102,  102,  102,  102,  102,  102,  102,
01125       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
01126       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
01127       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
01128         0,  102,  102,  103,    0,    0,  103,  103,  103,  103,
01129       103,    0,  103,  103,  103,  103,  103,  103,  103,  103,
01130       103,  103,  103,  103,  103,    0,  103,  103,  103,  103,
01131       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
01132       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
01133       103,    0,  103,  103,  105,    0,    0,  105,  105,  105,
01134 
01135       105,  105,    0,  105,  105,  105,  105,  105,  105,  105,
01136       105,  105,  105,  105,  105,    0,    0,  105,  105,  105,
01137       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01138       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01139       105,  105,  105,    0,  105,  106,    0,    0,  106,  106,
01140         0,    0,  106,  106,  106,    0,    0,  106,  106,    0,
01141       106,  106,  106,  106,  106,    0,    0,    0,    0,    0,
01142         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01143         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
01144       106,  106,  108,    0,    0,  108,  108,    0,    0,  108,
01145 
01146       108,  108,    0,    0,    0,  108,    0,  108,  108,  108,
01147       108,  108,    0,    0,    0,    0,    0,    0,    0,    0,
01148         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01149         0,    0,    0,    0,    0,    0,  108,    0,  108,  109,
01150         0,    0,  109,  109,  109,  109,    0,    0,  109,  109,
01151       109,  109,  109,    0,    0,    0,    0,    0,    0,  109,
01152       109,  109,    0,  109,    0,    0,    0,    0,    0,    0,
01153         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01154         0,    0,    0,    0,    0,    0,  109,    0,  109,  109,
01155       110,    0,    0,  110,  110,  110,  110,  110,    0,  110,
01156 
01157       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
01158       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
01159       110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
01160       110,  110,  110,  110,  110,  110,  110,  110,    0,  110,
01161       110,  111,  111,    0,    0,  111,  111,  111,  111,    0,
01162         0,    0,    0,  111,  111,  111,  111,  111,    0,    0,
01163         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01164         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01165         0,    0,  111,    0,  111,  112,    0,    0,    0,  112,
01166         0,    0,  112,  112,    0,    0,    0,  112,  112,    0,
01167 
01168       112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01169         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01170         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01171       112,  113,  113,  113,  113,  113,  113,  113,  113,  113,
01172       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
01173       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
01174       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
01175       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
01176       113,  113,  114,    0,    0,    0,    0,    0,    0,    0,
01177         0,    0,    0,    0,    0,  114,    0,  114,  114,  114,
01178 
01179       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
01180       114,  114,  114,  114,  114,  114,  114,  114,  114,  115,
01181         0,    0,    0,    0,    0,    0,  115,    0,  115,  115,
01182         0,    0,    0,    0,    0,    0,    0,    0,    0,  115,
01183       115,    0,  115,    0,    0,    0,    0,    0,    0,    0,
01184         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01185         0,    0,    0,    0,    0,    0,  115,  115,  115,  144,
01186       144,    0,    0,  144,  144,  144,    0,    0,    0,    0,
01187         0,  144,  144,  144,  144,    0,    0,    0,    0,    0,
01188         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01189 
01190         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01191       144,    0,  144,  146,    0,    0,    0,  146,  146,  146,
01192       146,    0,  146,  146,  146,  146,  146,    0,  146,  146,
01193         0,  146,    0,  146,    0,    0,    0,  146,    0,    0,
01194         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01195         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01196       146,  146,    0,  146,  148,    0,    0,  148,  148,  148,
01197       148,  148,    0,  148,  148,  148,  148,  148,  148,  148,
01198       148,  148,  148,  148,  148,  148,    0,  148,  148,  148,
01199       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
01200 
01201       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
01202       148,  148,  148,  148,  148,  149,    0,    0,  149,    0,
01203         0,    0,  149,  149,  149,    0,    0,  149,  149,    0,
01204       149,  149,  149,  149,    0,    0,    0,    0,    0,    0,
01205         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01206         0,    0,    0,    0,    0,    0,    0,    0,    0,  149,
01207       149,  149,  150,    0,    0,  150,  150,  150,  150,  150,
01208         0,  150,  150,  150,  150,  150,  150,  150,  150,  150,
01209       150,  150,  150,  150,    0,  150,  150,  150,  150,  150,
01210       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
01211 
01212       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
01213       150,  150,  150,  184,    0,    0,    0,  184,  184,  184,
01214       184,    0,    0,    0,    0,    0,    0,    0,  184,  184,
01215         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01216         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01217         0,    0,    0,    0,  184,    0,  184,  186,  186,  186,
01218       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
01219       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
01220       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
01221       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
01222 
01223       186,  186,  186,  186,  186,  186,  186,  186,  187,  187,
01224       187,  187,  187,  187,    0,  187,  187,  187,    0,  187,
01225         0,  187,    0,    0,    0,    0,  187,  187,    0,    0,
01226       187,    0,  187,    0,    0,    0,    0,    0,    0,    0,
01227         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01228         0,    0,    0,    0,    0,    0,  187,  189,    0,    0,
01229       189,    0,    0,    0,    0,    0,  189,    0,    0,  189,
01230       189,    0,  189,  189,  189,  189,    0,    0,    0,    0,
01231         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01232         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01233 
01234         0,  189,  189,  189,  588,    0,    0,  588,  588,  588,
01235         0,  588,  588,  588,  588,  588,  588,  589,  589,    0,
01236       589,  589,  589,  589,  589,  589,  589,  589,  589,  589,
01237       589,  589,  589,  589,  589,  590,  590,    0,  590,  590,
01238       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
01239       590,  590,  590,  591,    0,    0,  591,  591,  591,  591,
01240       591,  591,  591,  591,  591,  591,  591,  591,    0,  591,
01241       591,  592,    0,    0,  592,  592,  592,    0,  592,  592,
01242       592,  592,  592,  592,    0,    0,    0,    0,  592,  593,
01243       593,    0,  593,  593,  593,  593,  593,  593,  593,  593,
01244 
01245       593,  593,  593,  593,  593,  593,  593,  594,  594,    0,
01246       594,    0,  594,  594,  594,  594,  594,  594,    0,  594,
01247       594,  594,  595,    0,    0,  595,  595,  595,  595,  595,
01248       595,  595,  595,  595,  595,  595,    0,    0,  595,  595,
01249       596,    0,    0,  596,  596,  596,    0,  596,  596,  596,
01250       596,  596,  596,  596,  596,    0,    0,  596,  597,    0,
01251       597,    0,  597,  597,  597,    0,  597,  597,    0,    0,
01252       597,  597,  598,    0,    0,    0,    0,  598,  598,    0,
01253         0,    0,    0,  598,    0,    0,  598,  599,  599,    0,
01254       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
01255 
01256       599,  599,  599,  599,  599,  600,    0,    0,  600,    0,
01257       600,    0,    0,  600,    0,    0,    0,  600,    0,  600,
01258       601,  601,  601,  601,    0,  601,  601,  601,  601,  601,
01259       601,  601,  601,  601,  601,  602,    0,    0,  602,  602,
01260       602,  602,  602,  602,  602,  602,  602,  602,    0,    0,
01261       602,    0,  602,  603,    0,    0,  603,    0,  603,    0,
01262         0,  603,    0,    0,    0,  603,    0,  603,  604,  604,
01263         0,  604,    0,  604,  604,  604,  604,  604,  604,    0,
01264       604,  604,  604,  605,    0,    0,  605,    0,  605,    0,
01265         0,  605,    0,    0,    0,  605,    0,  605,  606,    0,
01266 
01267         0,  606,  606,  606,  606,  606,  606,  606,  606,  606,
01268       606,    0,    0,  606,    0,  606,  607,    0,    0,  607,
01269         0,  607,  607,    0,  607,    0,    0,  607,  607,    0,
01270       607,  608,  608,    0,  608,  608,  608,  608,  608,  608,
01271       608,  608,  608,  608,  608,  608,  608,  608,  608,  609,
01272       609,    0,  609,  609,  609,  609,  609,  609,  609,  609,
01273       609,  609,  609,  609,  609,  609,  609,  610,    0,    0,
01274       610,  610,  610,  610,  610,  610,  610,  610,  610,  610,
01275       610,  610,    0,  610,  610,  611,  611,  611,  611,  611,
01276       611,  611,  611,  611,  611,  611,    0,  611,  611,  612,
01277 
01278       612,  612,  612,  612,  612,  612,  612,    0,  612,  612,
01279         0,  612,  612,  613,    0,    0,  613,  613,  613,  613,
01280         0,    0,    0,    0,    0,  613,  614,  614,    0,  614,
01281       614,  614,  614,  614,  614,  614,  614,  614,  614,  614,
01282       614,  614,  614,  614,  615,  615,    0,  615,  615,  615,
01283       615,  615,  615,  615,  615,  615,  615,  615,  615,  615,
01284       615,  615,  616,  616,    0,  616,    0,  616,  616,  616,
01285       616,  616,  616,    0,  616,  616,  616,  617,  617,  617,
01286       617,    0,  617,  617,  617,  617,  617,  617,  617,    0,
01287       617,  617,  618,    0,    0,  618,  618,  618,  618,  618,
01288 
01289       618,  618,  618,  618,  618,  618,  618,    0,  618,  618,
01290       619,  619,  619,  619,  619,  619,  619,  619,  619,  619,
01291       619,    0,  619,  619,  620,    0,  620,  620,    0,  620,
01292       620,  620,  620,    0,    0,    0,  620,    0,  620,  621,
01293       621,    0,  621,  621,  621,  621,  621,  621,  621,  621,
01294       621,  621,  621,  621,  621,  621,  621,  622,  622,    0,
01295       622,  622,  622,  622,  622,  622,  622,  622,  622,  622,
01296       622,  622,  622,  622,  622,  623,  623,  623,    0,  623,
01297       623,  623,  623,  623,  623,    0,    0,  623,  623,  624,
01298         0,    0,  624,  624,  624,  624,  624,  624,  624,  624,
01299 
01300       624,  624,    0,    0,  624,    0,  624,  625,    0,    0,
01301       625,    0,  625,    0,    0,  625,    0,    0,    0,  625,
01302         0,  625,  626,  626,    0,  626,    0,  626,  626,  626,
01303       626,  626,  626,    0,  626,  626,  626,  627,  627,  627,
01304       627,  627,  627,  627,  627,    0,  627,  627,    0,  627,
01305       627,  628,  628,  628,  628,  628,  628,  628,  628,  628,
01306       628,  628,  628,  628,  628,  628,  628,  628,  628,  629,
01307       629,  629,  629,  629,  629,  629,  629,  629,  629,  629,
01308       629,  629,  629,  629,  629,  629,  629,  630,    0,    0,
01309       630,    0,  630,    0,    0,  630,    0,    0,    0,  630,
01310 
01311         0,  630,  631,  631,    0,  631,  631,  631,  631,  631,
01312       631,  631,  631,  631,  631,  631,  631,  631,  631,  631,
01313       632,  632,    0,  632,  632,  632,  632,  632,  632,  632,
01314       632,  632,  632,  632,  632,  632,  632,  632,  587,  587,
01315       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
01316       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
01317       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
01318       587,  587,  587,  587,  587,  587,  587,  587,  587,  587,
01319       587,  587,  587,  587,  587,  587,  587,  587,  587,  587
01320     } ;
01321 
01322 static yy_state_type yy_last_accepting_state;
01323 static char *yy_last_accepting_cpos;
01324 
01325 /* The intent behind this definition is that it'll catch
01326  * any uses of REJECT which flex missed.
01327  */
01328 #define REJECT reject_used_but_not_detected
01329 #define yymore() yymore_used_but_not_detected
01330 #define YY_MORE_ADJ 0
01331 #define YY_RESTORE_YY_MORE_OFFSET
01332 char *yytext;
01333 #line 1 "cflex.l"
01334 #define INITIAL 0
01335 #line 2 "cflex.l"
01336 /* cfengine for GNU
01337  
01338         Copyright (C) 1995
01339         Free Software Foundation, Inc.
01340  
01341    This file is part of GNU cfengine - written and maintained 
01342    by Mark Burgess, Dept of Computing and Engineering, Oslo College,
01343    Dept. of Theoretical physics, University of Oslo
01344  
01345    This program is free software; you can redistribute it and/or modify it
01346    under the terms of the GNU General Public License as published by the
01347    Free Software Foundation; either version 2, or (at your option) any
01348    later version.
01349  
01350    This program is distributed in the hope that it will be useful,
01351    but WITHOUT ANY WARRANTY; without even the implied warranty of
01352    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
01353    GNU General Public License for more details.
01354  
01355   You should have received a copy of the GNU General Public License
01356   along with this program; if not, write to the Free Software
01357   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
01358 
01359 */
01360  
01361 
01362 /*******************************************************************/
01363 /*                                                                 */
01364 /*  LEXER for cfengine                                             */
01365 /*                                                                 */
01366 /*                                                                 */
01367 /*******************************************************************/
01368 
01369 
01370  /* Here we define a two state lexer. The states exclude
01371     certain regular expression matches so as to more easily
01372     distinguish between class constructions like 
01373 
01374        compound.class::
01375 
01376     identifiers like
01377 
01378        group = ( .... )
01379 
01380     and items inside the parentheses like
01381 
01382        .... = ( alpha beta gamma )
01383 
01384     The state
01385     <IDENT> recognizes identifiers and <INITIAL> recognizes what
01386     is an item in a LisT.
01387 
01388  */
01389 
01390 
01391 #include "cfparse.h"
01392 #include "cf.defs.h"