concat_guts.yy.cc

Go to the documentation of this file.
00001 
00002 #line 3 "concat_guts.yy.cc"
00003 
00004 #define  YY_INT_ALIGNED short int
00005 
00006 /* A lexical scanner generated by flex */
00007 
00008 #define FLEX_SCANNER
00009 #define YY_FLEX_MAJOR_VERSION 2
00010 #define YY_FLEX_MINOR_VERSION 5
00011 #define YY_FLEX_SUBMINOR_VERSION 33
00012 #if YY_FLEX_SUBMINOR_VERSION > 0
00013 #define FLEX_BETA
00014 #endif
00015 
00016 /* First, we deal with  platform-specific or compiler-specific issues. */
00017 
00018 /* begin standard C headers. */
00019 //#include <stdio.h>
00020 //#include <string.h>
00021 //#include <errno.h>
00022 //#include <stdlib.h>
00023 
00024 /* end standard C headers. */
00025 
00026 /* flex integer type definitions */
00027 
00028 #ifndef FLEXINT_H
00029 #define FLEXINT_H
00030 
00031 #ifdef lestes___host_types_hh___included
00032 typedef lc_host_int_least8 flex_int8_t;
00033 typedef lc_host_int_least16 flex_int16_t;
00034 typedef lc_host_int_least32 flex_int32_t;
00035 typedef lc_host_uint_least8 flex_uint8_t; 
00036 typedef lc_host_uint_least16 flex_uint16_t;
00037 typedef lc_host_uint_least32 flex_uint32_t;
00038 #else
00039 typedef signed char flex_int8_t;
00040 typedef short int flex_int16_t;
00041 typedef int flex_int32_t;
00042 typedef unsigned char flex_uint8_t; 
00043 typedef unsigned short int flex_uint16_t;
00044 typedef unsigned int flex_uint32_t;
00045 #endif
00046 
00047 /* Limits of integral types. */
00048 #ifndef INT8_MIN
00049 #define INT8_MIN               (-128)
00050 #endif
00051 #ifndef INT16_MIN
00052 #define INT16_MIN              (-32767-1)
00053 #endif
00054 #ifndef INT32_MIN
00055 #define INT32_MIN              (-2147483647-1)
00056 #endif
00057 #ifndef INT8_MAX
00058 #define INT8_MAX               (127)
00059 #endif
00060 #ifndef INT16_MAX
00061 #define INT16_MAX              (32767)
00062 #endif
00063 #ifndef INT32_MAX
00064 #define INT32_MAX              (2147483647)
00065 #endif
00066 #ifndef UINT8_MAX
00067 #define UINT8_MAX              (255U)
00068 #endif
00069 #ifndef UINT16_MAX
00070 #define UINT16_MAX             (65535U)
00071 #endif
00072 #ifndef UINT32_MAX
00073 #define UINT32_MAX             (4294967295U)
00074 #endif
00075 
00076 #endif /* ! FLEXINT_H */
00077 
00078 #ifdef __cplusplus
00079 
00080 /* The "const" storage-class-modifier is valid. */
00081 #define YY_USE_CONST
00082 
00083 #else   /* ! __cplusplus */
00084 
00085 #if __STDC__
00086 
00087 #define YY_USE_CONST
00088 
00089 #endif  /* __STDC__ */
00090 #endif  /* ! __cplusplus */
00091 
00092 #ifdef YY_USE_CONST
00093 #define yyconst const
00094 #else
00095 #define yyconst
00096 #endif
00097 
00098 /* Returned upon end-of-file. */
00099 #define YY_NULL 0
00100 
00101 /* Promotes a possibly negative, possibly signed char to an unsigned
00102  * integer for use as an array index.  If the signed char is negative,
00103  * we want to instead treat it as an 8-bit unsigned char, hence the
00104  * double cast.
00105  */
00106 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00107 
00108 /* Enter a start condition.  This macro really ought to take a parameter,
00109  * but we do it the disgusting crufty way forced on us by the ()-less
00110  * definition of BEGIN.
00111  */
00112 #define BEGIN (yy_start) = 1 + 2 *
00113 
00114 /* Translate the current start state into a value that can be later handed
00115  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00116  * compatibility.
00117  */
00118 #define YY_START (((yy_start) - 1) / 2)
00119 #define YYSTATE YY_START
00120 
00121 /* Action number for EOF rule of a given start state. */
00122 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00123 
00124 /* Special action meaning "start processing a new file". */
00125 #define YY_NEW_FILE yyrestart(yyin  )
00126 
00127 #define YY_END_OF_BUFFER_CHAR 0
00128 
00129 /* Size of default input buffer. */
00130 #ifndef YY_BUF_SIZE
00131 #define YY_BUF_SIZE 16384
00132 #endif
00133 
00134 /* The state buf must be large enough to hold one state per character in the main buffer.
00135  */
00136 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00137 
00138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00139 #define YY_TYPEDEF_YY_BUFFER_STATE
00140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00141 #endif
00142 
00143 extern int yyleng;
00144 
00145 extern FILE *yyin, *yyout;
00146 
00147 #define EOB_ACT_CONTINUE_SCAN 0
00148 #define EOB_ACT_END_OF_FILE 1
00149 #define EOB_ACT_LAST_MATCH 2
00150 
00151     #define YY_LESS_LINENO(n)
00152     
00153 /* Return all but the first "n" matched characters back to the input stream. */
00154 #define yyless(n) \
00155         do \
00156                 { \
00157                 /* Undo effects of setting up yytext. */ \
00158         int yyless_macro_arg = (n); \
00159         YY_LESS_LINENO(yyless_macro_arg);\
00160                 *yy_cp = (yy_hold_char); \
00161                 YY_RESTORE_YY_MORE_OFFSET \
00162                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00163                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00164                 } \
00165         while ( 0 )
00166 
00167 #define unput(c) yyunput( c, (yytext_ptr)  )
00168 
00169 /* The following is because we cannot portably get our hands on size_t
00170  * (without autoconf's help, which isn't available because we want
00171  * flex-generated scanners to compile on their own).
00172  */
00173 
00174 #ifndef YY_TYPEDEF_YY_SIZE_T
00175 #define YY_TYPEDEF_YY_SIZE_T
00176 typedef unsigned int yy_size_t;
00177 #endif
00178 
00179 #ifndef YY_STRUCT_YY_BUFFER_STATE
00180 #define YY_STRUCT_YY_BUFFER_STATE
00181 struct yy_buffer_state
00182         {
00183         FILE *yy_input_file;
00184 
00185         char *yy_ch_buf;                /* input buffer */
00186         char *yy_buf_pos;               /* current position in input buffer */
00187 
00188         /* Size of input buffer in bytes, not including room for EOB
00189          * characters.
00190          */
00191         yy_size_t yy_buf_size;
00192 
00193         /* Number of characters read into yy_ch_buf, not including EOB
00194          * characters.
00195          */
00196         int yy_n_chars;
00197 
00198         /* Whether we "own" the buffer - i.e., we know we created it,
00199          * and can realloc() it to grow it, and should free() it to
00200          * delete it.
00201          */
00202         int yy_is_our_buffer;
00203 
00204         /* Whether this is an "interactive" input source; if so, and
00205          * if we're using stdio for input, then we want to use getc()
00206          * instead of fread(), to make sure we stop fetching input after
00207          * each newline.
00208          */
00209         int yy_is_interactive;
00210 
00211         /* Whether we're considered to be at the beginning of a line.
00212          * If so, '^' rules will be active on the next match, otherwise
00213          * not.
00214          */
00215         int yy_at_bol;
00216 
00217     int yy_bs_lineno; /**< The line count. */
00218     int yy_bs_column; /**< The column count. */
00219     
00220         /* Whether to try to fill the input buffer when we reach the
00221          * end of it.
00222          */
00223         int yy_fill_buffer;
00224 
00225         int yy_buffer_status;
00226 
00227 #define YY_BUFFER_NEW 0
00228 #define YY_BUFFER_NORMAL 1
00229         /* When an EOF's been seen but there's still some text to process
00230          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00231          * shouldn't try reading from the input source any more.  We might
00232          * still have a bunch of tokens to match, though, because of
00233          * possible backing-up.
00234          *
00235          * When we actually see the EOF, we change the status to "new"
00236          * (via yyrestart()), so that the user can continue scanning by
00237          * just pointing yyin at a new input file.
00238          */
00239 #define YY_BUFFER_EOF_PENDING 2
00240 
00241         };
00242 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00243 
00244 /* Stack of input buffers. */
00245 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
00246 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
00247 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
00248 
00249 /* We provide macros for accessing buffer states in case in the
00250  * future we want to put the buffer states in a more general
00251  * "scanner state".
00252  *
00253  * Returns the top of the stack, or NULL.
00254  */
00255 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00256                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00257                           : NULL)
00258 
00259 /* Same as previous macro, but useful when we know that the buffer stack is not
00260  * NULL or when we need an lvalue. For internal use only.
00261  */
00262 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00263 
00264 /* yy_hold_char holds the character lost when yytext is formed. */
00265 static char yy_hold_char;
00266 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00267 int yyleng;
00268 
00269 /* Points to current character in buffer. */
00270 static char *yy_c_buf_p = (char *) 0;
00271 static int yy_init = 0;         /* whether we need to initialize */
00272 static int yy_start = 0;        /* start state number */
00273 
00274 /* Flag which is used to allow yywrap()'s to do buffer switches
00275  * instead of setting up a fresh yyin.  A bit of a hack ...
00276  */
00277 static int yy_did_buffer_switch_on_eof;
00278 
00279 void yyrestart (FILE *input_file  );
00280 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00281 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00282 void yy_delete_buffer (YY_BUFFER_STATE b  );
00283 void yy_flush_buffer (YY_BUFFER_STATE b  );
00284 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00285 void yypop_buffer_state (void );
00286 
00287 static void yyensure_buffer_stack (void );
00288 static void yy_load_buffer_state (void );
00289 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00290 
00291 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00292 
00293 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00294 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00295 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00296 
00297 void *yyalloc (yy_size_t  );
00298 void *yyrealloc (void *,yy_size_t  );
00299 void yyfree (void *  );
00300 
00301 #define yy_new_buffer yy_create_buffer
00302 
00303 #define yy_set_interactive(is_interactive) \
00304         { \
00305         if ( ! YY_CURRENT_BUFFER ){ \
00306         yyensure_buffer_stack (); \
00307                 YY_CURRENT_BUFFER_LVALUE =    \
00308             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00309         } \
00310         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00311         }
00312 
00313 #define yy_set_bol(at_bol) \
00314         { \
00315         if ( ! YY_CURRENT_BUFFER ){\
00316         yyensure_buffer_stack (); \
00317                 YY_CURRENT_BUFFER_LVALUE =    \
00318             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00319         } \
00320         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00321         }
00322 
00323 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00324 
00325 /* Begin user sect3 */
00326 
00327 #define yywrap(n) 1
00328 #define YY_SKIP_YYWRAP
00329 
00330 typedef unsigned char YY_CHAR;
00331 
00332 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00333 
00334 typedef int yy_state_type;
00335 
00336 extern int yylineno;
00337 
00338 int yylineno = 1;
00339 
00340 extern char *yytext;
00341 #define yytext_ptr yytext
00342 
00343 static yy_state_type yy_get_previous_state (void );
00344 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00345 static int yy_get_next_buffer (void );
00346 static void yy_fatal_error (yyconst char msg[]  );
00347 
00348 /* Done after the current pattern has been matched and before the
00349  * corresponding action - sets up yytext.
00350  */
00351 #define YY_DO_BEFORE_ACTION \
00352         (yytext_ptr) = yy_bp; \
00353         yyleng = (size_t) (yy_cp - yy_bp); \
00354         (yy_hold_char) = *yy_cp; \
00355         *yy_cp = '\0'; \
00356         (yy_c_buf_p) = yy_cp;
00357 
00358 #define YY_NUM_RULES 141
00359 #define YY_END_OF_BUFFER 142
00360 /* This struct is not used in this scanner,
00361    but its presence is necessary. */
00362 struct yy_trans_info
00363         {
00364         flex_int32_t yy_verify;
00365         flex_int32_t yy_nxt;
00366         };
00367 static yyconst flex_int16_t yy_accept[669] =
00368     {   0,
00369         0,    0,  142,  141,  141,  141,  141,  141,  141,  141,
00370       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
00371       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
00372       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
00373       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
00374       141,  141,  141,  141,  141,  141,  140,    0,    0,    0,
00375         0,  135,  140,    0,   31,    0,    0,    0,  140,    0,
00376         9,    0,    0,    0,   21,    0,    0,   25,    0,    0,
00377       140,   13,   14,    0,   20,    0,    0,   19,   36,    0,
00378         0,    0,   37,    0,    0,    0,   18,    0,   22,    0,
00379 
00380         0,    0,    0,    0,    0,    0,    0,  132,    0,   16,
00381         0,   15,    0,    0,    0,    0,   34,    0,   33,    0,
00382         0,   35,   17,    0,    0,    0,  134,    0,    0,    1,
00383         3,    0,   23,    0,    0,    0,    0,    0,    0,    0,
00384         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00385         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00386         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00387         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00388         0,    5,    0,    0,   27,    7,   29,   56,  138,    0,
00389         0,    0,    0,    0,   11,    0,   10,   44,    8,   60,
00390 
00391        47,    0,    0,    0,    0,    0,    0,   42,   64,   40,
00392        65,   41,    0,   67,   39,    0,    0,    0,    0,    0,
00393       132,   43,    0,    0,    0,    0,  133,    0,    0,    0,
00394         0,  133,   38,    4,    6,    2,    0,   51,   58,   55,
00395        59,    0,   52,    0,    0,    0,  140,    0,    0,  140,
00396        45,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00397         0,    0,    0,    0,    0,    0,   82,    0,    0,    0,
00398         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
00399         0,    0,    0,    0,    0,    0,    0,   63,    0,    0,
00400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00401 
00402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00403         0,    0,    0,    0,    0,   49,   62,    0,    0,    0,
00404       138,    0,    0,    0,  136,    0,    0,    0,  136,    0,
00405         0,   66,   68,   54,   53,  139,    0,    0,    0,    0,
00406         0,    0,    0,    0,    0,    0,    0,    0,   61,   69,
00407         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00408         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00409         0,    0,    0,   91,    0,    0,    0,   96,    0,    0,
00410         0,  100,    0,   32,    0,    0,    0,    0,    0,    0,
00411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00412 
00413         0,    0,  118,    0,    0,    0,    0,    0,    0,    0,
00414         0,    0,    0,   24,    0,    0,    0,    0,    0,    0,
00415        12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00416       139,    0,    0,  137,    0,    0,    0,  137,    0,    0,
00417         0,   70,    0,    0,   71,    0,   73,    0,   75,    0,
00418         0,    0,    0,    0,    0,    0,    0,   85,   86,    0,
00419         0,    0,    0,    0,    0,   93,    0,   97,    0,    0,
00420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00421         0,    0,    0,    0,    0,    0,  116,    0,  131,    0,
00422         0,    0,    0,    0,    0,    0,  126,    0,    0,    0,
00423 
00424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00426         0,   28,   72,   74,   76,   30,    0,   77,    0,    0,
00427         0,    0,    0,    0,    0,    0,  130,   90,    0,    0,
00428         0,    0,    0,    0,   50,    0,    0,    0,    0,    0,
00429         0,  108,    0,    0,    0,    0,    0,    0,  117,    0,
00430         0,    0,  122,    0,  124,    0,    0,    0,  129,    0,
00431         0,    0,    0,    0,    0,    0,   48,   26,    0,    0,
00432         0,   81,   83,    0,    0,   88,   89,   92,   95,    0,
00433         0,   57,    0,    0,    0,  104,    0,    0,  107,  109,
00434 
00435       110,    0,  111,  113,  114,    0,    0,  120,    0,    0,
00436         0,    0,    0,   46,    0,    0,   80,    0,    0,   98,
00437         0,    0,  102,    0,    0,    0,    0,    0,  119,    0,
00438         0,  125,    0,  128,    0,   79,    0,   87,    0,  101,
00439         0,  105,    0,    0,  115,  121,  123,  127,    0,    0,
00440        99,  103,    0,    0,   78,    0,    0,    0,    0,    0,
00441       112,   84,    0,    0,    0,    0,  106,    0
00442     } ;
00443 
00444 static yyconst flex_int32_t yy_ec[256] =
00445     {   0,
00446         1,    2,    2,    2,    2,    2,    2,    2,    2,    3,
00447         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00448         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00449         2,    2,    4,    5,    6,    2,    7,    8,    9,   10,
00450        11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
00451        21,   22,   23,   24,   25,   26,   27,   28,   29,   30,
00452        31,   32,   33,    2,   34,   35,   36,   37,   38,   39,
00453        40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
00454        50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
00455        60,   61,   62,   63,   64,    2,   65,   66,   67,   68,
00456 
00457        69,   70,   71,   72,   73,   74,   75,   76,   77,   78,
00458        79,   80,   81,   82,   83,   84,   85,   86,   87,   88,
00459        89,   90,   91,   92,   93,   94,    2,    2,    2,    2,
00460         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00461         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00462         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00463         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00464         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00465         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00466         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00467 
00468         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00469         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00470         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00471         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00472         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00473         2,    2,    2,    2,    2
00474     } ;
00475 
00476 static yyconst flex_int32_t yy_meta[96] =
00477     {   0,
00478         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00479         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00480         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00481         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00482         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00483         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00484         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00487         1,    1,    1,    1,    1
00488 
00489     } ;
00490 
00491 static yyconst flex_int16_t yy_base[678] =
00492     {   0,
00493         0,    0, 1639,   95, 1543,  160,  189,  187,  167,  188,
00494       197, 1541, 1540,  166,  190, 1539,  186,  204,  171,  299,
00495       176,  173,  203,  177,  180, 1538,  394,  204, 1537, 1536,
00496       183,    0,  157,  164,  173,  175,  163,  191, 1551,  137,
00497      1550, 1543,  200,  177,  178, 1558,  204,  421,  170,  201,
00498       222, 1541, 1524,  460, 1523, 1522, 2661,    0, 1521,    0,
00499         0, 2661, 2661, 1520, 2661,  489, 1508,  580,  490, 1507,
00500      2661,  491, 1497, 1496, 2661, 1495, 1494, 2661,  493,  671,
00501       488, 2661, 2661, 1493, 2661, 1492, 1491, 2661, 2661, 1489,
00502      1488,  487, 2661, 1487,  484,  759, 2661, 1486, 2661,  854,
00503 
00504         0,    0,    0,  280,  949,    0,  491, 2661, 1485, 2661,
00505      1478, 2661, 1477, 1476,  470, 1474, 2661, 1473, 2661, 1472,
00506       474, 2661, 2661,    0,    0,    0, 2661,  511,  512, 2661,
00507      2661, 1471, 2661, 1497, 1487, 1479, 1478, 1482, 1490,  203,
00508      1493, 1477,  219,  437,  423, 1463, 1457, 1454,  439, 1462,
00509      1447, 1443, 1443, 1429, 1415,  433, 1428, 1420, 1426, 1415,
00510      1416, 1430,  447,  447, 1432,  451, 1418,  441,  462, 1423,
00511      1418,  452,  443, 1414,  456, 1419, 1409,  457, 1418, 1414,
00512      1404, 2661, 1390, 1388, 2661, 2661, 2661, 2661, 2661,  572,
00513      1027,  548, 1387, 1118, 2661,  513, 2661, 2661, 2661, 2661,
00514 
00515      2661, 1386, 1064, 1189,  549, 1385, 1255, 2661, 2661, 2661,
00516      2661, 2661, 1376, 2661, 2661, 1375,    0,  523,    0,  530,
00517      2661, 2661,    0,    0,  533,  544, 2661,    0,    0,  547,
00518       548, 2661, 2661, 2661, 2661, 2661, 1374, 2661, 2661, 2661,
00519      2661, 1373, 2661,  561, 1372, 1339,  551,  565, 1423,  558,
00520      2661,  476, 1371, 1386,  546, 1388, 1397, 1392, 1393, 1377,
00521      1372, 1374,  497, 1388, 1383, 1385, 2661, 1385, 1380, 1363,
00522       538, 1370, 1355, 1372, 1341, 1366, 1355, 2661, 1360, 1336,
00523      1359, 1364, 1357, 1327,  483, 1338, 1350, 2661, 1332, 1332,
00524      1339, 1341, 1335, 1327, 1329, 1332, 1339, 1323, 1321, 1319,
00525 
00526      1322, 1318, 1320, 1329, 1302, 1327, 1316, 1321, 1315, 1307,
00527      1322, 1324, 1315, 1303,  523, 2661, 2661, 1095, 1509,    0,
00528      2661,  693, 1587, 1283, 2661, 1144, 1655,    0, 2661,  663,
00529      1733, 2661, 2661, 2661, 2661, 2661, 1228, 1786,  571, 1282,
00530      1877, 1280, 1281, 1948,  574, 1279, 2014, 1304, 2661, 2661,
00531      1276, 1292, 1287, 1272, 1290, 1252, 1274, 1250, 1257, 1262,
00532      1251, 1259, 1246, 1246, 1253, 1251, 1232, 1231, 1251, 1240,
00533      1237, 1249, 1233, 2661, 1237, 1219, 1235, 2661, 1217, 1245,
00534      1227, 2661, 1240, 2661, 1243, 1226, 1222, 1217, 1212, 1200,
00535      1197, 1190, 1187, 1201, 1190, 1195, 1200, 1199, 1189, 1168,
00536 
00537      1175, 1166, 2661,  556, 1167, 1173, 1172, 1157, 1146, 1156,
00538      1156, 1168, 1167, 2661,  639,    0,    0, 1085, 2098,    0,
00539      2661,  612,    0,    0, 1273, 2160,    0, 1363, 2228,    0,
00540      2661, 1331, 2306, 2661, 1454, 2374,    0, 2661, 1499, 2452,
00541      1154, 2661, 1166, 1137, 2661, 1135, 2661, 1134, 2661, 1127,
00542      1126,  552, 1142, 1143, 1149, 1148, 1130, 2661, 2661, 1134,
00543      1115, 1120, 1102, 1100, 1126, 2661, 1124, 2661, 1116, 1111,
00544      1108, 1103, 1091, 1101, 1115, 1114, 1096, 1109, 1099, 1081,
00545      1107, 1104, 1106, 1088, 1099, 1105, 2661, 1066, 2661, 1091,
00546      1090, 1092, 1060, 1076, 1057, 1085, 2661, 1076, 1084, 1050,
00547 
00548      1063,  618,    0,    0,  640,    0,    0,  648,    0,    0,
00549      1532, 2518,    0,  645,    0,    0, 1576, 2580,    0, 1040,
00550      1039, 2661, 2661, 2661, 2661, 2661, 1066, 2661, 1047, 1047,
00551      1035, 1034, 1061, 1053, 1029, 1026, 2661, 2661, 1017, 1016,
00552      1033, 1036, 1004, 1012, 2661, 1012,  996,  984, 1009,  995,
00553       981, 2661,  980,  979,  564,  977,  976,  986, 2661,  999,
00554       973,  983, 2661,  990, 2661,  982,  981,  972, 2661,  960,
00555       638,    0,    0,  660,    0,    0, 2661, 2661,  693,  687,
00556       657, 2661, 2661,  687,  666, 2661, 2661, 2661, 2661,  653,
00557       680, 2661,  664,  650,  675, 2661,  660,  659, 2661, 2661,
00558 
00559      2661,  671, 2661, 2661, 2661,  666,  638, 2661,  662,  662,
00560       634,  659,  632, 2661,  643,  630, 2661,  656,  627, 2661,
00561       651,  624, 2661,  642,  613,  623,  638,  607, 2661,  602,
00562       583, 2661,  582, 2661,  590, 2661,  606, 2661,  575, 2661,
00563       570, 2661,  594,  578, 2661, 2661, 2661, 2661,  562,  572,
00564      2661, 2661,  568,  556, 2661,  555,  574,  542,  541,  564,
00565      2661, 2661,  565,  544,  536,  475, 2661, 2661, 2650, 2652,
00566      2654,  536,  289, 2656, 2658,  246,  235
00567     } ;
00568 
00569 static yyconst flex_int16_t yy_def[678] =
00570     {   0,
00571       668,    1,  668,  668,  669,  669,  670,  669,  669,  669,
00572       671,  669,  669,  669,  669,  669,  669,  669,  669,  668,
00573       669,  669,  669,  669,  669,  669,  668,   27,  669,  669,
00574       669,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00575        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00576        27,   27,  669,  669,  669,  669,  668,    4,  669,    4,
00577         4,  668,  668,  669,  668,  670,  669,  669,  672,  669,
00578       668,  669,  669,  669,  668,  669,  669,  668,  671,   68,
00579       673,  668,  668,  669,  668,  669,  669,  668,  668,  669,
00580       669,  669,  668,  669,  669,  668,  668,  669,  668,  668,
00581 
00582        96,   20,   20,   20,  668,   20,   20,  668,  669,  668,
00583       669,  668,  669,  669,  669,  669,  668,  669,  668,  669,
00584       669,  668,  668,   27,   27,   27,  668,  674,  675,  668,
00585       668,  669,  668,   27,   27,   27,   27,   27,   27,   27,
00586        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00587        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00588        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00589        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00590        27,  668,  669,  669,  668,  668,  668,  668,  668,  670,
00591       669,  672,  668,  668,  668,  669,  668,  668,  668,  668,
00592 
00593       668,  669,  671,  191,  673,  668,  668,  668,  668,  668,
00594       668,  668,  669,  668,  668,  669,   96,   96,   96,   96,
00595       668,  668,  100,  100,  100,  100,  668,  105,  105,  105,
00596       105,  668,  668,  668,  668,  668,  669,  668,  668,  668,
00597       668,  669,  668,  674,  669,   68,  676,  675,   68,  677,
00598       668,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00599        27,   27,   27,   27,   27,   27,  668,   27,   27,   27,
00600        27,   27,   27,   27,   27,   27,   27,  668,   27,   27,
00601        27,   27,   27,   27,   27,   27,   27,  668,   27,   27,
00602        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00603 
00604        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00605        27,   27,   27,   27,   27,  668,  668,  670,  670,  319,
00606       668,  672,  668,  669,  668,  671,  671,  327,  668,  673,
00607       668,  668,  668,  668,  668,  668,  674,  669,  676,  668,
00608       668,  669,  675,  338,  677,  668,  668,   27,  668,  668,
00609        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00610        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00611        27,   27,   27,  668,   27,   27,   27,  668,   27,   27,
00612        27,  668,   27,  668,   27,   27,   27,   27,   27,   27,
00613        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00614 
00615        27,   27,  668,   27,   27,   27,   27,   27,   27,   27,
00616        27,   27,   27,  668,  670,  319,  319,  672,  672,  419,
00617       668,  671,  327,  327,  673,  673,  426,  674,  674,  429,
00618       668,  676,  668,  668,  675,  675,  436,  668,  677,  668,
00619        27,  668,   27,   27,  668,   27,  668,   27,  668,   27,
00620        27,   27,   27,   27,   27,   27,   27,  668,  668,   27,
00621        27,   27,   27,   27,   27,  668,   27,  668,   27,   27,
00622        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
00623        27,   27,   27,   27,   27,   27,  668,   27,  668,   27,
00624        27,   27,   27,   27,   27,   27,  668,   27,   27,   27,
00625 
00626        27,  672,  419,  419,  673,  426,  426,  674,  429,  429,
00627       676,  676,  512,  675,  436,  436,  677,  677,  518,   27,
00628        27,  668,  668,  668,  668,  668,   27,  668,   27,   27,
00629        27,   27,   27,   27,   27,   27,  668,  668,   27,   27,
00630        27,   27,   27,   27,  668,   27,   27,   27,   27,   27,
00631        27,  668,   27,   27,   27,   27,   27,   27,  668,   27,
00632        27,   27,  668,   27,  668,   27,   27,   27,  668,   27,
00633       676,  512,  512,  677,  518,  518,  668,  668,   27,   27,
00634        27,  668,  668,   27,   27,  668,  668,  668,  668,   27,
00635        27,  668,   27,   27,   27,  668,   27,   27,  668,  668,
00636 
00637       668,   27,  668,  668,  668,   27,   27,  668,   27,   27,
00638        27,   27,   27,  668,   27,   27,  668,   27,   27,  668,
00639        27,   27,  668,   27,   27,   27,   27,   27,  668,   27,
00640        27,  668,   27,  668,   27,  668,   27,  668,   27,  668,
00641        27,  668,   27,   27,  668,  668,  668,  668,   27,   27,
00642       668,  668,   27,   27,  668,   27,   27,   27,   27,   27,
00643       668,  668,   27,   27,   27,   27,  668,    0,  668,  668,
00644       668,  668,  668,  668,  668,  668,  668
00645     } ;
00646 
00647 static yyconst flex_int16_t yy_nxt[2757] =
00648     {   0,
00649         4,    5,    5,    6,    7,    8,    9,   10,   11,   12,
00650        13,   14,   15,   16,   17,   18,   19,   20,   20,   20,
00651        20,   20,   20,   20,   20,   20,   20,   21,   22,   23,
00652        24,   25,   26,   27,   27,   27,   27,   27,   27,   27,
00653        27,   27,   27,   27,   28,   27,   27,   27,   27,   27,
00654        27,   27,   27,   27,   27,   27,   27,   27,   27,   29,
00655         5,   30,   31,   32,   33,   34,   35,   36,   37,   38,
00656        39,   32,   40,   32,   32,   41,   42,   43,   44,   45,
00657        32,   46,   47,   48,   49,   50,   51,   52,   32,   32,
00658        53,   54,   55,   56,   57,   58,   59,   59,   59,   59,
00659 
00660        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00661        59,   59,   60,   60,   60,   60,   60,   60,   60,   60,
00662        60,   60,   59,   59,   59,   59,   59,   59,   61,   61,
00663        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
00664        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
00665        61,   61,   61,   61,   59,   59,   59,   59,   58,   58,
00666        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00667        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
00668        58,   58,   58,   58,   58,   59,   59,   59,   59,   62,
00669        64,   59,   70,   67,   72,   76,   84,   73,   74,   59,
00670 
00671        90,   98,   86,  109,  111,   59,  155,  118,  128,  113,
00672       120,  121,  129,  132,  156,   94,   91,   92,   77,   95,
00673        87,   96,   96,   96,   96,   96,   96,   96,   96,   96,
00674        96,  114,  115,  116,  134,  345,  137,  140,  147,  135,
00675       148,  136,  138,  144,  141,  139,  339,  175,  142,   68,
00676       149,  143,  176,  145,   65,  150,  162,   80,  163,  164,
00677        85,   75,  165,  146,  159,   99,  151,  112,  160,  152,
00678       110,  119,  153,  177,  122,  167,  168,  133,  161,  178,
00679        93,   71,   78,   69,   88,  258,  259,  169,  179,  205,
00680       170,   81,  101,  180,  101,  262,  263,  117,   97,  100,
00681 
00682        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00683        59,   59,   59,   59,  101,   59,  102,  102,  102,  102,
00684       102,  102,  102,  102,  102,  102,   59,   59,   59,   59,
00685        59,   59,  103,  103,  103,  103,  104,  103,  103,  103,
00686       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
00687       103,  103,  103,  103,  103,  103,  103,  103,   59,   59,
00688        59,   59,  105,  106,  106,  106,  106,  107,  106,  106,
00689       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
00690       106,  106,  106,  106,  106,  106,  106,  106,  106,   59,
00691        59,   59,   59,  108,   58,   59,   59,   59,   59,   59,
00692 
00693        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00694        59,  124,  124,  124,  124,  124,  124,  124,  124,  124,
00695       124,   59,   59,   59,   59,   59,   59,  125,  125,  125,
00696       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
00697       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
00698       125,  125,  125,   59,   59,   59,   59,  126,  126,  126,
00699       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
00700       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
00701       126,  126,  126,  126,   59,   59,   59,   59,  127,  171,
00702       183,   59,  172,   67,  193,   59,  206,  196,  213,  216,
00703 
00704       237,  202,  173,  101,  242,  101,  264,  266,  279,  174,
00705       287,  296,  265,   59,   59,  245,  280,  267,  271,  289,
00706        59,  292,  272,  293,  302,  290,  298,  304,  307,  311,
00707       297,  305,  312,  303,  294,  101,  192,  101,  308,  348,
00708       324,  288,  101,  299,  101,  223,  383,  223,  207,   68,
00709       194,  184,  193,   80,  185,  340,  223,  206,  223,  223,
00710       223,  223,  223,   59,  238,  245,  346,   59,  243,  667,
00711       349,  246,  249,  342,   59,  340,   67,  384,   63,  361,
00712       362,  214,  346,   69,   66,  197,  413,   81,   66,  318,
00713       318,  318,  318,  318,  318,  318,  318,  190,  190,  190,
00714 
00715       190,  190,  190,  190,  190,  247,  250,   63,  194,  207,
00716       352,  341,   66,  369,   59,  527,  370,  414,  347,  666,
00717       202,  246,  193,  490,  353,  249,  665,  602,  491,  664,
00718       663,  341,   68,  492,  347,  662,  661,  660,  659,  658,
00719        66,   59,  340,   67,   66,   66,  528,   59,  206,   66,
00720        59,  657,  245,  342,  656,  247,  655,   66,  603,  250,
00721       654,   66,  653,   66,  652,   66,   69,  191,  346,  651,
00722       650,  206,   80,  649,   63,   79,  648,  647,  194,   79,
00723       425,  425,  425,  425,  425,  425,  425,  425,  203,  203,
00724       203,  203,  203,  203,  203,  203,  646,  193,  341,   68,
00725 
00726       207,  645,  644,   79,  643,  249,   81,  642,  246,  641,
00727       418,  418,  418,  418,  418,  418,  418,  418,  640,  639,
00728       347,  638,  637,  207,  636,  635,  634,  633,  632,  631,
00729       630,   79,  629,   69,  628,   79,   79,  627,  626,  250,
00730        79,  625,  247,  624,  623,  622,  621,  620,   79,  619,
00731       618,  617,   79,  194,   79,  616,   79,  615,  204,  100,
00732        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00733        59,   59,   59,   59,  101,   59,  101,  101,  101,  101,
00734       101,  101,  101,  101,  101,  101,   59,   59,   59,   59,
00735        59,   59,  217,  217,  217,  217,  218,  217,  217,  217,
00736 
00737       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
00738       217,  217,  217,  217,  217,  217,  217,  217,   59,   59,
00739        59,   59,  100,  219,  219,  219,  219,  220,  219,  219,
00740       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
00741       219,  219,  219,  219,  219,  219,  219,  219,  219,   59,
00742        59,   59,   59,  221,  100,   59,   59,   59,   59,   59,
00743        59,   59,   59,   59,   59,   59,   59,   59,   59,  223,
00744        59,  223,  223,  223,  223,  223,  223,  223,  223,  223,
00745       223,   59,   59,   59,   59,   59,   59,  224,  224,  224,
00746       224,  225,  224,  224,  224,  224,  224,  224,  224,  224,
00747 
00748       224,  224,  224,  224,  224,  224,  224,  224,  224,  224,
00749       224,  224,  224,   59,   59,   59,   59,  100,  100,  100,
00750       100,  100,  226,  100,  100,  100,  100,  100,  100,  100,
00751       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
00752       100,  100,  100,  100,   59,   59,   59,   59,  227,  100,
00753        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
00754        59,   59,   59,   59,  223,   59,  228,  228,  228,  228,
00755       228,  228,  228,  228,  228,  228,   59,   59,   59,   59,
00756        59,   59,  229,  229,  229,  229,  230,  229,  229,  229,
00757       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
00758 
00759       229,  229,  229,  229,  229,  229,  229,  229,   59,   59,
00760        59,   59,  105,  105,  105,  105,  105,  231,  105,  105,
00761       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
00762       105,  105,  105,  105,  105,  105,  105,  105,  105,   59,
00763        59,   59,   59,  232,  319,  319,  319,  319,  319,  319,
00764       319,  319,  319,  319,  614,  613,  612,  611,  610,  609,
00765       320,  320,  320,  320,  320,  320,   59,  608,  607,  606,
00766       605,  604,  202,  601,  600,  599,  598,  597,  596,  595,
00767       594,  326,  326,  326,  326,  326,  326,  326,  326,  193,
00768       593,  320,  320,  320,  320,  320,  320,   59,  592,   67,
00769 
00770       591,  590,  502,  502,  502,  502,  502,  502,  502,  502,
00771       589,  588,  415,  415,  415,  415,  415,  415,  415,  415,
00772       587,   63,  192,  586,   80,  585,  192,  584,  583,  582,
00773       581,  580,  579,  578,  577,  322,  322,  322,  322,  322,
00774       322,  322,  322,  570,  569,  194,   59,  568,  567,  566,
00775       192,  565,  202,  564,  563,   68,  562,  561,   81,  560,
00776       559,  422,  422,  422,  422,  422,  422,  422,  422,  558,
00777       557,  556,  555,  554,  553,  552,  551,  550,  192,  549,
00778       548,  547,  192,  192,  546,  545,  544,  192,  543,   69,
00779       542,  541,  540,  539,  538,  192,  537,  536,  535,  192,
00780 
00781       534,  192,  533,  192,   80,  323,  327,  327,  327,  327,
00782       327,  327,  327,  327,  327,  327,  532,  531,  530,  529,
00783       526,  525,  328,  328,  328,  328,  328,  328,  524,  523,
00784        59,  522,  245,  521,  520,  501,  500,  499,   81,  498,
00785       497,  496,  495,  494,  493,  428,  428,  428,  428,  428,
00786       428,  428,  428,  328,  328,  328,  328,  328,  328,  205,
00787       489,  488,  487,  205,  486,  485,  484,  483,  482,  481,
00788       480,  479,  330,  330,  330,  330,  330,  330,  330,  330,
00789       478,  206,  477,   59,  476,  475,  474,  205,  246,  342,
00790       505,  505,  505,  505,  505,  505,  505,  505,  435,  435,
00791 
00792       435,  435,  435,  435,  435,  435,  473,  472,  471,  470,
00793       469,  468,  467,  466,  465,  205,  464,  463,  462,  205,
00794       205,  461,  247,  460,  205,  459,  458,  457,  456,  455,
00795       454,  453,  205,  207,  452,  340,  205,  451,  205,  450,
00796       205,  249,  331,  244,  449,  448,  447,  244,  511,  511,
00797       511,  511,  511,  511,  511,  511,  337,  337,  337,  337,
00798       337,  337,  337,  337,  446,   59,  445,  245,  444,  443,
00799       442,  244,  441,  438,  434,  250,  431,  421,  412,  411,
00800       508,  508,  508,  508,  508,  508,  508,  508,  410,  409,
00801       408,  341,  407,  406,  405,  404,  403,  402,  401,  244,
00802 
00803       400,  399,  398,  244,  244,  397,  396,  395,  244,  394,
00804       393,  392,  391,  390,  389,  388,  244,  387,  386,  385,
00805       244,  382,  244,  246,  244,  381,  338,  248,  380,  379,
00806       378,  248,  377,  376,  375,  374,  373,  372,  371,  368,
00807       343,  343,  343,  343,  343,  343,  343,  343,  367,  366,
00808       365,  364,  363,  360,  359,  248,   59,  247,  358,  357,
00809       356,  355,  342,  354,  351,  350,  336,  335,  334,  333,
00810       332,  514,  514,  514,  514,  514,  514,  514,  514,  329,
00811       325,  321,  317,  248,  316,  315,  314,  248,  248,  313,
00812       310,  309,  248,  306,  301,  300,  295,  291,  286,  285,
00813 
00814       248,  284,  283,  282,  248,  281,  248,  346,  248,  278,
00815       344,   59,  277,   67,  249,  276,  517,  517,  517,  517,
00816       517,  517,  517,  517,  275,  274,  416,  416,  416,  416,
00817       416,  416,  416,  416,  416,  416,  340,  273,  270,  269,
00818       268,  261,  417,  417,  417,  417,  417,  417,  250,  571,
00819       571,  571,  571,  571,  571,  571,  571,  260,  257,  347,
00820       256,  255,  254,  253,  252,  251,  241,  240,  239,   68,
00821       236,  235,  234,  417,  417,  417,  417,  417,  417,  233,
00822       222,  215,  212,  211,  346,  210,  209,  208,  201,  200,
00823       199,  198,  341,  574,  574,  574,  574,  574,  574,  574,
00824 
00825       574,  195,  189,   69,  419,  419,  419,  419,  419,  419,
00826       419,  419,  419,  419,  188,   63,  187,  186,  182,  181,
00827       420,  420,  420,  420,  420,  420,  166,  158,  157,  154,
00828       131,  130,  123,   89,   83,   82,  347,   63,  668,  668,
00829       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00830       668,  420,  420,  420,  420,  420,  420,   59,  668,  668,
00831       668,  668,  668,  202,  668,  668,  668,  668,  668,  668,
00832       668,  668,  423,  423,  423,  423,  423,  423,  423,  423,
00833       423,  423,  668,  668,  668,  668,  668,  668,  424,  424,
00834       424,  424,  424,  424,  668,  668,  668,  668,  668,  668,
00835 
00836       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00837       668,  668,  668,  668,  668,   80,  668,  668,  668,  424,
00838       424,  424,  424,  424,  424,  668,  668,  668,  668,  668,
00839       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00840       668,  668,  668,  668,  668,  668,  668,  668,  668,   81,
00841       426,  426,  426,  426,  426,  426,  426,  426,  426,  426,
00842       668,  668,  668,  668,  668,  668,  427,  427,  427,  427,
00843       427,  427,  668,  668,  668,  668,  668,  668,  668,  668,
00844       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00845       668,  668,  668,  668,  668,  668,  668,  427,  427,  427,
00846 
00847       427,  427,  427,  429,  429,  429,  429,  429,  429,  429,
00848       429,  429,  429,  668,  668,  668,  668,  668,  668,  430,
00849       430,  430,  430,  430,  430,  668,  668,  668,  668,  668,
00850       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00851       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00852       430,  430,  430,  430,  430,  430,  668,  668,  668,  668,
00853       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00854       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00855        63,  339,  668,  668,  668,  339,  668,  668,  668,  668,
00856       668,  668,  668,  668,  432,  432,  432,  432,  432,  432,
00857 
00858       432,  432,  668,  668,  668,  668,  668,  668,  668,  339,
00859       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00860       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00861       668,  668,  668,  668,  668,  668,  668,  339,  668,  668,
00862       668,  339,  339,  668,  668,  668,  339,  668,  668,  668,
00863       668,  668,  668,  668,  339,  668,  668,  668,  339,  668,
00864       339,  668,  339,  668,  433,  436,  436,  436,  436,  436,
00865       436,  436,  436,  436,  436,  668,  668,  668,  668,  668,
00866       668,  437,  437,  437,  437,  437,  437,  668,  668,  668,
00867       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00868 
00869       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00870       668,  668,  437,  437,  437,  437,  437,  437,  345,  668,
00871       668,  668,  345,  668,  668,  668,  668,  668,  668,  668,
00872       668,  439,  439,  439,  439,  439,  439,  439,  439,  668,
00873       668,  668,  668,  668,  668,  668,  345,  668,  668,  668,
00874       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00875       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00876       668,  668,  668,  668,  345,  668,  668,  668,  345,  345,
00877       668,  668,  668,  345,  668,  668,  668,  668,  668,  668,
00878       668,  345,  668,  668,  668,  345,  668,  345,  668,  345,
00879 
00880       668,  440,  193,  668,  668,  668,  668,  668,  668,  668,
00881       668,  668,  668,  668,  668,  503,  503,  503,  503,  503,
00882       503,  503,  503,  503,  503,  668,  668,  668,  668,  668,
00883       668,  504,  504,  504,  504,  504,  504,  668,  668,  668,
00884       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00885       668,  668,  668,  668,  668,  668,  668,  668,  194,  668,
00886       668,  668,  504,  504,  504,  504,  504,  504,  206,  668,
00887       668,  668,  668,  668,  668,  668,  668,  506,  506,  506,
00888       506,  506,  506,  506,  506,  506,  506,  668,  668,  668,
00889       668,  668,  668,  507,  507,  507,  507,  507,  507,  668,
00890 
00891       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00892       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00893       207,  668,  668,  668,  507,  507,  507,  507,  507,  507,
00894        59,  668,  245,  668,  668,  668,  668,  668,  668,  668,
00895       668,  668,  668,  668,  668,  509,  509,  509,  509,  509,
00896       509,  509,  509,  509,  509,  668,  668,  668,  668,  668,
00897       668,  510,  510,  510,  510,  510,  510,  668,  668,  668,
00898       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00899       668,  668,  668,  668,  668,  668,  668,  668,  246,  668,
00900       668,  668,  510,  510,  510,  510,  510,  510,  668,  668,
00901 
00902       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00903       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00904       668,  668,  247,  512,  512,  512,  512,  512,  512,  512,
00905       512,  512,  512,  668,  668,  668,  668,  668,  668,  513,
00906       513,  513,  513,  513,  513,  668,  668,  668,  668,  668,
00907       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00908       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00909       513,  513,  513,  513,  513,  513,   59,  668,  668,  668,
00910       668,  668,  342,  668,  668,  668,  668,  668,  668,  668,
00911       668,  515,  515,  515,  515,  515,  515,  515,  515,  515,
00912 
00913       515,  668,  668,  668,  668,  668,  668,  516,  516,  516,
00914       516,  516,  516,  668,  668,  668,  668,  668,  668,  668,
00915       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00916       668,  668,  668,  668,  249,  668,  668,  668,  516,  516,
00917       516,  516,  516,  516,  668,  668,  668,  668,  668,  668,
00918       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00919       668,  668,  668,  668,  668,  668,  668,  668,  250,  518,
00920       518,  518,  518,  518,  518,  518,  518,  518,  518,  668,
00921       668,  668,  668,  668,  668,  519,  519,  519,  519,  519,
00922       519,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00923 
00924       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00925       668,  668,  668,  668,  668,  668,  519,  519,  519,  519,
00926       519,  519,  340,  668,  668,  668,  668,  668,  668,  668,
00927       668,  668,  668,  668,  668,  572,  572,  572,  572,  572,
00928       572,  572,  572,  572,  572,  668,  668,  668,  668,  668,
00929       668,  573,  573,  573,  573,  573,  573,  668,  668,  668,
00930       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00931       668,  668,  668,  668,  668,  668,  668,  668,  341,  668,
00932       668,  668,  573,  573,  573,  573,  573,  573,  346,  668,
00933       668,  668,  668,  668,  668,  668,  668,  575,  575,  575,
00934 
00935       575,  575,  575,  575,  575,  575,  575,  668,  668,  668,
00936       668,  668,  668,  576,  576,  576,  576,  576,  576,  668,
00937       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00938       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00939       347,  668,  668,  668,  576,  576,  576,  576,  576,  576,
00940        59,   59,   66,   66,   79,   79,  244,  244,  248,  248,
00941         3,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00942       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00943       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00944       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00945 
00946       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00947       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00948       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00949       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00950       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
00951       668,  668,  668,  668,  668,  668
00952     } ;
00953 
00954 static yyconst flex_int16_t yy_chk[2757] =
00955     {   0,
00956         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00957         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00958         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00959         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00960         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00961         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00962         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00963         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00964         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00965         1,    1,    1,    1,    1,    4,    4,    4,    4,    4,
00966 
00967         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00968         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00969         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00970         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00971         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00972         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00973         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00974         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00975         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
00976         6,    7,    8,    7,    9,   10,   14,    9,    9,   11,
00977 
00978        17,   19,   15,   21,   22,   11,   40,   24,   28,   23,
00979        25,   25,   28,   31,   40,   18,   17,   17,   10,   18,
00980        15,   18,   18,   18,   18,   18,   18,   18,   18,   18,
00981        18,   23,   23,   23,   33,  677,   34,   35,   37,   33,
00982        37,   33,   34,   36,   35,   34,  676,   49,   35,    7,
00983        37,   35,   49,   36,    6,   38,   44,   11,   44,   45,
00984        14,    9,   45,   36,   43,   19,   38,   22,   43,   38,
00985        21,   24,   38,   50,   25,   47,   47,   31,   43,   50,
00986        17,    8,   10,    7,   15,  140,  140,   47,   51,  673,
00987        47,   11,  104,   51,  104,  143,  143,   23,   18,   20,
00988 
00989        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00990        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00991        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00992        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00993        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00994        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00995        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00996        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00997        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
00998        20,   20,   20,   20,   27,   27,   27,   27,   27,   27,
00999 
01000        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01001        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01002        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01003        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01004        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01005        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01006        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01007        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
01008        27,   27,   27,   27,   27,   27,   27,   27,   27,   48,
01009        54,   66,   48,   66,   69,   79,   81,   72,   92,   95,
01010 
01011       115,   79,   48,  107,  121,  107,  144,  145,  156,   48,
01012       163,  168,  144,  128,  129,  128,  156,  145,  149,  164,
01013       129,  166,  149,  166,  172,  164,  169,  173,  175,  178,
01014       168,  173,  178,  172,  166,  218,  672,  218,  175,  252,
01015       196,  163,  220,  169,  220,  225,  285,  225,   81,   66,
01016        69,   54,  192,   79,   54,  247,  226,  205,  226,  230,
01017       231,  230,  231,  244,  115,  244,  250,  248,  121,  666,
01018       252,  128,  129,  248,  190,  339,  190,  285,   95,  263,
01019       263,   92,  345,   66,   68,   72,  315,   79,   68,  190,
01020       190,  190,  190,  190,  190,  190,  190,   68,   68,   68,
01021 
01022        68,   68,   68,   68,   68,  128,  129,  196,  192,  205,
01023       255,  247,   68,  271,  422,  452,  271,  315,  250,  665,
01024       422,  244,  502,  404,  255,  248,  664,  555,  404,  663,
01025       660,  339,  190,  404,  345,  659,  658,  657,  656,  654,
01026        68,  415,  571,  415,   68,   68,  452,  514,  505,   68,
01027       508,  653,  508,  514,  650,  244,  649,   68,  555,  248,
01028       644,   68,  643,   68,  641,   68,  190,   68,  574,  639,
01029       637,  330,  422,  635,   68,   80,  633,  631,  502,   80,
01030       330,  330,  330,  330,  330,  330,  330,  330,   80,   80,
01031        80,   80,   80,   80,   80,   80,  630,  322,  571,  415,
01032 
01033       505,  628,  627,   80,  626,  514,  422,  625,  508,  624,
01034       322,  322,  322,  322,  322,  322,  322,  322,  622,  621,
01035       574,  619,  618,  330,  616,  615,  613,  612,  611,  610,
01036       609,   80,  607,  415,  606,   80,   80,  602,  598,  514,
01037        80,  597,  508,  595,  594,  593,  591,  590,   80,  585,
01038       584,  581,   80,  322,   80,  580,   80,  579,   80,   96,
01039        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01040        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01041        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01042        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01043 
01044        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01045        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01046        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01047        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01048        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01049        96,   96,   96,   96,  100,  100,  100,  100,  100,  100,
01050       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01051       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01052       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01053       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01054 
01055       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01056       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01057       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01058       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
01059       100,  100,  100,  100,  100,  100,  100,  100,  100,  105,
01060       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01061       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01062       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01063       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01064       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01065 
01066       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01067       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01068       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01069       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
01070       105,  105,  105,  105,  191,  191,  191,  191,  191,  191,
01071       191,  191,  191,  191,  570,  568,  567,  566,  564,  562,
01072       191,  191,  191,  191,  191,  191,  203,  561,  560,  558,
01073       557,  556,  203,  554,  553,  551,  550,  549,  548,  547,
01074       546,  203,  203,  203,  203,  203,  203,  203,  203,  418,
01075       544,  191,  191,  191,  191,  191,  191,  318,  543,  318,
01076 
01077       542,  541,  418,  418,  418,  418,  418,  418,  418,  418,
01078       540,  539,  318,  318,  318,  318,  318,  318,  318,  318,
01079       536,  191,  194,  535,  203,  534,  194,  533,  532,  531,
01080       530,  529,  527,  521,  520,  194,  194,  194,  194,  194,
01081       194,  194,  194,  501,  500,  418,  326,  499,  498,  496,
01082       194,  495,  326,  494,  493,  318,  492,  491,  203,  490,
01083       488,  326,  326,  326,  326,  326,  326,  326,  326,  486,
01084       485,  484,  483,  482,  481,  480,  479,  478,  194,  477,
01085       476,  475,  194,  194,  474,  473,  472,  194,  471,  318,
01086       470,  469,  467,  465,  464,  194,  463,  462,  461,  194,
01087 
01088       460,  194,  457,  194,  326,  194,  204,  204,  204,  204,
01089       204,  204,  204,  204,  204,  204,  456,  455,  454,  453,
01090       451,  450,  204,  204,  204,  204,  204,  204,  448,  446,
01091       337,  444,  337,  443,  441,  413,  412,  411,  326,  410,
01092       409,  408,  407,  406,  405,  337,  337,  337,  337,  337,
01093       337,  337,  337,  204,  204,  204,  204,  204,  204,  207,
01094       402,  401,  400,  207,  399,  398,  397,  396,  395,  394,
01095       393,  392,  207,  207,  207,  207,  207,  207,  207,  207,
01096       391,  425,  390,  343,  389,  388,  387,  207,  337,  343,
01097       425,  425,  425,  425,  425,  425,  425,  425,  343,  343,
01098 
01099       343,  343,  343,  343,  343,  343,  386,  385,  383,  381,
01100       380,  379,  377,  376,  375,  207,  373,  372,  371,  207,
01101       207,  370,  337,  369,  207,  368,  367,  366,  365,  364,
01102       363,  362,  207,  425,  361,  432,  207,  360,  207,  359,
01103       207,  343,  207,  246,  358,  357,  356,  246,  432,  432,
01104       432,  432,  432,  432,  432,  432,  246,  246,  246,  246,
01105       246,  246,  246,  246,  355,  428,  354,  428,  353,  352,
01106       351,  246,  348,  346,  342,  343,  340,  324,  314,  313,
01107       428,  428,  428,  428,  428,  428,  428,  428,  312,  311,
01108       310,  432,  309,  308,  307,  306,  305,  304,  303,  246,
01109 
01110       302,  301,  300,  246,  246,  299,  298,  297,  246,  296,
01111       295,  294,  293,  292,  291,  290,  246,  289,  287,  286,
01112       246,  284,  246,  428,  246,  283,  246,  249,  282,  281,
01113       280,  249,  279,  277,  276,  275,  274,  273,  272,  270,
01114       249,  249,  249,  249,  249,  249,  249,  249,  269,  268,
01115       266,  265,  264,  262,  261,  249,  435,  428,  260,  259,
01116       258,  257,  435,  256,  254,  253,  245,  242,  237,  216,
01117       213,  435,  435,  435,  435,  435,  435,  435,  435,  206,
01118       202,  193,  184,  249,  183,  181,  180,  249,  249,  179,
01119       177,  176,  249,  174,  171,  170,  167,  165,  162,  161,
01120 
01121       249,  160,  159,  158,  249,  157,  249,  439,  249,  155,
01122       249,  319,  154,  319,  435,  153,  439,  439,  439,  439,
01123       439,  439,  439,  439,  152,  151,  319,  319,  319,  319,
01124       319,  319,  319,  319,  319,  319,  511,  150,  148,  147,
01125       146,  142,  319,  319,  319,  319,  319,  319,  435,  511,
01126       511,  511,  511,  511,  511,  511,  511,  141,  139,  439,
01127       138,  137,  136,  135,  134,  132,  120,  118,  116,  319,
01128       114,  113,  111,  319,  319,  319,  319,  319,  319,  109,
01129        98,   94,   91,   90,  517,   87,   86,   84,   77,   76,
01130        74,   73,  511,  517,  517,  517,  517,  517,  517,  517,
01131 
01132       517,   70,   67,  319,  323,  323,  323,  323,  323,  323,
01133       323,  323,  323,  323,   64,   59,   56,   55,   53,   52,
01134       323,  323,  323,  323,  323,  323,   46,   42,   41,   39,
01135        30,   29,   26,   16,   13,   12,  517,    5,    3,    0,
01136         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01137         0,  323,  323,  323,  323,  323,  323,  327,    0,    0,
01138         0,    0,    0,  327,    0,    0,    0,    0,    0,    0,
01139         0,    0,  327,  327,  327,  327,  327,  327,  327,  327,
01140       327,  327,    0,    0,    0,    0,    0,    0,  327,  327,
01141       327,  327,  327,  327,    0,    0,    0,    0,    0,    0,
01142 
01143         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01144         0,    0,    0,    0,    0,  327,    0,    0,    0,  327,
01145       327,  327,  327,  327,  327,    0,    0,    0,    0,    0,
01146         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01147         0,    0,    0,    0,    0,    0,    0,    0,    0,  327,
01148       331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
01149         0,    0,    0,    0,    0,    0,  331,  331,  331,  331,
01150       331,  331,    0,    0,    0,    0,    0,    0,    0,    0,
01151         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01152         0,    0,    0,    0,    0,    0,    0,  331,  331,  331,
01153 
01154       331,  331,  331,  338,  338,  338,  338,  338,  338,  338,
01155       338,  338,  338,    0,    0,    0,    0,    0,    0,  338,
01156       338,  338,  338,  338,  338,    0,    0,    0,    0,    0,
01157         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01158         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01159       338,  338,  338,  338,  338,  338,    0,    0,    0,    0,
01160         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01161         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01162       338,  341,    0,    0,    0,  341,    0,    0,    0,    0,
01163         0,    0,    0,    0,  341,  341,  341,  341,  341,  341,
01164 
01165       341,  341,    0,    0,    0,    0,    0,    0,    0,  341,
01166         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01167         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01168         0,    0,    0,    0,    0,    0,    0,  341,    0,    0,
01169         0,  341,  341,    0,    0,    0,  341,    0,    0,    0,
01170         0,    0,    0,    0,  341,    0,    0,    0,  341,    0,
01171       341,    0,  341,    0,  341,  344,  344,  344,  344,  344,
01172       344,  344,  344,  344,  344,    0,    0,    0,    0,    0,
01173         0,  344,  344,  344,  344,  344,  344,    0,    0,    0,
01174         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01175 
01176         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01177         0,    0,  344,  344,  344,  344,  344,  344,  347,    0,
01178         0,    0,  347,    0,    0,    0,    0,    0,    0,    0,
01179         0,  347,  347,  347,  347,  347,  347,  347,  347,    0,
01180         0,    0,    0,    0,    0,    0,  347,    0,    0,    0,
01181         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01182         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01183         0,    0,    0,    0,  347,    0,    0,    0,  347,  347,
01184         0,    0,    0,  347,    0,    0,    0,    0,    0,    0,
01185         0,  347,    0,    0,    0,  347,    0,  347,    0,  347,
01186 
01187         0,  347,  419,    0,    0,    0,    0,    0,    0,    0,
01188         0,    0,    0,    0,    0,  419,  419,  419,  419,  419,
01189       419,  419,  419,  419,  419,    0,    0,    0,    0,    0,
01190         0,  419,  419,  419,  419,  419,  419,    0,    0,    0,
01191         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01192         0,    0,    0,    0,    0,    0,    0,    0,  419,    0,
01193         0,    0,  419,  419,  419,  419,  419,  419,  426,    0,
01194         0,    0,    0,    0,    0,    0,    0,  426,  426,  426,
01195       426,  426,  426,  426,  426,  426,  426,    0,    0,    0,
01196         0,    0,    0,  426,  426,  426,  426,  426,  426,    0,
01197 
01198         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01199         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01200       426,    0,    0,    0,  426,  426,  426,  426,  426,  426,
01201       429,    0,  429,    0,    0,    0,    0,    0,    0,    0,
01202         0,    0,    0,    0,    0,  429,  429,  429,  429,  429,
01203       429,  429,  429,  429,  429,    0,    0,    0,    0,    0,
01204         0,  429,  429,  429,  429,  429,  429,    0,    0,    0,
01205         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01206         0,    0,    0,    0,    0,    0,    0,    0,  429,    0,
01207         0,    0,  429,  429,  429,  429,  429,  429,    0,    0,
01208 
01209         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01210         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01211         0,    0,  429,  433,  433,  433,  433,  433,  433,  433,
01212       433,  433,  433,    0,    0,    0,    0,    0,    0,  433,
01213       433,  433,  433,  433,  433,    0,    0,    0,    0,    0,
01214         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01215         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01216       433,  433,  433,  433,  433,  433,  436,    0,    0,    0,
01217         0,    0,  436,    0,    0,    0,    0,    0,    0,    0,
01218         0,  436,  436,  436,  436,  436,  436,  436,  436,  436,
01219 
01220       436,    0,    0,    0,    0,    0,    0,  436,  436,  436,
01221       436,  436,  436,    0,    0,    0,    0,    0,    0,    0,
01222         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01223         0,    0,    0,    0,  436,    0,    0,    0,  436,  436,
01224       436,  436,  436,  436,    0,    0,    0,    0,    0,    0,
01225         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01226         0,    0,    0,    0,    0,    0,    0,    0,  436,  440,
01227       440,  440,  440,  440,  440,  440,  440,  440,  440,    0,
01228         0,    0,    0,    0,    0,  440,  440,  440,  440,  440,
01229       440,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01230 
01231         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01232         0,    0,    0,    0,    0,    0,  440,  440,  440,  440,
01233       440,  440,  512,    0,    0,    0,    0,    0,    0,    0,
01234         0,    0,    0,    0,    0,  512,  512,  512,  512,  512,
01235       512,  512,  512,  512,  512,    0,    0,    0,    0,    0,
01236         0,  512,  512,  512,  512,  512,  512,    0,    0,    0,
01237         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01238         0,    0,    0,    0,    0,    0,    0,    0,  512,    0,
01239         0,    0,  512,  512,  512,  512,  512,  512,  518,    0,
01240         0,    0,    0,    0,    0,    0,    0,  518,  518,  518,
01241 
01242       518,  518,  518,  518,  518,  518,  518,    0,    0,    0,
01243         0,    0,    0,  518,  518,  518,  518,  518,  518,    0,
01244         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01245         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01246       518,    0,    0,    0,  518,  518,  518,  518,  518,  518,
01247       669,  669,  670,  670,  671,  671,  674,  674,  675,  675,
01248       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01249       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01250       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01251       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01252 
01253       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01254       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01255       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01256       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01257       668,  668,  668,  668,  668,  668,  668,  668,  668,  668,
01258       668,  668,  668,  668,  668,  668
01259     } ;
01260 
01261 static yy_state_type yy_last_accepting_state;
01262 static char *yy_last_accepting_cpos;
01263 
01264 extern int yy_flex_debug;
01265 int yy_flex_debug = 0;
01266 
01267 /* The intent behind this definition is that it'll catch
01268  * any uses of REJECT which flex missed.
01269  */
01270 #define REJECT reject_used_but_not_detected
01271 #define yymore() yymore_used_but_not_detected
01272 #define YY_MORE_ADJ 0
01273 #define YY_RESTORE_YY_MORE_OFFSET
01274 char *yytext;
01275 /*
01276    The lestes compiler suite
01277    Copyright (C) 2002, 2003, 2004, 2005 Miroslav Tichy
01278    Copyright (C) 2002, 2003, 2004, 2005 Petr Zika
01279    Copyright (C) 2002, 2003, 2004, 2005 Vojtech Hala
01280    Copyright (C) 2002, 2003, 2004, 2005 Jiri Kosina
01281    Copyright (C) 2002, 2003, 2004, 2005 Pavel Sanda
01282    Copyright (C) 2002, 2003, 2004, 2005 Jan Zouhar
01283    Copyright (C) 2002, 2003, 2004, 2005 Rudolf Thomas
01284 
01285    This program is free software; you can redistribute it and/or modify
01286    it under the terms of the GNU General Public License as published by
01287    the Free Software Foundation; version 2 of the License.
01288 
01289    This program is distributed in the hope that it will be useful,
01290    but WITHOUT ANY WARRANTY; without even the implied warranty of
01291    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
01292    GNU General Public License for more details.
01293 
01294    See the full text of the GNU General Public License version 2, and
01295    the limitations in the file doc/LICENSE.
01296 
01297    By accepting the license the licensee waives any and all claims
01298    against the copyright holder(s) related in whole or in part to the
01299    work, its use, and/or the inability to use it.
01300  
01301  */
01302 /*! \file concat_guts.l
01303   \brief  C++ preprocessor operator '##' result checking.
01304   
01305   C++ preprocessor token concatenation lexical analyser.
01306   Checks validity of result of applying operator '##' of token concatenation.
01307   \author pt
01308 */
01309 
01310 #if __GNUC__ > 3
01311 //! Avoids standard C input and output.
01312 #pragma GCC poison fprintf fwrite getc fread ferror
01313 #endif
01314 
01315 //! Avoids implicit flex rules.
01316 #define ECHO lassert2(false, "ECHO should not be used.")
01317 
01318 using namespace ::lestes::std;
01319 using namespace ::lestes::lang::cplus::lex;
01320 using namespace ::std;
01321 
01322 //! called upon encountering real EOF, which should not happen, formal definition
01323 #define yyterminate() return pp_token::create(a_location,pp_token::TOK_FILE_END)
01324 
01325 //! Defines flex input function.
01326 #define YY_INPUT(buf,result,max_size) \
01327 { \
01328         result = concat::instance()->yy_input(buf,max_size); \
01329 }
01330 
01331 //! Defines prototype for flex parser function.
01332 #define YY_DECL ptr<pp_token> concat_parse(const ptr<source_location> &a_location, const ptr<token_value> &a_value)
01333 
01334 /*!
01335   Returns one token from flex parser.
01336   \param a_location The location for the result.
01337   \param a_value The token value for the result.
01338   \return  The concatenated token or NULL in case of ill-formed concatenation.
01339 */
01340 YY_DECL;
01341 /* settings for better performance from the knowledge of used features */
01342 #define YY_NO_INPUT 1
01343 /* end of file character class */
01344 /* translated characters character class */
01345 /* basic source character set character classes */
01346 /* helper character classes and sequences */
01347 /* any character */
01348 /* any character except end of file */
01349 /* any character except end of line */
01350 /* any character except star and end of file */
01351 /* any character except star, slash and end of file */
01352 /* any character except quote, backslash and end of line */
01353 /* any character except double quote, backslash and end of line */
01354 /* any character except greater than and end of line */
01355 /* any character except double quote and end of line */
01356 
01357 #define INITIAL 0
01358 
01359 #ifndef YY_NO_UNISTD_H
01360 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01361  * down here because we want the user's section 1 to have been scanned first.
01362  * The user has a chance to override it with an option.
01363  */
01364 //#include <unistd.h>
01365 #endif
01366 
01367 #ifndef YY_EXTRA_TYPE
01368 #define YY_EXTRA_TYPE void *
01369 #endif
01370 
01371 static int yy_init_globals (void );
01372 
01373 /* Macros after this point can all be overridden by user definitions in
01374  * section 1.
01375  */
01376 
01377 #ifndef YY_SKIP_YYWRAP
01378 #ifdef __cplusplus
01379 extern "C" int yywrap (void );
01380 #else
01381 extern int yywrap (void );
01382 #endif
01383 #endif
01384 
01385 #ifndef yytext_ptr
01386 static void yy_flex_strncpy (char *,yyconst char *,int );
01387 #endif
01388 
01389 #ifdef YY_NEED_STRLEN
01390 static int yy_flex_strlen (yyconst char * );
01391 #endif
01392 
01393 #ifndef YY_NO_INPUT
01394 
01395 #ifdef __cplusplus
01396 static int yyinput (void );
01397 #else
01398 static int input (void );
01399 #endif
01400 
01401 #endif
01402 
01403 /* Amount of stuff to slurp up with each read. */
01404 #ifndef YY_READ_BUF_SIZE
01405 #define YY_READ_BUF_SIZE 8192
01406 #endif
01407 
01408 /* Copy whatever the last rule matched to the standard output. */
01409 #ifndef ECHO
01410 /* This used to be an fputs(), but since the string might contain NUL's,
01411  * we now use fwrite().
01412  */
01413 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01414 #endif
01415 
01416 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01417  * is returned in "result".
01418  */
01419 #ifndef YY_INPUT
01420 #define YY_INPUT(buf,result,max_size) \
01421         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01422                 { \
01423                 int c = '*'; \
01424                 size_t n; \
01425                 for ( n = 0; n < max_size && \
01426                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01427                         buf[n] = (char) c; \
01428                 if ( c == '\n' ) \
01429                         buf[n++] = (char) c; \
01430                 if ( c == EOF && ferror( yyin ) ) \
01431                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01432                 result = n; \
01433                 } \
01434         else \
01435                 { \
01436                 errno=0; \
01437                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01438                         { \
01439                         if( errno != EINTR) \
01440                                 { \
01441                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01442                                 break; \
01443                                 } \
01444                         errno=0; \
01445                         clearerr(yyin); \
01446                         } \
01447                 }\
01448 \
01449 
01450 #endif
01451 
01452 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01453  * we don't want an extra ';' after the "return" because that will cause
01454  * some compilers to complain about unreachable statements.
01455  */
01456 #ifndef yyterminate
01457 #define yyterminate() return YY_NULL
01458 #endif
01459 
01460 /* Number of entries by which start-condition stack grows. */
01461 #ifndef YY_START_STACK_INCR
01462 #define YY_START_STACK_INCR 25
01463 #endif
01464 
01465 /* Report a fatal error. */
01466 #ifndef YY_FATAL_ERROR
01467 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01468 #endif
01469 
01470 /* end tables serialization structures and prototypes */
01471 
01472 /* Default declaration of generated scanner - a define so the user can
01473  * easily add parameters.
01474  */
01475 #ifndef YY_DECL
01476 #define YY_DECL_IS_OURS 1
01477 
01478 extern int yylex (void);
01479 
01480 #define YY_DECL int yylex (void)
01481 #endif /* !YY_DECL */
01482 
01483 /* Code executed at the beginning of each rule, after yytext and yyleng
01484  * have been set up.
01485  */
01486 #ifndef YY_USER_ACTION
01487 #define YY_USER_ACTION
01488 #endif
01489 
01490 /* Code executed at the end of each rule. */
01491 #ifndef YY_BREAK
01492 #define YY_BREAK break;
01493 #endif
01494 
01495 #define YY_RULE_SETUP \
01496         YY_USER_ACTION
01497 
01498 /** The main scanner function which does all the work.
01499  */
01500 YY_DECL
01501 {
01502         register yy_state_type yy_current_state;
01503         register char *yy_cp, *yy_bp;
01504         register int yy_act;
01505     
01506         if ( !(yy_init) )
01507                 {
01508                 (yy_init) = 1;
01509 
01510 #ifdef YY_USER_INIT
01511                 YY_USER_INIT;
01512 #endif
01513 
01514                 if ( ! (yy_start) )
01515                         (yy_start) = 1; /* first start state */
01516 
01517                 if ( ! yyin )
01518                         yyin = stdin;
01519 
01520                 if ( ! yyout )
01521                         yyout = stdout;
01522 
01523                 if ( ! YY_CURRENT_BUFFER ) {
01524                         yyensure_buffer_stack ();
01525                         YY_CURRENT_BUFFER_LVALUE =
01526                                 yy_create_buffer(yyin,YY_BUF_SIZE );
01527                 }
01528 
01529                 yy_load_buffer_state( );
01530                 }
01531 
01532         while ( 1 )             /* loops until end-of-file is reached */
01533                 {
01534                 yy_cp = (yy_c_buf_p);
01535 
01536                 /* Support of yytext. */
01537                 *yy_cp = (yy_hold_char);
01538 
01539                 /* yy_bp points to the position in yy_ch_buf of the start of
01540                  * the current run.
01541                  */
01542                 yy_bp = yy_cp;
01543 
01544                 yy_current_state = (yy_start);
01545 yy_match:
01546                 do
01547                         {
01548                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01549                         if ( yy_accept[yy_current_state] )
01550                                 {
01551                                 (yy_last_accepting_state) = yy_current_state;
01552                                 (yy_last_accepting_cpos) = yy_cp;
01553                                 }
01554                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01555                                 {
01556                                 yy_current_state = (int) yy_def[yy_current_state];
01557                                 if ( yy_current_state >= 669 )
01558                                         yy_c = yy_meta[(unsigned int) yy_c];
01559                                 }
01560                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01561                         ++yy_cp;
01562                         }
01563                 while ( yy_current_state != 668 );
01564                 yy_cp = (yy_last_accepting_cpos);
01565                 yy_current_state = (yy_last_accepting_state);
01566 
01567 yy_find_action:
01568                 yy_act = yy_accept[yy_current_state];
01569 
01570                 YY_DO_BEFORE_ACTION;
01571 
01572 do_action:      /* This label is used only to access EOF actions. */
01573 
01574                 switch ( yy_act )
01575         { /* beginning of action switch */
01576                         case 0: /* must back up */
01577                         /* undo the effects of YY_DO_BEFORE_ACTION */
01578                         *yy_cp = (yy_hold_char);
01579                         yy_cp = (yy_last_accepting_cpos);
01580                         yy_current_state = (yy_last_accepting_state);
01581                         goto yy_find_action;
01582 
01583 case 1:
01584 YY_RULE_SETUP
01585 {
01586         return pp_token::create(a_location,pp_token::TOK_LEFT_BRACKET);
01587 }
01588         YY_BREAK
01589 case 2:
01590 YY_RULE_SETUP
01591 {
01592         return pp_token::create_alternative(a_location,pp_token::TOK_LEFT_BRACKET);
01593 }
01594         YY_BREAK
01595 case 3:
01596 YY_RULE_SETUP
01597 {
01598         return pp_token::create(a_location,pp_token::TOK_RIGHT_BRACKET);
01599 }
01600         YY_BREAK
01601 case 4:
01602 YY_RULE_SETUP
01603 {
01604         return pp_token::create_alternative(a_location,pp_token::TOK_RIGHT_BRACKET);
01605 }
01606         YY_BREAK
01607 case 5:
01608 YY_RULE_SETUP
01609 {
01610         return pp_token::create(a_location,pp_token::TOK_LEFT_BRACE);
01611 }
01612         YY_BREAK
01613 case 6:
01614 YY_RULE_SETUP
01615 {
01616         return pp_token::create_alternative(a_location,pp_token::TOK_LEFT_BRACE);
01617 }
01618         YY_BREAK
01619 case 7:
01620 YY_RULE_SETUP
01621 {
01622         return pp_token::create(a_location,pp_token::TOK_RIGHT_BRACE);
01623 }
01624         YY_BREAK
01625 case 8:
01626 YY_RULE_SETUP
01627 {
01628         return pp_token::create_alternative(a_location,pp_token::TOK_RIGHT_BRACE);
01629 }
01630         YY_BREAK
01631 case 9:
01632 YY_RULE_SETUP
01633 {
01634         return pp_token::create(a_location,pp_token::TOK_HASH);
01635 }
01636         YY_BREAK
01637 case 10:
01638 YY_RULE_SETUP
01639 {
01640         return pp_token::create_alternative(a_location,pp_token::TOK_HASH);
01641 }
01642         YY_BREAK
01643 case 11:
01644 YY_RULE_SETUP
01645 {
01646         return pp_token::create(a_location,pp_token::TOK_HASH_HASH);
01647 }
01648         YY_BREAK
01649 case 12:
01650 YY_RULE_SETUP
01651 {
01652         return pp_token::create_alternative(a_location,pp_token::TOK_HASH_HASH);
01653 }
01654         YY_BREAK
01655 case 13:
01656 YY_RULE_SETUP
01657 {
01658         return pp_token::create(a_location,pp_token::TOK_LEFT_PAR);
01659 }
01660         YY_BREAK
01661 case 14:
01662 YY_RULE_SETUP
01663 {
01664         return pp_token::create(a_location,pp_token::TOK_RIGHT_PAR);
01665 }
01666         YY_BREAK
01667 case 15:
01668 YY_RULE_SETUP
01669 {
01670         return pp_token::create(a_location,pp_token::TOK_SEMICOLON);
01671 }
01672         YY_BREAK
01673 case 16:
01674 YY_RULE_SETUP
01675 {
01676         return pp_token::create(a_location,pp_token::TOK_COLON);
01677 }
01678         YY_BREAK
01679 case 17:
01680 YY_RULE_SETUP
01681 {
01682         return pp_token::create(a_location,pp_token::TOK_QMARK);
01683 }
01684         YY_BREAK
01685 case 18:
01686 YY_RULE_SETUP
01687 {
01688         return pp_token::create(a_location,pp_token::TOK_DOT);
01689 }
01690         YY_BREAK
01691 case 19:
01692 YY_RULE_SETUP
01693 {
01694         return pp_token::create(a_location,pp_token::TOK_PLUS);
01695 }
01696         YY_BREAK
01697 case 20:
01698 YY_RULE_SETUP
01699 {
01700         return pp_token::create(a_location,pp_token::TOK_STAR);
01701 }
01702         YY_BREAK
01703 case 21:
01704 YY_RULE_SETUP
01705 {
01706         return pp_token::create(a_location,pp_token::TOK_PERCENT);
01707 }
01708         YY_BREAK
01709 case 22:
01710 YY_RULE_SETUP
01711 {
01712         return pp_token::create(a_location,pp_token::TOK_SLASH);
01713 }
01714         YY_BREAK
01715 case 23:
01716 YY_RULE_SETUP
01717 {
01718         return pp_token::create(a_location,pp_token::TOK_HAT);
01719 }
01720         YY_BREAK
01721 case 24:
01722 YY_RULE_SETUP
01723 {
01724         return pp_token::create_alternative(a_location,pp_token::TOK_HAT);
01725 }
01726         YY_BREAK
01727 case 25:
01728 YY_RULE_SETUP
01729 {
01730         return pp_token::create(a_location,pp_token::TOK_AMP);
01731 }
01732         YY_BREAK
01733 case 26:
01734 YY_RULE_SETUP
01735 {
01736         return pp_token::create_alternative(a_location,pp_token::TOK_AMP);
01737 }
01738         YY_BREAK
01739 case 27:
01740 YY_RULE_SETUP
01741 {
01742         return pp_token::create(a_location,pp_token::TOK_VBAR);
01743 }
01744         YY_BREAK
01745 case 28:
01746 YY_RULE_SETUP
01747 {
01748         return pp_token::create_alternative(a_location,pp_token::TOK_VBAR);
01749 }
01750         YY_BREAK
01751 case 29:
01752 YY_RULE_SETUP
01753 {
01754         return pp_token::create(a_location,pp_token::TOK_TILDE);
01755 }
01756         YY_BREAK
01757 case 30:
01758 YY_RULE_SETUP
01759 {
01760         return pp_token::create_alternative(a_location,pp_token::TOK_TILDE);
01761 }
01762         YY_BREAK
01763 case 31:
01764 YY_RULE_SETUP
01765 {
01766         return pp_token::create(a_location,pp_token::TOK_EMARK);
01767 }
01768         YY_BREAK
01769 case 32:
01770 YY_RULE_SETUP
01771 {
01772         return pp_token::create_alternative(a_location,pp_token::TOK_EMARK);
01773 }
01774         YY_BREAK
01775 case 33:
01776 YY_RULE_SETUP
01777 {
01778         return pp_token::create(a_location,pp_token::TOK_EQ);
01779 }
01780         YY_BREAK
01781 case 34:
01782 YY_RULE_SETUP
01783 {
01784         return pp_token::create(a_location,pp_token::TOK_LT);
01785 }
01786         YY_BREAK
01787 case 35:
01788 YY_RULE_SETUP
01789 {
01790         return pp_token::create(a_location,pp_token::TOK_GT);
01791 }
01792         YY_BREAK
01793 case 36:
01794 YY_RULE_SETUP
01795 {
01796         return pp_token::create(a_location,pp_token::TOK_COMMA);
01797 }
01798         YY_BREAK
01799 case 37:
01800 YY_RULE_SETUP
01801 {
01802         return pp_token::create(a_location,pp_token::TOK_MINUS);
01803 }
01804         YY_BREAK
01805 case 38:
01806 YY_RULE_SETUP
01807 {
01808         return pp_token::create(a_location,pp_token::TOK_COLON_COLON);
01809 }
01810         YY_BREAK
01811 case 39:
01812 YY_RULE_SETUP
01813 {
01814         return pp_token::create(a_location,pp_token::TOK_DOT_STAR);
01815 }
01816         YY_BREAK
01817 case 40:
01818 YY_RULE_SETUP
01819 {
01820         return pp_token::create(a_location,pp_token::TOK_PLUS_EQ);
01821 }
01822         YY_BREAK
01823 case 41:
01824 YY_RULE_SETUP
01825 {
01826         return pp_token::create(a_location,pp_token::TOK_MINUS_EQ);
01827 }
01828         YY_BREAK
01829 case 42:
01830 YY_RULE_SETUP
01831 {
01832         return pp_token::create(a_location,pp_token::TOK_STAR_EQ);
01833 }
01834         YY_BREAK
01835 case 43:
01836 YY_RULE_SETUP
01837 {
01838         return pp_token::create(a_location,pp_token::TOK_SLASH_EQ);
01839 }
01840         YY_BREAK
01841 case 44:
01842 YY_RULE_SETUP
01843 {
01844         return pp_token::create(a_location,pp_token::TOK_PERCENT_EQ);
01845 }
01846         YY_BREAK
01847 case 45:
01848 YY_RULE_SETUP
01849 {
01850         return pp_token::create(a_location,pp_token::TOK_HAT_EQ);
01851 }
01852         YY_BREAK
01853 case 46:
01854 YY_RULE_SETUP
01855 {
01856         return pp_token::create_alternative(a_location,pp_token::TOK_HAT_EQ);
01857 }
01858         YY_BREAK
01859 case 47:
01860 YY_RULE_SETUP
01861 {
01862         return pp_token::create(a_location,pp_token::TOK_AMP_EQ);
01863 }
01864         YY_BREAK
01865 case 48:
01866 YY_RULE_SETUP
01867 {
01868         return pp_token::create_alternative(a_location,pp_token::TOK_AMP_EQ);
01869 }
01870         YY_BREAK
01871 case 49:
01872 YY_RULE_SETUP
01873 {
01874         return pp_token::create(a_location,pp_token::TOK_VBAR_EQ);
01875 }
01876         YY_BREAK
01877 case 50:
01878 YY_RULE_SETUP
01879 {
01880         return pp_token::create_alternative(a_location,pp_token::TOK_VBAR_EQ);
01881 }
01882         YY_BREAK
01883 case 51:
01884 YY_RULE_SETUP
01885 {
01886         return pp_token::create(a_location,pp_token::TOK_LT_LT);
01887 }
01888         YY_BREAK
01889 case 52:
01890 YY_RULE_SETUP
01891 {
01892         return pp_token::create(a_location,pp_token::TOK_GT_GT);
01893 }
01894         YY_BREAK
01895 case 53:
01896 YY_RULE_SETUP
01897 {
01898         return pp_token::create(a_location,pp_token::TOK_GT_GT_EQ);
01899 }
01900         YY_BREAK
01901 case 54:
01902 YY_RULE_SETUP
01903 {
01904         return pp_token::create(a_location,pp_token::TOK_LT_LT_EQ);
01905 }
01906         YY_BREAK
01907 case 55:
01908 YY_RULE_SETUP
01909 {
01910         return pp_token::create(a_location,pp_token::TOK_EQ_EQ);
01911 }
01912         YY_BREAK
01913 case 56:
01914 YY_RULE_SETUP
01915 {
01916         return pp_token::create(a_location,pp_token::TOK_EMARK_EQ);
01917 }
01918         YY_BREAK
01919 case 57:
01920 YY_RULE_SETUP
01921 {
01922         return pp_token::create_alternative(a_location,pp_token::TOK_EMARK_EQ);
01923 }
01924         YY_BREAK
01925 case 58:
01926 YY_RULE_SETUP
01927 {
01928         return pp_token::create(a_location,pp_token::TOK_LT_EQ);
01929 }
01930         YY_BREAK
01931 case 59:
01932 YY_RULE_SETUP
01933 {
01934         return pp_token::create(a_location,pp_token::TOK_GT_EQ);
01935 }
01936         YY_BREAK
01937 case 60:
01938 YY_RULE_SETUP
01939 {
01940         return pp_token::create(a_location,pp_token::TOK_AMP_AMP);
01941 }
01942         YY_BREAK
01943 case 61:
01944 YY_RULE_SETUP
01945 {
01946         return pp_token::create_alternative(a_location,pp_token::TOK_AMP_AMP);
01947 }
01948         YY_BREAK
01949 case 62:
01950 YY_RULE_SETUP
01951 {
01952         return pp_token::create(a_location,pp_token::TOK_VBAR_VBAR);
01953 }
01954         YY_BREAK
01955 case 63:
01956 YY_RULE_SETUP
01957 {
01958         return pp_token::create_alternative(a_location,pp_token::TOK_VBAR_VBAR);
01959 }
01960         YY_BREAK
01961 case 64:
01962 YY_RULE_SETUP
01963 {
01964         return pp_token::create(a_location,pp_token::TOK_PLUS_PLUS);
01965 }
01966         YY_BREAK
01967 case 65:
01968 YY_RULE_SETUP
01969 {
01970         return pp_token::create(a_location,pp_token::TOK_MINUS_MINUS);
01971 }
01972         YY_BREAK
01973 case 66:
01974 YY_RULE_SETUP
01975 {
01976         return pp_token::create(a_location,pp_token::TOK_MINUS_GT_STAR);
01977 }
01978         YY_BREAK
01979 case 67:
01980 YY_RULE_SETUP
01981 {
01982         return pp_token::create(a_location,pp_token::TOK_MINUS_GT);
01983 }
01984         YY_BREAK
01985 case 68:
01986 YY_RULE_SETUP
01987 {
01988         return pp_token::create(a_location,pp_token::TOK_DOT_DOT_DOT);
01989 }
01990         YY_BREAK
01991 case 69:
01992 YY_RULE_SETUP
01993 {
01994         return pp_token::create(a_location,pp_token::TOK_ASM);
01995 }
01996         YY_BREAK
01997 case 70:
01998 YY_RULE_SETUP
01999 {
02000         return pp_token::create(a_location,pp_token::TOK_AUTO);
02001 }
02002         YY_BREAK
02003 case 71:
02004 YY_RULE_SETUP
02005 {
02006         return pp_token::create(a_location,pp_token::TOK_BOOL);
02007 }
02008         YY_BREAK
02009 case 72:
02010 YY_RULE_SETUP
02011 {
02012         return pp_token::create(a_location,pp_token::TOK_BREAK);
02013 }
02014         YY_BREAK
02015 case 73:
02016 YY_RULE_SETUP
02017 {
02018         return pp_token::create(a_location,pp_token::TOK_CASE);
02019 }
02020         YY_BREAK
02021 case 74:
02022 YY_RULE_SETUP
02023 {
02024         return pp_token::create(a_location,pp_token::TOK_CATCH);
02025 }
02026         YY_BREAK
02027 case 75:
02028 YY_RULE_SETUP
02029 {
02030         return pp_token::create(a_location,pp_token::TOK_CHAR);
02031 }
02032         YY_BREAK
02033 case 76:
02034 YY_RULE_SETUP
02035 {
02036         return pp_token::create(a_location,pp_token::TOK_CLASS);
02037 }
02038         YY_BREAK
02039 case 77:
02040 YY_RULE_SETUP
02041 {
02042         return pp_token::create(a_location,pp_token::TOK_CONST);
02043 }
02044         YY_BREAK
02045 case 78:
02046 YY_RULE_SETUP
02047 {
02048         return pp_token::create(a_location,pp_token::TOK_CONST_CAST);
02049 }
02050         YY_BREAK
02051 case 79:
02052 YY_RULE_SETUP
02053 {
02054         return pp_token::create(a_location,pp_token::TOK_CONTINUE);
02055 }
02056         YY_BREAK
02057 case 80:
02058 YY_RULE_SETUP
02059 {
02060         return pp_token::create(a_location,pp_token::TOK_DEFAULT);
02061 }
02062         YY_BREAK
02063 case 81:
02064 YY_RULE_SETUP
02065 {
02066         return pp_token::create(a_location,pp_token::TOK_DELETE);
02067 }
02068         YY_BREAK
02069 case 82:
02070 YY_RULE_SETUP
02071 {
02072         return pp_token::create(a_location,pp_token::TOK_DO);
02073 }
02074         YY_BREAK
02075 case 83:
02076 YY_RULE_SETUP
02077 {
02078         return pp_token::create(a_location,pp_token::TOK_DOUBLE);
02079 }
02080         YY_BREAK
02081 case 84:
02082 YY_RULE_SETUP
02083 {
02084         return pp_token::create(a_location,pp_token::TOK_DYNAMIC_CAST);
02085 }
02086         YY_BREAK
02087 case 85:
02088 YY_RULE_SETUP
02089 {
02090         return pp_token::create(a_location,pp_token::TOK_ELSE);
02091 }
02092         YY_BREAK
02093 case 86:
02094 YY_RULE_SETUP
02095 {
02096         return pp_token::create(a_location,pp_token::TOK_ENUM);
02097 }
02098         YY_BREAK
02099 case 87:
02100 YY_RULE_SETUP
02101 {
02102         return pp_token::create(a_location,pp_token::TOK_EXPLICIT);
02103 }
02104         YY_BREAK
02105 case 88:
02106 YY_RULE_SETUP
02107 {
02108         return pp_token::create(a_location,pp_token::TOK_EXPORT);
02109 }
02110         YY_BREAK
02111 case 89:
02112 YY_RULE_SETUP
02113 {
02114         return pp_token::create(a_location,pp_token::TOK_EXTERN);
02115 }
02116         YY_BREAK
02117 case 90:
02118 YY_RULE_SETUP
02119 {
02120         return pp_token::create(a_location,pp_token::TOK_FLOAT);
02121 }
02122         YY_BREAK
02123 case 91:
02124 YY_RULE_SETUP
02125 {
02126         return pp_token::create(a_location,pp_token::TOK_FOR);
02127 }
02128         YY_BREAK
02129 case 92:
02130 YY_RULE_SETUP
02131 {
02132         return pp_token::create(a_location,pp_token::TOK_FRIEND);
02133 }
02134         YY_BREAK
02135 case 93:
02136 YY_RULE_SETUP
02137 {
02138         return pp_token::create(a_location,pp_token::TOK_GOTO);
02139 }
02140         YY_BREAK
02141 case 94:
02142 YY_RULE_SETUP
02143 {
02144         return pp_token::create(a_location,pp_token::TOK_IF);
02145 }
02146         YY_BREAK
02147 case 95:
02148 YY_RULE_SETUP
02149 {
02150         return pp_token::create(a_location,pp_token::TOK_INLINE);
02151 }
02152         YY_BREAK
02153 case 96:
02154 YY_RULE_SETUP
02155 {
02156         return pp_token::create(a_location,pp_token::TOK_INT);
02157 }
02158         YY_BREAK
02159 case 97:
02160 YY_RULE_SETUP
02161 {
02162         return pp_token::create(a_location,pp_token::TOK_LONG);
02163 }
02164         YY_BREAK
02165 case 98:
02166 YY_RULE_SETUP
02167 {
02168         return pp_token::create(a_location,pp_token::TOK_MUTABLE);
02169 }
02170         YY_BREAK
02171 case 99:
02172 YY_RULE_SETUP
02173 {
02174         return pp_token::create(a_location,pp_token::TOK_NAMESPACE);
02175 }
02176         YY_BREAK
02177 case 100:
02178 YY_RULE_SETUP
02179 {
02180         return pp_token::create(a_location,pp_token::TOK_NEW);
02181 }
02182         YY_BREAK
02183 case 101:
02184 YY_RULE_SETUP
02185 {
02186         return pp_token::create(a_location,pp_token::TOK_OPERATOR);
02187 }
02188         YY_BREAK
02189 case 102:
02190 YY_RULE_SETUP
02191 {
02192         return pp_token::create(a_location,pp_token::TOK_PRIVATE);
02193 }
02194         YY_BREAK
02195 case 103:
02196 YY_RULE_SETUP
02197 {
02198         return pp_token::create(a_location,pp_token::TOK_PROTECTED);
02199 }
02200         YY_BREAK
02201 case 104:
02202 YY_RULE_SETUP
02203 {
02204         return pp_token::create(a_location,pp_token::TOK_PUBLIC);
02205 }
02206         YY_BREAK
02207 case 105:
02208 YY_RULE_SETUP
02209 {
02210         return pp_token::create(a_location,pp_token::TOK_REGISTER);
02211 }
02212         YY_BREAK
02213 case 106:
02214 YY_RULE_SETUP
02215 {
02216         return pp_token::create(a_location,pp_token::TOK_REINTERPRET_CAST);
02217 }
02218         YY_BREAK
02219 case 107:
02220 YY_RULE_SETUP
02221 {
02222         return pp_token::create(a_location,pp_token::TOK_RETURN);
02223 }
02224         YY_BREAK
02225 case 108:
02226 YY_RULE_SETUP
02227 {
02228         return pp_token::create(a_location,pp_token::TOK_SHORT);
02229 }
02230         YY_BREAK
02231 case 109:
02232 YY_RULE_SETUP
02233 {
02234         return pp_token::create(a_location,pp_token::TOK_SIGNED);
02235 }
02236         YY_BREAK
02237 case 110:
02238 YY_RULE_SETUP
02239 {
02240         return pp_token::create(a_location,pp_token::TOK_SIZEOF);
02241 }
02242         YY_BREAK
02243 case 111:
02244 YY_RULE_SETUP
02245 {
02246         return pp_token::create(a_location,pp_token::TOK_STATIC);
02247 }
02248         YY_BREAK
02249 case 112:
02250 YY_RULE_SETUP
02251 {
02252         return pp_token::create(a_location,pp_token::TOK_STATIC_CAST);
02253 }
02254         YY_BREAK
02255 case 113:
02256 YY_RULE_SETUP
02257 {
02258         return pp_token::create(a_location,pp_token::TOK_STRUCT);
02259 }
02260         YY_BREAK
02261 case 114:
02262 YY_RULE_SETUP
02263 {
02264         return pp_token::create(a_location,pp_token::TOK_SWITCH);
02265 }
02266         YY_BREAK
02267 case 115:
02268 YY_RULE_SETUP
02269 {
02270         return pp_token::create(a_location,pp_token::TOK_TEMPLATE);
02271 }
02272         YY_BREAK
02273 case 116:
02274 YY_RULE_SETUP
02275 {
02276         return pp_token::create(a_location,pp_token::TOK_THIS);
02277 }
02278         YY_BREAK
02279 case 117:
02280 YY_RULE_SETUP
02281 {
02282         return pp_token::create(a_location,pp_token::TOK_THROW);
02283 }
02284         YY_BREAK
02285 case 118:
02286 YY_RULE_SETUP
02287 {
02288         return pp_token::create(a_location,pp_token::TOK_TRY);
02289 }
02290         YY_BREAK
02291 case 119:
02292 YY_RULE_SETUP
02293 {
02294         return pp_token::create(a_location,pp_token::TOK_TYPEDEF);
02295 }
02296         YY_BREAK
02297 case 120:
02298 YY_RULE_SETUP
02299 {
02300         return pp_token::create(a_location,pp_token::TOK_TYPEID);
02301 }
02302         YY_BREAK
02303 case 121:
02304 YY_RULE_SETUP
02305 {
02306         return pp_token::create(a_location,pp_token::TOK_TYPENAME);
02307 }
02308         YY_BREAK
02309 case 122:
02310 YY_RULE_SETUP
02311 {
02312         return pp_token::create(a_location,pp_token::TOK_UNION);
02313 }
02314         YY_BREAK
02315 case 123:
02316 YY_RULE_SETUP
02317 {
02318         return pp_token::create(a_location,pp_token::TOK_UNSIGNED);
02319 }
02320         YY_BREAK
02321 case 124:
02322 YY_RULE_SETUP
02323 {
02324         return pp_token::create(a_location,pp_token::TOK_USING);
02325 }
02326         YY_BREAK
02327 case 125:
02328 YY_RULE_SETUP
02329 {
02330         return pp_token::create(a_location,pp_token::TOK_VIRTUAL);
02331 }
02332         YY_BREAK
02333 case 126:
02334 YY_RULE_SETUP
02335 {
02336         return pp_token::create(a_location,pp_token::TOK_VOID);
02337 }
02338         YY_BREAK
02339 case 127:
02340 YY_RULE_SETUP
02341 {
02342         return pp_token::create(a_location,pp_token::TOK_VOLATILE);
02343 }
02344         YY_BREAK
02345 case 128:
02346 YY_RULE_SETUP
02347 {
02348         return pp_token::create(a_location,pp_token::TOK_WCHAR);
02349 }
02350         YY_BREAK
02351 case 129:
02352 YY_RULE_SETUP
02353 {
02354         return pp_token::create(a_location,pp_token::TOK_WHILE);
02355 }
02356         YY_BREAK
02357 case 130:
02358 YY_RULE_SETUP
02359 {
02360         return pp_token::create(a_location,pp_token::TOK_BOOL_LIT,a_value);
02361 }
02362         YY_BREAK
02363 case 131:
02364 YY_RULE_SETUP
02365 {
02366         return pp_token::create(a_location,pp_token::TOK_BOOL_LIT,a_value);
02367 }
02368         YY_BREAK
02369 /* pp number */
02370 case 132:
02371 YY_RULE_SETUP
02372 {
02373         return pp_token::create(a_location,pp_token::TOK_NUMBER_LIT,a_value);
02374 }
02375         YY_BREAK
02376 /* pp won't be number (ucn or underscore) - next best match */
02377 case 133:
02378 YY_RULE_SETUP
02379 {
02380         return pp_token::create(a_location,pp_token::TOK_NUMBER_LIT,a_value);
02381 }
02382         YY_BREAK
02383 /* pp alphanumeric identifier */
02384 case 134:
02385 YY_RULE_SETUP
02386 {
02387         return pp_token::create(a_location,pp_token::TOK_IDENT,a_value);
02388 }
02389         YY_BREAK
02390 /* pp generic identifier (contains ucns) */
02391 case 135:
02392 YY_RULE_SETUP
02393 {
02394         // check correct ucn in identifiers
02395         ucn_string us(a_value->content_get());
02396         ucn u;
02397         for (ucn_string::iterator it = us.begin(), end = us.end(); it != end; ++it) {
02398                 u = *it;
02399                 if (!(character::is_basic(u) || character::is_translated_identifier(u)))
02400          // invalid character in identifier
02401                         return NULL;
02402         }
02403         return pp_token::create(a_location,pp_token::TOK_IDENT,a_value);
02404 }
02405         YY_BREAK
02406 /* character literal */
02407 case 136:
02408 YY_RULE_SETUP
02409 {
02410    ucn_string u(a_value->content_get());
02411    ucn_string v(u.begin() + 1,u.begin() + u.length() - 1);
02412         return pp_token::create(a_location,pp_token::TOK_CHAR_LIT,token_value::create(v));
02413 }
02414         YY_BREAK
02415 /* wide character literal */
02416 case 137:
02417 YY_RULE_SETUP
02418 {
02419    ucn_string u(a_value->content_get());
02420    ucn_string v(u.begin() + 2,u.begin() + u.length() - 1);
02421         return pp_token::create(a_location,pp_token::TOK_WCHAR_LIT,token_value::create(v));
02422 }
02423         YY_BREAK
02424 /* string literal */
02425 case 138:
02426 YY_RULE_SETUP
02427 {
02428    ucn_string u(a_value->content_get());
02429    ucn_string v(u.begin() + 1,u.begin() + u.length() - 1);
02430         return pp_token::create(a_location,pp_token::TOK_STRING_LIT,token_value::create(v));
02431 }
02432         YY_BREAK
02433 /* wide string literal */
02434 case 139:
02435 YY_RULE_SETUP
02436 {
02437    ucn_string u(a_value->content_get());
02438    ucn_string v(u.begin() + 2,u.begin() + u.length() - 1);
02439         return pp_token::create(a_location,pp_token::TOK_WSTRING_LIT,token_value::create(v));
02440 }
02441         YY_BREAK
02442 /* chatch ill-formed concatenation */
02443 case 140:
02444 /* rule 140 can match eol */
02445 YY_RULE_SETUP
02446 {
02447         return NULL;
02448 }
02449         YY_BREAK
02450 case 141:
02451 YY_RULE_SETUP
02452 ECHO;
02453         YY_BREAK
02454 case YY_STATE_EOF(INITIAL):
02455         yyterminate();
02456 
02457         case YY_END_OF_BUFFER:
02458                 {
02459                 /* Amount of text matched not including the EOB char. */
02460                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
02461 
02462                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02463                 *yy_cp = (yy_hold_char);
02464                 YY_RESTORE_YY_MORE_OFFSET
02465 
02466                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02467                         {
02468                         /* We're scanning a new file or input source.  It's
02469                          * possible that this happened because the user
02470                          * just pointed yyin at a new source and called
02471                          * yylex().  If so, then we have to assure
02472                          * consistency between YY_CURRENT_BUFFER and our
02473                          * globals.  Here is the right place to do so, because
02474                          * this is the first action (other than possibly a
02475                          * back-up) that will match for the new input source.
02476                          */
02477                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02478                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
02479                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02480                         }
02481 
02482                 /* Note that here we test for yy_c_buf_p "<=" to the position
02483                  * of the first EOB in the buffer, since yy_c_buf_p will
02484                  * already have been incremented past the NUL character
02485                  * (since all states make transitions on EOB to the
02486                  * end-of-buffer state).  Contrast this with the test
02487                  * in input().
02488                  */
02489                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02490                         { /* This was really a NUL. */
02491                         yy_state_type yy_next_state;
02492 
02493                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
02494 
02495                         yy_current_state = yy_get_previous_state(  );
02496 
02497                         /* Okay, we're now positioned to make the NUL
02498                          * transition.  We couldn't have
02499                          * yy_get_previous_state() go ahead and do it
02500                          * for us because it doesn't know how to deal
02501                          * with the possibility of jamming (and we don't
02502                          * want to build jamming into it because then it
02503                          * will run more slowly).
02504                          */
02505 
02506                         yy_next_state = yy_try_NUL_trans( yy_current_state );
02507 
02508                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02509 
02510                         if ( yy_next_state )
02511                                 {
02512                                 /* Consume the NUL. */
02513                                 yy_cp = ++(yy_c_buf_p);
02514                                 yy_current_state = yy_next_state;
02515                                 goto yy_match;
02516                                 }
02517 
02518                         else
02519                                 {
02520                                 yy_cp = (yy_last_accepting_cpos);
02521                                 yy_current_state = (yy_last_accepting_state);
02522                                 goto yy_find_action;
02523                                 }
02524                         }
02525 
02526                 else switch ( yy_get_next_buffer(  ) )
02527                         {
02528                         case EOB_ACT_END_OF_FILE:
02529                                 {
02530                                 (yy_did_buffer_switch_on_eof) = 0;
02531 
02532                                 if ( yywrap( ) )
02533                                         {
02534                                         /* Note: because we've taken care in
02535                                          * yy_get_next_buffer() to have set up
02536                                          * yytext, we can now set up
02537                                          * yy_c_buf_p so that if some total
02538                                          * hoser (like flex itself) wants to
02539                                          * call the scanner after we return the
02540                                          * YY_NULL, it'll still work - another
02541                                          * YY_NULL will get returned.
02542                                          */
02543                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
02544 
02545                                         yy_act = YY_STATE_EOF(YY_START);
02546                                         goto do_action;
02547                                         }
02548 
02549                                 else
02550                                         {
02551                                         if ( ! (yy_did_buffer_switch_on_eof) )
02552                                                 YY_NEW_FILE;
02553                                         }
02554                                 break;
02555                                 }
02556 
02557                         case EOB_ACT_CONTINUE_SCAN:
02558                                 (yy_c_buf_p) =
02559                                         (yytext_ptr) + yy_amount_of_matched_text;
02560 
02561                                 yy_current_state = yy_get_previous_state(  );
02562 
02563                                 yy_cp = (yy_c_buf_p);
02564                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02565                                 goto yy_match;
02566 
02567                         case EOB_ACT_LAST_MATCH:
02568                                 (yy_c_buf_p) =
02569                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
02570 
02571                                 yy_current_state = yy_get_previous_state(  );
02572 
02573                                 yy_cp = (yy_c_buf_p);
02574                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02575                                 goto yy_find_action;
02576                         }
02577                 break;
02578                 }
02579 
02580         default:
02581                 YY_FATAL_ERROR(
02582                         "fatal flex scanner internal error--no action found" );
02583         } /* end of action switch */
02584                 } /* end of scanning one token */
02585 } /* end of yylex */
02586 
02587 /* yy_get_next_buffer - try to read in a new buffer
02588  *
02589  * Returns a code representing an action:
02590  *      EOB_ACT_LAST_MATCH -
02591  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02592  *      EOB_ACT_END_OF_FILE - end of file
02593  */
02594 static int yy_get_next_buffer (void)
02595 {
02596         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02597         register char *source = (yytext_ptr);
02598         register int number_to_move, i;
02599         int ret_val;
02600 
02601         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
02602                 YY_FATAL_ERROR(
02603                 "fatal flex scanner internal error--end of buffer missed" );
02604 
02605         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02606                 { /* Don't try to fill the buffer, so this is an EOF. */
02607                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
02608                         {
02609                         /* We matched a single character, the EOB, so
02610                          * treat this as a final EOF.
02611                          */
02612                         return EOB_ACT_END_OF_FILE;
02613                         }
02614 
02615                 else
02616                         {
02617                         /* We matched some text prior to the EOB, first
02618                          * process it.
02619                          */
02620                         return EOB_ACT_LAST_MATCH;
02621                         }
02622                 }
02623 
02624         /* Try to read more data. */
02625 
02626         /* First move last chars to start of buffer. */
02627         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
02628 
02629         for ( i = 0; i < number_to_move; ++i )
02630                 *(dest++) = *(source++);
02631 
02632         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02633                 /* don't do the read, it's not guaranteed to return an EOF,
02634                  * just force an EOF
02635                  */
02636                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
02637 
02638         else
02639                 {
02640                         int num_to_read =
02641                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02642 
02643                 while ( num_to_read <= 0 )
02644                         { /* Not enough room in the buffer - grow it. */
02645 
02646                         /* just a shorter name for the current buffer */
02647                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02648 
02649                         int yy_c_buf_p_offset =
02650                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
02651 
02652                         if ( b->yy_is_our_buffer )
02653                                 {
02654                                 int new_size = b->yy_buf_size * 2;
02655 
02656                                 if ( new_size <= 0 )
02657                                         b->yy_buf_size += b->yy_buf_size / 8;
02658                                 else
02659                                         b->yy_buf_size *= 2;
02660 
02661                                 b->yy_ch_buf = (char *)
02662                                         /* Include room in for 2 EOB chars. */
02663                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
02664                                 }
02665                         else
02666                                 /* Can't grow it, we don't own it. */
02667                                 b->yy_ch_buf = 0;
02668 
02669                         if ( ! b->yy_ch_buf )
02670                                 YY_FATAL_ERROR(
02671                                 "fatal error - scanner input buffer overflow" );
02672 
02673                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
02674 
02675                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02676                                                 number_to_move - 1;
02677 
02678                         }
02679 
02680                 if ( num_to_read > YY_READ_BUF_SIZE )
02681                         num_to_read = YY_READ_BUF_SIZE;
02682 
02683                 /* Read in more data. */
02684                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02685                         (yy_n_chars), num_to_read );
02686 
02687                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02688                 }
02689 
02690         if ( (yy_n_chars) == 0 )
02691                 {
02692                 if ( number_to_move == YY_MORE_ADJ )
02693                         {
02694                         ret_val = EOB_ACT_END_OF_FILE;
02695                         yyrestart(yyin  );
02696                         }
02697 
02698                 else
02699                         {
02700                         ret_val = EOB_ACT_LAST_MATCH;
02701                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02702                                 YY_BUFFER_EOF_PENDING;
02703                         }
02704                 }
02705 
02706         else
02707                 ret_val = EOB_ACT_CONTINUE_SCAN;
02708 
02709         (yy_n_chars) += number_to_move;
02710         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02711         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02712 
02713         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02714 
02715         return ret_val;
02716 }
02717 
02718 /* yy_get_previous_state - get the state just before the EOB char was reached */
02719 
02720     static yy_state_type yy_get_previous_state (void)
02721 {
02722         register yy_state_type yy_current_state;
02723         register char *yy_cp;
02724     
02725         yy_current_state = (yy_start);
02726 
02727         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02728                 {
02729                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 95);
02730                 if ( yy_accept[yy_current_state] )
02731                         {
02732                         (yy_last_accepting_state) = yy_current_state;
02733                         (yy_last_accepting_cpos) = yy_cp;
02734                         }
02735                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02736                         {
02737                         yy_current_state = (int) yy_def[yy_current_state];
02738                         if ( yy_current_state >= 669 )
02739                                 yy_c = yy_meta[(unsigned int) yy_c];
02740                         }
02741                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02742                 }
02743 
02744         return yy_current_state;
02745 }
02746 
02747 /* yy_try_NUL_trans - try to make a transition on the NUL character
02748  *
02749  * synopsis
02750  *      next_state = yy_try_NUL_trans( current_state );
02751  */
02752     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02753 {
02754         register int yy_is_jam;
02755         register char *yy_cp = (yy_c_buf_p);
02756 
02757         register YY_CHAR yy_c = 95;
02758         if ( yy_accept[yy_current_state] )
02759                 {
02760                 (yy_last_accepting_state) = yy_current_state;
02761                 (yy_last_accepting_cpos) = yy_cp;
02762                 }
02763         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02764                 {
02765                 yy_current_state = (int) yy_def[yy_current_state];
02766                 if ( yy_current_state >= 669 )
02767                         yy_c = yy_meta[(unsigned int) yy_c];
02768                 }
02769         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02770         yy_is_jam = (yy_current_state == 668);
02771 
02772         return yy_is_jam ? 0 : yy_current_state;
02773 }
02774 
02775 #ifndef YY_NO_INPUT
02776 #ifdef __cplusplus
02777     static int yyinput (void)
02778 #else
02779     static int input  (void)
02780 #endif
02781 
02782 {
02783         int c;
02784     
02785         *(yy_c_buf_p) = (yy_hold_char);
02786 
02787         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02788                 {
02789                 /* yy_c_buf_p now points to the character we want to return.
02790                  * If this occurs *before* the EOB characters, then it's a
02791                  * valid NUL; if not, then we've hit the end of the buffer.
02792                  */
02793                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02794                         /* This was really a NUL. */
02795                         *(yy_c_buf_p) = '\0';
02796 
02797                 else
02798                         { /* need more input */
02799                         int offset = (yy_c_buf_p) - (yytext_ptr);
02800                         ++(yy_c_buf_p);
02801 
02802                         switch ( yy_get_next_buffer(  ) )
02803                                 {
02804                                 case EOB_ACT_LAST_MATCH:
02805                                         /* This happens because yy_g_n_b()
02806                                          * sees that we've accumulated a
02807                                          * token and flags that we need to
02808                                          * try matching the token before
02809                                          * proceeding.  But for input(),
02810                                          * there's no matching to consider.
02811                                          * So convert the EOB_ACT_LAST_MATCH
02812                                          * to EOB_ACT_END_OF_FILE.
02813                                          */
02814 
02815                                         /* Reset buffer status. */
02816                                         yyrestart(yyin );
02817 
02818                                         /*FALLTHROUGH*/
02819 
02820                                 case EOB_ACT_END_OF_FILE:
02821                                         {
02822                                         if ( yywrap( ) )
02823                                                 return EOF;
02824 
02825                                         if ( ! (yy_did_buffer_switch_on_eof) )
02826                                                 YY_NEW_FILE;
02827 #ifdef __cplusplus
02828                                         return yyinput();
02829 #else
02830                                         return input();
02831 #endif
02832                                         }
02833 
02834                                 case EOB_ACT_CONTINUE_SCAN:
02835                                         (yy_c_buf_p) = (yytext_ptr) + offset;
02836                                         break;
02837                                 }
02838                         }
02839                 }
02840 
02841         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
02842         *(yy_c_buf_p) = '\0';   /* preserve yytext */
02843         (yy_hold_char) = *++(yy_c_buf_p);
02844 
02845         return c;
02846 }
02847 #endif  /* ifndef YY_NO_INPUT */
02848 
02849 /** Immediately switch to a different input stream.
02850  * @param input_file A readable stream.
02851  * 
02852  * @note This function does not reset the start condition to @c INITIAL .
02853  */
02854     void yyrestart  (FILE * input_file )
02855 {
02856     
02857         if ( ! YY_CURRENT_BUFFER ){
02858         yyensure_buffer_stack ();
02859                 YY_CURRENT_BUFFER_LVALUE =
02860             yy_create_buffer(yyin,YY_BUF_SIZE );
02861         }
02862 
02863         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
02864         yy_load_buffer_state( );
02865 }
02866 
02867 /** Switch to a different input buffer.
02868  * @param new_buffer The new input buffer.
02869  * 
02870  */
02871     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02872 {
02873     
02874         /* TODO. We should be able to replace this entire function body
02875          * with
02876          *              yypop_buffer_state();
02877          *              yypush_buffer_state(new_buffer);
02878      */
02879         yyensure_buffer_stack ();
02880         if ( YY_CURRENT_BUFFER == new_buffer )
02881                 return;
02882 
02883         if ( YY_CURRENT_BUFFER )
02884                 {
02885                 /* Flush out information for old buffer. */
02886                 *(yy_c_buf_p) = (yy_hold_char);
02887                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02888                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02889                 }
02890 
02891         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02892         yy_load_buffer_state( );
02893 
02894         /* We don't actually know whether we did this switch during
02895          * EOF (yywrap()) processing, but the only time this flag
02896          * is looked at is after yywrap() is called, so it's safe
02897          * to go ahead and always set it.
02898          */
02899         (yy_did_buffer_switch_on_eof) = 1;
02900 }
02901 
02902 static void yy_load_buffer_state  (void)
02903 {
02904         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02905         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02906         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02907         (yy_hold_char) = *(yy_c_buf_p);
02908 }
02909 
02910 /** Allocate and initialize an input buffer state.
02911  * @param file A readable stream.
02912  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
02913  * 
02914  * @return the allocated buffer state.
02915  */
02916     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
02917 {
02918         YY_BUFFER_STATE b;
02919     
02920         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02921         if ( ! b )
02922                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02923 
02924         b->yy_buf_size = size;
02925 
02926         /* yy_ch_buf has to be 2 characters longer than the size given because
02927          * we need to put in 2 end-of-buffer characters.
02928          */
02929         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
02930         if ( ! b->yy_ch_buf )
02931                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02932 
02933         b->yy_is_our_buffer = 1;
02934 
02935         yy_init_buffer(b,file );
02936 
02937         return b;
02938 }
02939 
02940 /** Destroy the buffer.
02941  * @param b a buffer created with yy_create_buffer()
02942  * 
02943  */
02944     void yy_delete_buffer (YY_BUFFER_STATE  b )
02945 {
02946     
02947         if ( ! b )
02948                 return;
02949 
02950         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02951                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02952 
02953         if ( b->yy_is_our_buffer )
02954                 yyfree((void *) b->yy_ch_buf  );
02955 
02956         yyfree((void *) b  );
02957 }
02958 
02959 /* Initializes or reinitializes a buffer.
02960  * This function is sometimes called more than once on the same buffer,
02961  * such as during a yyrestart() or at EOF.
02962  */
02963     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02964 
02965 {
02966 #if 0
02967         int oerrno = errno;
02968 #endif
02969     
02970         yy_flush_buffer(b );
02971 
02972         b->yy_input_file = file;
02973         b->yy_fill_buffer = 1;
02974 
02975     /* If b is the current buffer, then yy_init_buffer was _probably_
02976      * called from yyrestart() or through yy_get_next_buffer.
02977      * In that case, we don't want to reset the lineno or column.
02978      */
02979     if (b != YY_CURRENT_BUFFER){
02980         b->yy_bs_lineno = 1;
02981         b->yy_bs_column = 0;
02982     }
02983 
02984         b->yy_is_interactive = 0;
02985     
02986 #if 0
02987         errno = oerrno;
02988 #endif
02989 }
02990 
02991 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
02992  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
02993  * 
02994  */
02995     void yy_flush_buffer (YY_BUFFER_STATE  b )
02996 {
02997         if ( ! b )
02998                 return;
02999 
03000         b->yy_n_chars = 0;
03001 
03002         /* We always need two end-of-buffer characters.  The first causes
03003          * a transition to the end-of-buffer state.  The second causes
03004          * a jam in that state.
03005          */
03006         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03007         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03008 
03009         b->yy_buf_pos = &b->yy_ch_buf[0];
03010 
03011         b->yy_at_bol = 1;
03012         b->yy_buffer_status = YY_BUFFER_NEW;
03013 
03014         if ( b == YY_CURRENT_BUFFER )
03015                 yy_load_buffer_state( );
03016 }
03017 
03018 /** Pushes the new state onto the stack. The new state becomes
03019  *  the current state. This function will allocate the stack
03020  *  if necessary.
03021  *  @param new_buffer The new state.
03022  *  
03023  */
03024 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
03025 {
03026         if (new_buffer == NULL)
03027                 return;
03028 
03029         yyensure_buffer_stack();
03030 
03031         /* This block is copied from yy_switch_to_buffer. */
03032         if ( YY_CURRENT_BUFFER )
03033                 {
03034                 /* Flush out information for old buffer. */
03035                 *(yy_c_buf_p) = (yy_hold_char);
03036                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
03037                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
03038                 }
03039 
03040         /* Only push if top exists. Otherwise, replace top. */
03041         if (YY_CURRENT_BUFFER)
03042                 (yy_buffer_stack_top)++;
03043         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03044 
03045         /* copied from yy_switch_to_buffer. */
03046         yy_load_buffer_state( );
03047         (yy_did_buffer_switch_on_eof) = 1;
03048 }
03049 
03050 /** Removes and deletes the top of the stack, if present.
03051  *  The next element becomes the new top.
03052  *  
03053  */
03054 void yypop_buffer_state (void)
03055 {
03056         if (!YY_CURRENT_BUFFER)
03057                 return;
03058 
03059         yy_delete_buffer(YY_CURRENT_BUFFER );
03060         YY_CURRENT_BUFFER_LVALUE = NULL;
03061         if ((yy_buffer_stack_top) > 0)
03062                 --(yy_buffer_stack_top);
03063 
03064         if (YY_CURRENT_BUFFER) {
03065                 yy_load_buffer_state( );
03066                 (yy_did_buffer_switch_on_eof) = 1;
03067         }
03068 }
03069 
03070 /* Allocates the stack if it does not exist.
03071  *  Guarantees space for at least one push.
03072  */
03073 static void yyensure_buffer_stack (void)
03074 {
03075         int num_to_alloc;
03076     
03077         if (!(yy_buffer_stack)) {
03078 
03079                 /* First allocation is just for 2 elements, since we don't know if this
03080                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
03081                  * immediate realloc on the next call.
03082          */
03083                 num_to_alloc = 1;
03084                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
03085                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
03086                                                                 );
03087                 
03088                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
03089                                 
03090                 (yy_buffer_stack_max) = num_to_alloc;
03091                 (yy_buffer_stack_top) = 0;
03092                 return;
03093         }
03094 
03095         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
03096 
03097                 /* Increase the buffer to prepare for a possible push. */
03098                 int grow_size = 8 /* arbitrary grow size */;
03099 
03100                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
03101                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
03102                                                                 ((yy_buffer_stack),
03103                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
03104                                                                 );
03105 
03106                 /* zero only the new slots.*/
03107                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
03108                 (yy_buffer_stack_max) = num_to_alloc;
03109         }
03110 }
03111 
03112 #ifndef YY_EXIT_FAILURE
03113 #define YY_EXIT_FAILURE 2
03114 #endif
03115 
03116 static void yy_fatal_error (yyconst char* msg )
03117 {
03118         /* (void) fprintf( stderr, "%s\n", msg ); */
03119         (void)msg;
03120         exit( YY_EXIT_FAILURE );
03121 }
03122 
03123 /* Redefine yyless() so it works in section 3 code. */
03124 
03125 #undef yyless
03126 #define yyless(n) \
03127         do \
03128                 { \
03129                 /* Undo effects of setting up yytext. */ \
03130         int yyless_macro_arg = (n); \
03131         YY_LESS_LINENO(yyless_macro_arg);\
03132                 yytext[yyleng] = (yy_hold_char); \
03133                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
03134                 (yy_hold_char) = *(yy_c_buf_p); \
03135                 *(yy_c_buf_p) = '\0'; \
03136                 yyleng = yyless_macro_arg; \
03137                 } \
03138         while ( 0 )
03139 
03140 /* Accessor  methods (get/set functions) to struct members. */
03141 
03142 /** Get the current line number.
03143  * 
03144  */
03145 int yyget_lineno  (void)
03146 {
03147         
03148     return yylineno;
03149 }
03150 
03151 /** Get the input stream.
03152  * 
03153  */
03154 FILE *yyget_in  (void)
03155 {
03156         return yyin;
03157 }
03158 
03159 /** Get the output stream.
03160  * 
03161  */
03162 FILE *yyget_out  (void)
03163 {
03164         return yyout;
03165 }
03166 
03167 /** Get the length of the current token.
03168  * 
03169  */
03170 int yyget_leng  (void)
03171 {
03172         return yyleng;
03173 }
03174 
03175 /** Get the current token.
03176  * 
03177  */
03178 
03179 char *yyget_text  (void)
03180 {
03181         return yytext;
03182 }
03183 
03184 /** Set the current line number.
03185  * @param line_number
03186  * 
03187  */
03188 void yyset_lineno (int  line_number )
03189 {
03190     
03191     yylineno = line_number;
03192 }
03193 
03194 /** Set the input stream. This does not discard the current
03195  * input buffer.
03196  * @param in_str A readable stream.
03197  * 
03198  * @see yy_switch_to_buffer
03199  */
03200 void yyset_in (FILE *  in_str )
03201 {
03202         yyin = in_str ;
03203 }
03204 
03205 void yyset_out (FILE *  out_str )
03206 {
03207         yyout = out_str ;
03208 }
03209 
03210 int yyget_debug  (void)
03211 {
03212         return yy_flex_debug;
03213 }
03214 
03215 void yyset_debug (int  bdebug )
03216 {
03217         yy_flex_debug = bdebug ;
03218 }
03219 
03220 static int yy_init_globals (void)
03221 {
03222         /* Initialization is the same as for the non-reentrant scanner.
03223      * This function is called from yylex_destroy(), so don't allocate here.
03224      */
03225 
03226     (yy_buffer_stack) = 0;
03227     (yy_buffer_stack_top) = 0;
03228     (yy_buffer_stack_max) = 0;
03229     (yy_c_buf_p) = (char *) 0;
03230     (yy_init) = 0;
03231     (yy_start) = 0;
03232 
03233 /* Defined in main.c */
03234 #ifdef YY_STDINIT
03235     yyin = stdin;
03236     yyout = stdout;
03237 #else
03238     yyin = (FILE *) 0;
03239     yyout = (FILE *) 0;
03240 #endif
03241 
03242     /* For future reference: Set errno on error, since we are called by
03243      * yylex_init()
03244      */
03245     return 0;
03246 }
03247 
03248 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
03249 int yylex_destroy  (void)
03250 {
03251     
03252     /* Pop the buffer stack, destroying each element. */
03253         while(YY_CURRENT_BUFFER){
03254                 yy_delete_buffer(YY_CURRENT_BUFFER  );
03255                 YY_CURRENT_BUFFER_LVALUE = NULL;
03256                 yypop_buffer_state();
03257         }
03258 
03259         /* Destroy the stack itself. */
03260         yyfree((yy_buffer_stack) );
03261         (yy_buffer_stack) = NULL;
03262 
03263     /* Reset the globals. This is important in a non-reentrant scanner so the next time
03264      * yylex() is called, initialization will occur. */
03265     yy_init_globals( );
03266 
03267     return 0;
03268 }
03269 
03270 /*
03271  * Internal utility routines.
03272  */
03273 
03274 #ifndef yytext_ptr
03275 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
03276 {
03277         register int i;
03278         for ( i = 0; i < n; ++i )
03279                 s1[i] = s2[i];
03280 }
03281 #endif
03282 
03283 #ifdef YY_NEED_STRLEN
03284 static int yy_flex_strlen (yyconst char * s )
03285 {
03286         register int n;
03287         for ( n = 0; s[n]; ++n )
03288                 ;
03289 
03290         return n;
03291 }
03292 #endif
03293 
03294 void *yyalloc (yy_size_t  size )
03295 {
03296         return (void *) malloc( size );
03297 }
03298 
03299 void *yyrealloc  (void * ptr, yy_size_t  size )
03300 {
03301         /* The cast to (char *) in the following accommodates both
03302          * implementations that use char* generic pointers, and those
03303          * that use void* generic pointers.  It works with the latter
03304          * because both ANSI C and C++ allow castless assignment from
03305          * any pointer type to void*, and deal with argument conversions
03306          * as though doing an assignment.
03307          */
03308         return (void *) realloc( (char *) ptr, size );
03309 }
03310 
03311 void yyfree (void * ptr )
03312 {
03313         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
03314 }
03315 
03316 #define YYTABLES_NAME "yytables"
03317 
03318 /* vim: set ft=lex : */
03319 

Generated on Mon Feb 12 18:22:32 2007 for lestes by doxygen 1.5.1-20070107