/home/coin/SVN-release/OS-2.0.0/OS/src/OSParsers/OSParseosol.cpp

Go to the documentation of this file.
00001 #line 2 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.cpp"
00002 
00003 #line 4 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 35
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 
00058 /* Limits of integral types. */
00059 #ifndef INT8_MIN
00060 #define INT8_MIN               (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN              (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN              (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX               (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX              (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX              (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX              (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX             (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX             (4294967295U)
00085 #endif
00086 
00087 #endif /* ! C99 */
00088 
00089 #endif /* ! FLEXINT_H */
00090 
00091 #ifdef __cplusplus
00092 
00093 /* The "const" storage-class-modifier is valid. */
00094 #define YY_USE_CONST
00095 
00096 #else   /* ! __cplusplus */
00097 
00098 /* C99 requires __STDC__ to be defined as 1. */
00099 #if defined (__STDC__)
00100 
00101 #define YY_USE_CONST
00102 
00103 #endif  /* defined (__STDC__) */
00104 #endif  /* ! __cplusplus */
00105 
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111 
00112 /* Returned upon end-of-file. */
00113 #define YY_NULL 0
00114 
00115 /* Promotes a possibly negative, possibly signed char to an unsigned
00116  * integer for use as an array index.  If the signed char is negative,
00117  * we want to instead treat it as an 8-bit unsigned char, hence the
00118  * double cast.
00119  */
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121 
00122 /* An opaque pointer. */
00123 #ifndef YY_TYPEDEF_YY_SCANNER_T
00124 #define YY_TYPEDEF_YY_SCANNER_T
00125 typedef void* yyscan_t;
00126 #endif
00127 
00128 /* For convenience, these vars (plus the bison vars far below)
00129    are macros in the reentrant scanner. */
00130 #define yyin yyg->yyin_r
00131 #define yyout yyg->yyout_r
00132 #define yyextra yyg->yyextra_r
00133 #define yyleng yyg->yyleng_r
00134 #define yytext yyg->yytext_r
00135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00137 #define yy_flex_debug yyg->yy_flex_debug_r
00138 
00139 /* Enter a start condition.  This macro really ought to take a parameter,
00140  * but we do it the disgusting crufty way forced on us by the ()-less
00141  * definition of BEGIN.
00142  */
00143 #define BEGIN yyg->yy_start = 1 + 2 *
00144 
00145 /* Translate the current start state into a value that can be later handed
00146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00147  * compatibility.
00148  */
00149 #define YY_START ((yyg->yy_start - 1) / 2)
00150 #define YYSTATE YY_START
00151 
00152 /* Action number for EOF rule of a given start state. */
00153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00154 
00155 /* Special action meaning "start processing a new file". */
00156 #define YY_NEW_FILE osolrestart(yyin ,yyscanner )
00157 
00158 #define YY_END_OF_BUFFER_CHAR 0
00159 
00160 /* Size of default input buffer. */
00161 #ifndef YY_BUF_SIZE
00162 #ifdef __ia64__
00163 /* On IA-64, the buffer size is 16k, not 8k.
00164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
00165  * Ditto for the __ia64__ case accordingly.
00166  */
00167 #define YY_BUF_SIZE 32768
00168 #else
00169 #define YY_BUF_SIZE 16384
00170 #endif /* __ia64__ */
00171 #endif
00172 
00173 /* The state buf must be large enough to hold one state per character in the main buffer.
00174  */
00175 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00176 
00177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00178 #define YY_TYPEDEF_YY_BUFFER_STATE
00179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00180 #endif
00181 
00182 #define EOB_ACT_CONTINUE_SCAN 0
00183 #define EOB_ACT_END_OF_FILE 1
00184 #define EOB_ACT_LAST_MATCH 2
00185 
00186     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00187      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00188      *       existing scanners that call yyless() from OUTSIDE osollex. 
00189      *       One obvious solution it to make yy_act a global. I tried that, and saw
00190      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00191      *       normally declared as a register variable-- so it is not worth it.
00192      */
00193     #define  YY_LESS_LINENO(n) \
00194             do { \
00195                 int yyl;\
00196                 for ( yyl = n; yyl < yyleng; ++yyl )\
00197                     if ( yytext[yyl] == '\n' )\
00198                         --yylineno;\
00199             }while(0)
00200     
00201 /* Return all but the first "n" matched characters back to the input stream. */
00202 #define yyless(n) \
00203         do \
00204                 { \
00205                 /* Undo effects of setting up yytext. */ \
00206         int yyless_macro_arg = (n); \
00207         YY_LESS_LINENO(yyless_macro_arg);\
00208                 *yy_cp = yyg->yy_hold_char; \
00209                 YY_RESTORE_YY_MORE_OFFSET \
00210                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00211                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00212                 } \
00213         while ( 0 )
00214 
00215 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00216 
00217 #ifndef YY_TYPEDEF_YY_SIZE_T
00218 #define YY_TYPEDEF_YY_SIZE_T
00219 typedef size_t yy_size_t;
00220 #endif
00221 
00222 #ifndef YY_STRUCT_YY_BUFFER_STATE
00223 #define YY_STRUCT_YY_BUFFER_STATE
00224 struct yy_buffer_state
00225         {
00226         FILE *yy_input_file;
00227 
00228         char *yy_ch_buf;                /* input buffer */
00229         char *yy_buf_pos;               /* current position in input buffer */
00230 
00231         /* Size of input buffer in bytes, not including room for EOB
00232          * characters.
00233          */
00234         yy_size_t yy_buf_size;
00235 
00236         /* Number of characters read into yy_ch_buf, not including EOB
00237          * characters.
00238          */
00239         int yy_n_chars;
00240 
00241         /* Whether we "own" the buffer - i.e., we know we created it,
00242          * and can realloc() it to grow it, and should free() it to
00243          * delete it.
00244          */
00245         int yy_is_our_buffer;
00246 
00247         /* Whether this is an "interactive" input source; if so, and
00248          * if we're using stdio for input, then we want to use getc()
00249          * instead of fread(), to make sure we stop fetching input after
00250          * each newline.
00251          */
00252         int yy_is_interactive;
00253 
00254         /* Whether we're considered to be at the beginning of a line.
00255          * If so, '^' rules will be active on the next match, otherwise
00256          * not.
00257          */
00258         int yy_at_bol;
00259 
00260     int yy_bs_lineno; 
00261     int yy_bs_column; 
00263         /* Whether to try to fill the input buffer when we reach the
00264          * end of it.
00265          */
00266         int yy_fill_buffer;
00267 
00268         int yy_buffer_status;
00269 
00270 #define YY_BUFFER_NEW 0
00271 #define YY_BUFFER_NORMAL 1
00272         /* When an EOF's been seen but there's still some text to process
00273          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00274          * shouldn't try reading from the input source any more.  We might
00275          * still have a bunch of tokens to match, though, because of
00276          * possible backing-up.
00277          *
00278          * When we actually see the EOF, we change the status to "new"
00279          * (via osolrestart()), so that the user can continue scanning by
00280          * just pointing yyin at a new input file.
00281          */
00282 #define YY_BUFFER_EOF_PENDING 2
00283 
00284         };
00285 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00286 
00287 /* We provide macros for accessing buffer states in case in the
00288  * future we want to put the buffer states in a more general
00289  * "scanner state".
00290  *
00291  * Returns the top of the stack, or NULL.
00292  */
00293 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00294                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00295                           : NULL)
00296 
00297 /* Same as previous macro, but useful when we know that the buffer stack is not
00298  * NULL or when we need an lvalue. For internal use only.
00299  */
00300 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00301 
00302 void osolrestart (FILE *input_file ,yyscan_t yyscanner );
00303 void osol_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00304 YY_BUFFER_STATE osol_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00305 void osol_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00306 void osol_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00307 void osolpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00308 void osolpop_buffer_state (yyscan_t yyscanner );
00309 
00310 static void osolensure_buffer_stack (yyscan_t yyscanner );
00311 static void osol_load_buffer_state (yyscan_t yyscanner );
00312 static void osol_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00313 
00314 #define YY_FLUSH_BUFFER osol_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00315 
00316 YY_BUFFER_STATE osol_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00317 YY_BUFFER_STATE osol_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00318 YY_BUFFER_STATE osol_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00319 
00320 void *osolalloc (yy_size_t ,yyscan_t yyscanner );
00321 void *osolrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00322 void osolfree (void * ,yyscan_t yyscanner );
00323 
00324 #define yy_new_buffer osol_create_buffer
00325 
00326 #define yy_set_interactive(is_interactive) \
00327         { \
00328         if ( ! YY_CURRENT_BUFFER ){ \
00329         osolensure_buffer_stack (yyscanner); \
00330                 YY_CURRENT_BUFFER_LVALUE =    \
00331             osol_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00332         } \
00333         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00334         }
00335 
00336 #define yy_set_bol(at_bol) \
00337         { \
00338         if ( ! YY_CURRENT_BUFFER ){\
00339         osolensure_buffer_stack (yyscanner); \
00340                 YY_CURRENT_BUFFER_LVALUE =    \
00341             osol_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00342         } \
00343         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00344         }
00345 
00346 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00347 
00348 /* Begin user sect3 */
00349 
00350 #define osolwrap(n) 1
00351 #define YY_SKIP_YYWRAP
00352 
00353 typedef unsigned char YY_CHAR;
00354 
00355 typedef int yy_state_type;
00356 
00357 #define yytext_ptr yytext_r
00358 
00359 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00360 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
00361 static int yy_get_next_buffer (yyscan_t yyscanner );
00362 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00363 
00364 /* Done after the current pattern has been matched and before the
00365  * corresponding action - sets up yytext.
00366  */
00367 #define YY_DO_BEFORE_ACTION \
00368         yyg->yytext_ptr = yy_bp; \
00369         yyleng = (size_t) (yy_cp - yy_bp); \
00370         yyg->yy_hold_char = *yy_cp; \
00371         *yy_cp = '\0'; \
00372         yyg->yy_c_buf_p = yy_cp;
00373 
00374 #define YY_NUM_RULES 189
00375 #define YY_END_OF_BUFFER 190
00376 /* This struct is not used in this scanner,
00377    but its presence is necessary. */
00378 struct yy_trans_info
00379         {
00380         flex_int32_t yy_verify;
00381         flex_int32_t yy_nxt;
00382         };
00383 static yyconst flex_int16_t yy_accept[1668] =
00384     {   0,
00385         1,    1,  187,  187,  185,  185,  186,  186,    0,    0,
00386         0,    0,    0,    0,    0,    0,  190,  188,    1,    1,
00387         2,  176,    2,  176,    6,  176,    5,  188,    4,  176,
00388         2,  187,  189,  185,  186,  178,  179,  178,  182,  183,
00389       182,    1,  176,  176,  176,    5,    0,    4,  176,  176,
00390       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
00391         3,    6,    5,  176,    6,  176,    7,    5,    0,    0,
00392       181,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00393         0,    0,    0,    0,    0,    0,    4,  176,  187,  185,
00394       186,    0,  184,  176,  176,  176,  176,  176,  176,  176,
00395 
00396       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
00397         0,  176,    6,    0,    0,    0,    0,    0,    0,    0,
00398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00401         0,    0,    0,    6,  180,  176,  176,  176,  176,  176,
00402       176,  176,  176,  176,  176,  176,  176,  176,  176,    0,
00403       176,  176,  176,  176,  176,  176,    6,  177,    0,    0,
00404         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00406 
00407         0,    0,  168,    0,    0,    0,    0,    0,    0,    0,
00408         0,   68,    0,    0,    0,  160,    0,    0,    0,    0,
00409         0,    0,    0,    0,    0,    0,  152,    0,    0,    0,
00410       154,  176,  176,  176,  176,  176,   24,  176,  176,  176,
00411       176,  176,  176,  176,  176,    0,   41,   42,  176,  176,
00412       176,  176,  176,  176,    0,    0,    0,    0,    0,    0,
00413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00417 
00418         0,    0,    0,    0,    0,  114,    0,    0,    0,    0,
00419         0,    0,  104,    0,    0,  176,  176,  176,    0,  176,
00420        24,  176,  176,  176,  176,  176,    0,  176,  176,  176,
00421       176,  176,    0,  176,  176,  176,    0,  176,    0,  169,
00422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00423         0,   69,    0,    0,    0,    0,    0,    0,    0,  161,
00424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00425         0,    0,  153,    0,    0,    0,    0,    0,  155,    0,
00426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00427        80,    0,    0,    0,    0,    0,    0,    0,   60,   59,
00428 
00429        94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00430         0,    0,    0,  176,  176,    0,   39,   40,  176,  176,
00431       176,  176,  176,    0,   31,   32,  176,  176,  176,  176,
00432         0,   49,   50,  176,  176,    0,   37,   38,  176,    0,
00433       169,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00434         0,   69,    0,    0,    0,    0,    0,    0,  161,    0,
00435         0,    0,   61,    0,    0,    0,    0,  115,    0,    0,
00436         0,    0,    0,    0,  153,    0,    0,    0,  105,    0,
00437       155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00439 
00440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00441        64,    0,    0,  176,  176,  176,  176,  176,  176,  176,
00442       176,  176,    0,  176,   25,  176,  176,  176,    0,   33,
00443        34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00444         0,    0,    0,   81,    0,    0,    0,    0,    0,    0,
00445         0,   61,    0,   95,    0,    0,    0,  115,    0,    0,
00446         0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
00447        90,    0,    0,    0,   62,    0,    0,    0,    0,    0,
00448        84,  106,    0,    0,    0,    0,    0,    0,    0,    0,
00449         0,    0,    0,  138,    0,    0,   66,    0,    0,    0,
00450 
00451         0,    0,  176,  176,  176,  176,  176,    0,  176,  176,
00452       176,    0,   45,   46,   25,  176,  176,  176,    0,    0,
00453         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00454        81,    0,    0,    0,    0,    0,    0,    0,    0,   95,
00455         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00456         0,    0,    0,   65,    0,    0,    0,    0,    0,    0,
00457         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00458         0,    0,    0,    0,    0,    0,    0,    0,    0,   88,
00459       126,    0,    0,    0,    0,    0,    0,    0,    0,   86,
00460         0,  176,    0,  176,  176,  176,    0,   51,   52,  176,
00461 
00462       176,    0,  176,  176,  176,  176,  176,  176,  176,  176,
00463         0,   53,   54,    0,    0,   91,    0,    0,    0,    0,
00464         0,   63,    0,    0,    0,    0,    0,    0,    0,    0,
00465         0,    0,   85,    0,  107,    0,    0,    0,    0,    0,
00466         0,    0,    0,    0,    0,    0,    0,  139,    0,    0,
00467         0,    0,   67,    0,    0,    0,    0,    0,   65,    0,
00468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00469         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00470         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00471         0,    0,    0,    0,  140,    0,   47,   48,  176,  176,
00472 
00473       176,  176,    0,   43,   44,  176,  176,  176,  176,  176,
00474       176,  176,  176,  176,  176,  176,    0,   91,    0,    0,
00475         0,    0,   63,    0,    0,    0,    0,    0,    0,    0,
00476         0,    0,    0,   85,  107,    0,    0,    0,    0,    0,
00477         0,    0,    0,    0,    0,   89,    0,  127,  139,    0,
00478         0,    0,    0,   67,    0,    0,    0,    0,    0,    0,
00479        87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00481         0,  156,    0,    0,    0,    0,    0,    0,    0,    0,
00482         0,   72,    0,    0,    0,  176,  176,  176,  176,  176,
00483 
00484       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
00485         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00486         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00487         0,    0,    0,    0,   89,  127,    0,    0,    0,    0,
00488         0,    0,    0,    0,    0,   87,    0,  141,  164,    0,
00489         0,    0,  120,    0,    0,    0,    0,    0,    0,    0,
00490         0,    0,    0,    0,  100,    0,    0,    0,    0,    0,
00491         0,    0,    0,    0,    0,   74,    0,    0,    0,  176,
00492         0,  176,   26,  176,    0,  176,  176,   22,  176,  176,
00493       176,   20,  176,  176,  176,  176,  176,   18,  176,  176,
00494 
00495        17,  176,  176,  176,    0,    0,    0,    0,    0,    0,
00496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00497         0,    0,    0,    0,    0,  157,    0,    0,    0,    0,
00498         0,    0,    0,    0,    0,    0,   73,    0,    0,    0,
00499       141,  110,    0,    0,    0,    0,    0,    0,    0,    0,
00500         0,    0,   76,    0,  102,   96,    0,   70,   92,    0,
00501         0,    0,    0,    0,    0,  174,    0,    0,    0,   35,
00502        36,   26,    0,   55,   56,  176,    0,   22,  176,  176,
00503        20,  176,  176,  176,  176,  176,   18,  176,   17,  176,
00504       176,    0,   57,   58,    0,  165,    0,    0,    0,    0,
00505 
00506       121,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00507         0,    0,    0,  101,    0,    0,  157,    0,    0,    0,
00508         0,    0,    0,    0,    0,    0,   75,   73,    0,    0,
00509         0,    0,  134,    0,    0,    0,    0,    0,    0,    0,
00510         0,    0,   98,    0,    0,    0,    0,    0,  116,  172,
00511         0,    0,    0,   27,   28,  176,  176,  176,  176,  176,
00512       176,  176,  176,   10,  176,  176,  176,  176,    0,  165,
00513         0,  111,    0,    0,  121,    0,    0,    0,    0,    0,
00514         0,    0,    0,    0,   77,    0,    0,  103,  101,    0,
00515        97,    0,    0,   71,    0,   93,    0,    0,    0,    0,
00516 
00517         0,    0,   75,    0,  175,    0,    0,    0,    0,    0,
00518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00519         0,    0,    0,    0,   82,    0,  176,  176,    9,  176,
00520       176,  176,  176,  176,  176,   10,  176,  176,  176,    0,
00521        29,   30,  111,    0,    0,    0,  135,    0,    0,    0,
00522         0,    0,    0,    0,    0,   77,    0,  103,   97,    0,
00523        99,   71,   93,    0,    0,    0,    0,    0,    0,  117,
00524       175,    0,  173,    0,    0,    0,    0,    0,    0,    0,
00525         0,    0,    0,    0,    0,    0,    0,    0,  136,    0,
00526         0,    0,  176,    9,  176,  176,  176,  176,  176,  176,
00527 
00528       176,  176,  176,    0,    0,  135,    0,    0,    0,    0,
00529         0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
00530         0,  117,  173,    0,   83,    0,    0,    0,    0,    0,
00531         0,    0,    0,    0,  124,   78,    0,    0,    0,    0,
00532         0,    0,  176,  176,  176,  176,  176,  176,  176,  176,
00533       176,  176,    0,    0,    0,    0,    0,    0,    0,    0,
00534         0,    0,    0,    0,    0,    0,  137,    0,    0,   83,
00535         0,    0,  118,    0,    0,  170,    0,    0,    0,    0,
00536         0,    0,  130,    0,    0,    0,  176,  176,  176,  176,
00537       176,  176,  176,   11,  176,   12,  176,  176,   13,    0,
00538 
00539         0,    0,    0,    0,    0,    0,    0,    0,    0,  125,
00540         0,   79,    0,    0,    0,  137,    0,    0,    0,    0,
00541       146,    0,    0,    0,    0,    0,    0,    0,  108,    0,
00542         0,  176,  176,   14,  176,  176,  176,  176,   11,   12,
00543       176,   13,    0,    0,  119,    0,    0,    0,  171,    0,
00544         0,    0,    0,  125,   79,    0,    0,    0,  131,    0,
00545         0,    0,  132,    0,    0,    0,    0,    0,    0,    0,
00546       112,    0,  176,   15,   14,  176,  176,  176,  176,  176,
00547         0,  119,    0,  147,    0,  171,    0,    0,    0,    0,
00548         0,    0,  131,    0,  109,    0,    0,    0,    0,    0,
00549 
00550         0,    0,    0,    0,    0,   15,  176,  176,  176,    8,
00551       176,  176,    0,  133,  147,    0,    0,    0,    0,    0,
00552         0,    0,  109,    0,  113,    0,    0,    0,    0,  142,
00553         0,    0,    0,    0,  176,  176,    8,  176,  176,   23,
00554       133,    0,    0,    0,    0,    0,    0,    0,  113,    0,
00555         0,  162,  158,    0,  122,    0,    0,    0,  176,  176,
00556       176,   23,    0,    0,    0,    0,  143,    0,    0,    0,
00557         0,    0,  166,    0,    0,  128,    0,  176,  176,  176,
00558         0,    0,  163,    0,  159,  143,    0,    0,  123,    0,
00559         0,    0,    0,    0,    0,  176,  176,  176,    0,  167,
00560 
00561       163,  159,    0,  123,    0,    0,  129,    0,    0,    0,
00562         0,  176,  176,  176,  167,    0,    0,  129,    0,    0,
00563         0,    0,  176,  176,  176,    0,    0,    0,  144,    0,
00564       150,  176,  176,  176,    0,    0,    0,    0,  176,  176,
00565       176,   16,    0,  145,    0,    0,  151,    0,  176,  176,
00566        19,   16,  145,    0,  151,    0,  176,   21,   19,    0,
00567       148,   21,    0,    0,  149,  149,    0
00568     } ;
00569 
00570 static yyconst flex_int32_t yy_ec[256] =
00571     {   0,
00572         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00573         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00574         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00575         1,    4,    5,    6,    7,    7,    1,    1,    8,    1,
00576         1,    7,    9,    1,   10,   11,   12,   13,   13,   13,
00577        13,   13,   13,   13,   13,   13,   13,    7,    1,   14,
00578        15,   16,   17,    7,    7,   18,   19,   20,   21,   22,
00579         7,    7,   23,   24,   25,   26,   27,   28,   29,   30,
00580         7,   31,   32,   33,   34,   35,   36,    7,    7,    7,
00581         1,    7,    1,    1,    7,    1,   37,   38,   39,   40,
00582 
00583        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
00584        51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
00585        61,   62,    1,   63,    1,    1,    1,    1,    1,    1,
00586         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00587         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00588         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00589         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00590         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00591         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00592         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00593 
00594         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00595         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00596         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00597         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00598         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00599         1,    1,    1,    1,    1
00600     } ;
00601 
00602 static yyconst flex_int32_t yy_meta[64] =
00603     {   0,
00604         1,    2,    2,    2,    1,    3,    2,    4,    1,    2,
00605         2,    2,    2,    2,    1,    5,    1,    2,    2,    2,
00606         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00607         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00608         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00609         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00610         2,    2,    1
00611     } ;
00612 
00613 static yyconst flex_int16_t yy_base[1679] =
00614     {   0,
00615         0,   63, 3464, 3463, 3472, 3471, 3468, 3467,    0,    0,
00616         0,    0,   15,   16,    4,   17, 3474, 3481,  125,  182,
00617      3467,    8, 3464,   16,   29,   17,   79,  236,   33,   24,
00618      3481,    0, 3481,    0,    0, 3481, 3481, 3461, 3481, 3481,
00619      3454,    0,   30,   35,   39,   85,   42,   54,   80,   89,
00620        88,   92,   93,   46,   97,  134,   96,  100,  105,  108,
00621      3481,  187,  202,  144,  231,  143, 3481,  174, 3459,  256,
00622      3481, 3417,   91, 3422, 3425, 3415, 3413, 3418,   78,  155,
00623       112, 3421,  128, 3400, 3405, 3422,  231,  235,    0,    0,
00624         0, 3442, 3481,  203,  242,  249,  252,  246,  301,  302,
00625 
00626       306,  309,  310,  313,  328,  183,  257,  319,  324,  331,
00627      3444,  335,  349, 3446, 3404,   99, 3409, 3412, 3402, 3400,
00628      3405,  205,  318,  172, 3408,  213, 3387, 3392, 3409, 3395,
00629      3392, 3389, 3394, 3391,  326, 3402, 3400, 3378, 3387, 3390,
00630      3379, 3383, 3389, 3376,  107, 3380, 3377, 3375,    6, 3373,
00631      3375, 3385, 3371,  253, 3481,  336,  341,  350,  369,  386,
00632       370,  377,  378,  381,  382,  390,  389,  393,  415,  430,
00633       394,  421,  397,  426,  425,  429, 3411, 3481, 3373, 3370,
00634      3367, 3372, 3369,  401, 3380, 3378, 3356, 3365, 3368, 3357,
00635      3361, 3367, 3354,  365, 3358, 3355, 3353,   70, 3351, 3353,
00636 
00637      3363, 3349,  369, 3361, 3360, 3359, 3358, 3342, 3340, 3340,
00638      3354, 3371, 3352, 3359,  431, 3350, 3345, 3341, 3347, 3335,
00639      3331, 3341, 3345, 3326, 3324, 3323, 3345, 3323, 3337, 3323,
00640      3331,  445,  450,  468,  451,  475,  471,  471,  478,  479,
00641       482,  503,  483,  486,  496,  526, 3481, 3481,  495,  537,
00642       500,  499,  540,  507,  555, 3334, 3333, 3332, 3331, 3315,
00643      3313, 3313, 3327,  558, 3326, 3333,  449,  561, 3320, 3316,
00644      3322, 3310, 3306, 3316, 3320, 3301, 3299, 3298,  564, 3299,
00645      3313, 3299,  580, 3296, 3314, 3300, 3310, 3293, 3293, 3301,
00646      3289, 3307, 3300, 3322, 3291, 3295, 3309, 3293, 3296, 3297,
00647 
00648      3286,  584, 3280, 3276, 3273, 3301, 3289,  331, 3284, 3287,
00649      3290, 3285, 3481, 3297, 3287,  556,  559,  612,  587,  562,
00650       615,  587,  592,  578,  606,  627,  630,  623,  630,  631,
00651       517,  648,  652,  645,  651,  666,  670,  683,  686,  692,
00652      3267, 3285, 3271, 3281, 3264, 3264, 3272, 3260, 3278, 3271,
00653       701,  707, 3293, 3262, 3266, 3280, 3264, 3267,  710,  716,
00654      3268, 3257,  719, 3251, 3247, 3244,  725, 3261,  407, 3256,
00655      3259,  728,  734, 3262, 3257,  743, 3269,  746,  749, 3259,
00656      3241, 3255, 3253, 3236, 3258, 3253, 3252,  500, 3238, 3246,
00657      3481, 3231, 3236, 3250, 3228, 3233, 3225, 3235,  754, 3481,
00658 
00659      3250, 3222, 3226, 3239, 3220, 3219, 3219, 3233, 3217, 3216,
00660      3220, 3231, 3229,  726,  747,  763, 3481, 3481,  759,  758,
00661       762,  763,  767,  782, 3481, 3481,  773,  792,  807,  799,
00662       822, 3481, 3481,  802,  813,  830, 3481, 3481,  837,  840,
00663       853, 3212, 3226, 3224, 3207, 3229, 3224, 3223,  825, 3209,
00664      3217,  856,  859, 3202, 3207, 3221, 3199, 3204,  862, 3196,
00665      3206,  865,  868,  874, 3194, 3198,  880,  883, 3211, 3192,
00666      3191, 3191, 3205, 3189,  889, 3188, 3192,  895,  898, 3203,
00667       902, 3201, 3201, 3181, 3195, 3184, 3183, 3185, 3184, 3186,
00668      3185, 3190, 3174, 3186, 3185,  517, 3178, 3173, 3178, 3160,
00669 
00670      3169,  887, 3166, 3174, 3163, 3161, 3175, 3174,  576, 3169,
00671      3481, 3164, 3164,  894,  898,  899,  902,  917,  908,  909,
00672       914,  932,  957,  964,  938,  929,  913,  970,  985, 3481,
00673      3481, 3174, 3154, 3168, 3157, 3156, 3158, 3157, 3159, 3158,
00674      3163, 3147,  992,  949, 3159, 3158,  643, 3151, 3146, 3151,
00675      3133,  973,  995,  998, 3142,  942, 3139, 1001, 3147, 3136,
00676      3134, 3148, 3147,  650, 3142, 1010, 1013, 3137, 3137, 3139,
00677      3481, 3133, 3128,  209, 3481, 1000, 3127, 3132, 3138, 3143,
00678      3481, 3481, 3120, 3124, 3143, 3120, 3115, 3135, 3115, 3125,
00679      3124, 3128, 3113, 3125, 3124, 3124,   57, 3111, 3111, 3124,
00680 
00681      3119, 3118, 1028,  976,  993, 1008, 1035, 1051, 1031, 1058,
00682      1051, 1085, 3481, 3481, 1074, 1052, 1055, 1095, 1098, 3113,
00683      1110, 3107, 3102,  250, 1113, 1101, 3101, 3106, 3112, 3117,
00684      1092, 1121, 1129, 3094, 3098, 3117, 3094, 3089, 3109, 1136,
00685      3089, 3099, 3098, 3102, 3087, 1139, 3099, 3099, 1144, 3086,
00686      3086, 3099, 1147, 1150, 3094, 3093, 3083, 3093, 3086, 3089,
00687      3092, 3091, 3076, 3069, 3087, 3087, 3082, 3081,  943, 3084,
00688      3071, 3078, 3066, 3056, 3075, 3059, 3069, 3059, 3064, 3481,
00689      3481, 3056, 3070, 1003, 3072, 3077, 3051, 3083, 3067, 3481,
00690      3049, 1154, 1171, 1076, 1091, 1145, 1179, 3481, 3481, 1148,
00691 
00692      1189, 1192, 1170, 1174, 1151, 1183, 1194, 1197, 1198, 1201,
00693      1224, 3481, 3481, 3053, 1236, 1239, 3063, 3056, 3059, 3062,
00694      1244, 1247, 3061, 3046, 3039, 3057, 3057, 3052, 3051, 1020,
00695      3054, 1251, 1259, 1262, 1266, 3041, 3048, 3036, 3026, 3045,
00696      3029, 3039, 3029, 3034, 1269, 1272, 1277, 1280, 3026, 3040,
00697      1062, 1287, 1292, 3042, 3047, 3021, 3053, 3037, 1295, 1298,
00698      3019, 3017, 3027, 3030, 3022, 3022, 3013, 3017, 3029, 3019,
00699      3010, 3024, 3007, 3010, 3023, 3005, 3020, 3016, 3019, 3023,
00700      2999, 3008, 3001, 3010, 3009, 3016, 3016, 3002, 3001, 2996,
00701      3021, 2998, 2992, 2993, 3481, 1302, 3481, 3481, 1293, 1297,
00702 
00703      1301, 1302, 1317, 3481, 3481, 1308, 1219, 1313, 1312, 1316,
00704      1208, 1317, 1320, 1202, 1321, 1324, 2984, 1342, 2994, 2997,
00705      2989, 2989, 1348, 2980, 2984, 2996, 2986, 2977, 2991, 2974,
00706      2977, 2990, 2972, 1358, 1367, 2987, 2983, 2986, 2990, 2966,
00707      2975, 2968, 2977, 2976, 1371, 1374, 1377, 1381, 1386, 2983,
00708      2983, 2969, 2968, 1392, 2963, 2988, 2965, 2959, 2960, 1395,
00709      1398, 1401, 2952, 2965, 2950, 2963, 2962, 2957, 2946, 2952,
00710      2957, 2947, 2928, 2950, 2906, 2895, 2897, 2900, 2848, 2848,
00711      2837, 3481, 2830, 2829, 2839, 2810, 2807, 2795, 2796,   83,
00712       146, 3481,  151,  156,  205, 1404, 1410, 1419, 1325, 1425,
00713 
00714      1341, 1428, 1422, 1431, 1432, 1450, 1435, 1458, 1442, 1474,
00715       200,  220,  225,  242,  245,  244,  264,  280,  293,  292,
00716       290,  327,  328,  338,  367,  408,  415,  421,  435, 1479,
00717       474,  488,  507,  524, 1482, 1494,  534,  541,  558,  565,
00718       580, 1497,  573,  582,  607, 1502, 1505, 1508, 3481,  598,
00719       633,  636, 3481,  645,  645,  671,  668,  678,  665,  673,
00720       688,  692,  697,  685, 3481,  702,  692,  710,  709,  712,
00721       749,  766,  755,  756,  757, 3481,  751,  753,  787, 1512,
00722      1516, 1527, 1530, 1533, 1548, 1555, 1558, 1536, 1509, 1561,
00723      1564, 1542, 1568, 1539, 1569, 1572, 1587, 1592, 1584, 1602,
00724 
00725      1606, 1454, 1598, 1617, 1632, 1625,  757,  784,  764, 1640,
00726       776,  779,  814,  834,  837,  828,  829,  851,  848,  857,
00727       841, 1643,  876,  864, 1646, 1649,  887,  883,  893,  924,
00728       956,  945,  965,  969, 1661, 1664, 1667,  977,  977, 1015,
00729      1670, 3481,  983,  999, 1009,  998, 1021, 1007, 1041, 1031,
00730      1091, 1066, 3481, 1090, 3481, 3481, 1093, 3481, 3481, 1093,
00731      1115, 1126, 1122, 1162, 1151, 1164, 1182, 1182, 1679, 3481,
00732      3481, 1686, 1689, 3481, 3481, 1696, 1699, 1711, 1662, 1641,
00733      1715, 1670, 1706, 1690, 1728, 1707, 1734, 1731, 1746, 1441,
00734      1749, 1752, 3481, 3481, 1764, 1767, 1770, 1193, 1236, 1773,
00735 
00736      1779, 1254, 1233, 1255, 1256, 1309, 1294, 1336, 1311, 1788,
00737      1348, 1791, 1794, 1797, 1809, 1350, 1812, 1815, 1818, 1341,
00738      1358, 1365, 1361, 1377, 1382, 1824, 1833, 1839, 1842, 1403,
00739      1405, 1595, 3481, 1411, 1450, 1444, 1457, 1469, 1518, 1513,
00740      1531, 1539, 3481, 1538, 1570, 1563, 1567, 1570, 3481, 3481,
00741      1589, 1600, 1845, 3481, 3481, 1792, 1852, 1743, 1836, 1843,
00742      1846, 1816, 1861, 1867, 1858, 1864, 1868, 1886, 1901, 1908,
00743      1915, 1918, 1634, 1921, 1924, 1602, 1623, 1627, 1634, 1646,
00744      1663, 1658, 1679, 1930, 1936, 1680, 1939, 1945, 1948, 1954,
00745      1957, 1960, 1963, 1969, 1978, 1981, 1675, 1706, 1686, 1683,
00746 
00747      1684, 1984, 1987, 1993, 1999, 2002, 1705, 1724, 1737, 1742,
00748      1747, 1742, 1745, 1745, 1764, 1768, 1765, 1773, 1792, 1793,
00749      1788, 1825, 1846, 1834, 3481, 1836, 1994, 2009, 2012, 1878,
00750      2003, 1961, 2006, 2012, 2013, 2028, 2019, 1892, 2020, 2038,
00751      3481, 3481, 2045, 1850, 1859, 2048, 2052, 1861, 1854, 1857,
00752      1857, 1888, 1889, 1877, 1894, 2055, 1912, 2066, 2069, 2072,
00753      2075, 2078, 2081, 1909, 1917, 1921, 1941, 1927, 2087, 2090,
00754      2093, 2096, 2102, 2105, 1942, 1945, 1951, 1943, 1971, 1996,
00755      1997, 2008, 1990, 2022, 2015, 2068, 2046, 2043, 3481, 2057,
00756      2056, 2072, 2099, 2114, 2106, 2109, 2110, 2113, 2114, 2117,
00757 
00758      2118, 2121, 2124, 2066, 2072, 2139, 2080, 2089, 2103, 2104,
00759      2111, 2093, 2109, 2102, 2135, 2152, 2116, 2102, 2159, 2120,
00760      2112, 2165, 2178, 2181, 2184, 2131, 2130, 2133, 2119, 2122,
00761      2134, 2172, 2154, 2159, 3481, 3481, 2139, 2139, 2154, 2147,
00762      2153, 2155, 2186, 2189, 2190, 2194, 2197, 2198, 2213, 2216,
00763      2207, 2222, 2160, 2168, 2165, 2178, 2184, 2222, 2204, 2210,
00764      2247, 2251, 2191, 2192, 2215, 2256, 2262, 2212, 2217, 2266,
00765      2227, 2217, 3481, 2219, 2240, 3481, 2225, 2240, 2230, 2228,
00766      2243, 2248, 3481, 2241, 2242, 2239, 2271, 2286, 2277, 2278,
00767      2282, 2281, 2301, 2304, 2307, 2310, 2304, 2325, 2333, 2230,
00768 
00769      2340, 2244, 2289, 2343, 2274, 2293, 2285, 2287, 2346, 2349,
00770      2361, 2364, 2317, 2324, 2367, 2370, 2317, 2319, 2316, 2334,
00771      3481, 2339, 2321, 2331, 2323, 2354, 2332, 2333, 3481, 2330,
00772      2336, 2385, 2388, 2391, 2382, 2391, 2392, 2395, 2410, 2413,
00773      2404, 2419, 2356, 2422, 2425, 2428, 2373, 2437, 2431, 2380,
00774      2394, 2388, 2419, 2446, 2453, 2401, 2401, 2456, 2459, 2462,
00775      2412, 2418, 3481, 2421, 2420, 2414, 2432, 2423, 2436, 2449,
00776      3481, 2434, 2477, 2480, 2483, 2474, 2480, 2495, 2486, 2487,
00777      2502, 2510, 2513, 2518, 2441, 2521, 2445, 2450, 2467, 2475,
00778      2489, 2503, 2529, 2532, 2537, 2541, 2494, 2489, 2507, 2508,
00779 
00780      2495, 2493, 2508, 2502, 2518, 2556, 2547, 2548, 2563, 2566,
00781      2557, 2578, 2572, 2581, 2596, 2498, 2516, 2531, 2532, 2532,
00782      2547, 2544, 2599, 2602, 2605, 2560, 2569, 2556, 2557, 2581,
00783      2573, 2570, 2558, 2576, 2605, 2606, 2621, 2612, 2627, 2630,
00784      2634, 2586, 2584, 2585, 2642, 2606, 2603, 2591, 2648, 2612,
00785      2599, 3481, 3481, 2599, 3481, 2606, 2616, 2614, 2646, 2649,
00786      2652, 2667, 2612, 2674, 2677, 2680, 2683, 2616, 2695, 2623,
00787      2647, 2644, 3481, 2637, 2649, 3481, 2651, 2686, 2689, 2690,
00788      2710, 2713, 2716, 2720, 2728, 2737, 2641, 2740, 2744, 2664,
00789      2747, 2666, 2665, 2685, 2681, 2738, 2739, 2744, 2762, 2765,
00790 
00791      2768, 2771, 2682, 2777, 2692, 2783, 2786, 2689, 2684, 2696,
00792      2701, 2777, 2745, 2784, 2799, 2712, 2735, 2802, 2721, 2739,
00793      2738, 2737, 2793, 2796, 2797, 2754, 2763, 2759, 3481, 2772,
00794      3481, 2803, 2802, 2821, 2824, 2777, 2827, 2777, 2825, 2845,
00795      2852, 2860, 2867, 2870, 2788, 2873, 2882, 2777, 2888, 2891,
00796      2894, 2897, 2906, 2782, 2909, 2787, 2912, 2915, 2918, 2790,
00797      3481, 2921, 2927, 2930, 2933, 2936, 3481, 2946, 2951, 2956,
00798      2961, 2966, 2971, 2976, 2980, 2985, 2989, 2994
00799     } ;
00800 
00801 static yyconst flex_int16_t yy_def[1679] =
00802     {   0,
00803      1668, 1668, 1669, 1669, 1670, 1670, 1671, 1671, 1672, 1672,
00804      1672, 1672, 1673, 1673, 1674, 1674, 1667, 1667, 1675, 1675,
00805      1667, 1675, 1667, 1675, 1675, 1675, 1675, 1667, 1667, 1675,
00806      1667, 1676, 1667, 1677, 1678, 1667, 1667, 1667, 1667, 1667,
00807      1667,   20, 1675, 1675, 1675, 1675,   28, 1667, 1675, 1675,
00808      1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00809      1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1667, 1667,
00810      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00811      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675, 1676, 1677,
00812      1678, 1667, 1667, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00813 
00814      1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00815      1667, 1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00816      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00817      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00818      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00819      1667, 1667, 1667, 1675, 1667, 1675, 1675, 1675, 1675, 1675,
00820      1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1667,
00821      1675, 1675, 1675, 1675, 1675, 1675, 1667, 1667, 1667, 1667,
00822      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00823      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00824 
00825      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00826      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00827      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00828      1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1675, 1675,
00829      1675, 1675, 1675, 1675, 1675, 1667, 1667, 1667, 1675, 1675,
00830      1675, 1675, 1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667,
00831      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00832      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00833      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00834      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00835 
00836      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00837      1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1667, 1675,
00838      1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1675, 1675,
00839      1675, 1675, 1667, 1675, 1675, 1675, 1667, 1675, 1667, 1667,
00840      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00841      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00842      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00843      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00844      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00845      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00846 
00847      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00848      1667, 1667, 1667, 1675, 1675, 1667, 1667, 1667, 1675, 1675,
00849      1675, 1675, 1675, 1667, 1667, 1667, 1675, 1675, 1675, 1675,
00850      1667, 1667, 1667, 1675, 1675, 1667, 1667, 1667, 1675, 1667,
00851      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00852      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00853      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00854      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00855      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00856      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00857 
00858      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00859      1667, 1667, 1667, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00860      1675, 1675, 1667, 1675, 1667, 1675, 1675, 1675, 1667, 1667,
00861      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00862      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00863      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00864      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00865      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00866      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00867      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00868 
00869      1667, 1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1675,
00870      1675, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1667, 1667,
00871      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00872      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00873      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00874      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00875      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00876      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00877      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00878      1667, 1675, 1667, 1675, 1675, 1675, 1667, 1667, 1667, 1675,
00879 
00880      1675, 1667, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00881      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00882      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00883      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00884      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00885      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00886      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00887      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00888      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00889      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675,
00890 
00891      1675, 1675, 1667, 1667, 1667, 1675, 1675, 1675, 1675, 1675,
00892      1675, 1675, 1675, 1675, 1675, 1675, 1667, 1667, 1667, 1667,
00893      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00894      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00895      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00896      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00897      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00898      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00899      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00900      1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1675, 1675,
00901 
00902      1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00903      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00904      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00905      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00906      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00907      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00908      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00909      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675,
00910      1667, 1675, 1667, 1675, 1667, 1675, 1675, 1667, 1675, 1675,
00911      1675, 1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1675,
00912 
00913      1667, 1675, 1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667,
00914      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00915      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00916      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00917      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00918      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00919      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00920      1667, 1667, 1667, 1667, 1667, 1675, 1667, 1667, 1675, 1675,
00921      1667, 1675, 1675, 1675, 1675, 1675, 1667, 1675, 1667, 1675,
00922      1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00923 
00924      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00925      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00926      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00927      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00928      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00929      1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1675, 1675,
00930      1675, 1675, 1675, 1667, 1675, 1675, 1675, 1675, 1667, 1667,
00931      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00932      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00933      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00934 
00935      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00936      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00937      1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675, 1667, 1675,
00938      1675, 1675, 1675, 1675, 1675, 1667, 1675, 1675, 1675, 1667,
00939      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00940      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00941      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00942      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00943      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00944      1667, 1667, 1675, 1667, 1675, 1675, 1675, 1675, 1675, 1675,
00945 
00946      1675, 1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00947      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00948      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00949      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00950      1667, 1667, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
00951      1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00952      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00953      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00954      1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1675,
00955      1675, 1675, 1675, 1667, 1675, 1667, 1675, 1675, 1667, 1667,
00956 
00957      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00958      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00959      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00960      1667, 1675, 1675, 1667, 1675, 1675, 1675, 1675, 1667, 1667,
00961      1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00962      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00963      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00964      1667, 1667, 1675, 1667, 1667, 1675, 1675, 1675, 1675, 1675,
00965      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00966      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00967 
00968      1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1667,
00969      1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00970      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00971      1667, 1667, 1667, 1667, 1675, 1675, 1667, 1675, 1675, 1667,
00972      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00973      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675,
00974      1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00975      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675,
00976      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00977      1667, 1667, 1667, 1667, 1667, 1675, 1675, 1675, 1667, 1667,
00978 
00979      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
00980      1667, 1675, 1675, 1675, 1667, 1667, 1667, 1667, 1667, 1667,
00981      1667, 1667, 1675, 1675, 1675, 1667, 1667, 1667, 1667, 1667,
00982      1667, 1675, 1675, 1675, 1667, 1667, 1667, 1667, 1675, 1675,
00983      1675, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1675, 1675,
00984      1667, 1667, 1667, 1667, 1667, 1667, 1675, 1667, 1667, 1667,
00985      1667, 1667, 1667, 1667, 1667, 1667,    0, 1667, 1667, 1667,
00986      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667
00987     } ;
00988 
00989 static yyconst flex_int16_t yy_nxt[3545] =
00990     {   0,
00991        18,   19,   19,   20,   18,   21,   40,   23,   18,   24,
00992        25,   26,   27,   28,   18,   29,   18,   37,   37,   40,
00993        41, 1667,   30, 1667,   38,   38,   62, 1667,   63, 1667,
00994      1667, 1667,   67,   41,   87,   87,   87, 1667,   64, 1667,
00995      1667,   65, 1667, 1667, 1667, 1667, 1667,   46, 1667,   66,
00996      1667,   88, 1667,  226,   67,   87,   87,   87, 1667, 1667,
00997       227, 1667,   31,   18,   19,   19,   20,   18,   21,   66,
00998        23,   18,   24,   25,   26,   27,   28,   18,   29,   18,
00999        68,   68,   68,   99,  685,   30,   68,   68,   68,   62,
01000       686,   63, 1667, 1667, 1667, 1667,  100,   46, 1667,   66,
01001 
01002      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01003      1667, 1667, 1667, 1667,  138, 1667,   94,  278, 1667,   66,
01004      1667, 1667,  139, 1667,  279,   31,   42,   42,   42,   95,
01005       975,  131,   98,  101,   44,  132,   45,   46,   47,  180,
01006        48,   96,  108,  181,  110,   97,  104, 1667,  145, 1667,
01007       105,  111,  112,  106,  109,  113, 1667, 1667, 1667, 1667,
01008       107,  221,  222,   49,   50,  146,   51,   52,  148,   53,
01009       102,   88,   54,   55,   56,   68,   68,   68,  149,   57,
01010        58,   59,   60,   42,   42,   42,  976, 1667,  150, 1667,
01011       103,   44,  140,   45,   46,   47, 1667,   48, 1667,   65,
01012 
01013      1667,  977, 1667,   68,   68,   68,  141,   66,  194,  142,
01014       143,  144,   62,  978,   63, 1667, 1667, 1667, 1667,  171,
01015        49,   50,   66,   51,   52,  195,   53,   66,  660,   54,
01016        55,   56,   87,   87,   87,  661,   57,   58,   59,   60,
01017        69,  187,   66,   65, 1667,  979, 1667,   70, 1667,  188,
01018      1667,   66,   71,  197, 1006, 1667,  154, 1667,  156, 1667,
01019      1007, 1667, 1667,  198, 1667, 1667, 1667, 1667, 1667,  719,
01020      1667,   66, 1667,  199,   72,   73,  720,   74,   75, 1008,
01021        76,   77, 1009,   78,   79, 1010,   80,   81, 1011,   82,
01022        83,   84,   85,   86,  115,  116,  157,  117,  118,  158,
01023 
01024       119,  120,  159,  121,  122,  160,  123,  124,  172,  125,
01025       126,  127,  128,  129, 1667, 1667, 1667, 1667, 1012, 1667,
01026       161, 1667, 1667, 1667, 1667, 1667, 1667, 1013, 1667,  169,
01027       169,  169, 1667, 1014, 1667,  162, 1015, 1667,  173, 1667,
01028       163, 1667,  170, 1667, 1667, 1016, 1667,  113, 1667, 1667,
01029      1667, 1667,  164,  174, 1667,  189, 1667,  165,  166, 1017,
01030       167,  113, 1667, 1667, 1667, 1667, 1018,  168,  175,  190,
01031       208,  406,  191,  192,  193,  407,  232,  209,  176,  233,
01032       210,  211, 1667, 1667, 1667, 1667, 1019,  236,  236,  236,
01033      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,  234, 1667,
01034 
01035       237, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01036      1667, 1020, 1667,  239,  240,  245,  169,  169,  169,  273,
01037       274,  241,  242,  284,  285,  235,  238,  243, 1667,  170,
01038      1667,  246,  246,  246, 1667,  247, 1667,  248, 1667, 1667,
01039      1667, 1667, 1667,  249, 1667,  260,  244,  471, 1021,  297,
01040       298,  472,  261,  251, 1022,  262,  263,  299, 1667, 1023,
01041      1667,  250,  252, 1667, 1667, 1667, 1667,  356,  357,  318,
01042       318,  318,  321,  321,  321,  358,  236,  236,  236, 1024,
01043       253, 1667,  319, 1667, 1667,  254, 1667,  316, 1667,  237,
01044      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01045 
01046       325, 1667,  320,  317,  326,  326,  326,  322, 1667, 1667,
01047      1667, 1667, 1667, 1667, 1667, 1667, 1667,  327, 1667,  490,
01048      1667,  491, 1667,  328, 1027,  323,  329,  246,  246,  246,
01049      1667,  247, 1667,  248,  324,  330,  334, 1028,  332,  332,
01050       332,  336,  336,  336,  583, 1029,  335,  338,  584,  331,
01051      1667,  333, 1667, 1667,  337, 1667,  339,  339,  339,  351,
01052       351,  351,  359,  359,  359,  372,  372,  372,  430, 1667,
01053       340, 1667, 1667,  352, 1667, 1667,  360, 1667, 1030,  373,
01054       353,  378,  378,  378, 1031,  399,  399,  399,  416,  416,
01055       416, 1667,  417, 1667,  418,  379, 1032,  419,  374,  400,
01056 
01057      1667,  361, 1667,  415,  598, 1667,  414, 1667,  599,  341,
01058       342, 1033, 1034,  318,  318,  318,  321,  321,  321, 1667,
01059      1035, 1667,  422, 1038,  380, 1667,  319, 1667,  326,  326,
01060       326,  424,  424,  424,  420,  425, 1667,  426, 1667, 1039,
01061      1667,  327, 1667, 1667, 1667, 1667, 1667, 1040,  421,  332,
01062       332,  332, 1042,  431,  431,  431,  423,  432, 1667,  433,
01063      1667, 1667,  333, 1667, 1667, 1043, 1667,  336,  336,  336,
01064       634,  436,  436,  436,  635,  437,  427,  438,  650, 1667,
01065       337, 1667,  651,  428,  439,  439,  439,  339,  339,  339,
01066       429, 1044,  434,  441,  441,  441, 1667,  440, 1667, 1045,
01067 
01068      1046,  340,  351,  351,  351, 1047, 1048,  435,  452,  452,
01069       452,  359,  359,  359, 1049, 1050,  352,  459,  459,  459,
01070       462,  462,  462, 1051, 1052,  360,  467,  467,  467,  372,
01071       372,  372, 1053, 1054,  463,  475,  475,  475, 1055, 1667,
01072       468, 1667, 1056,  373,  478,  478,  478,  378,  378,  378,
01073       481,  481,  481, 1057,  469,  399,  399,  399,  479, 1058,
01074      1667,  379, 1667, 1059,  416,  416,  416, 1060,  417,  400,
01075       418, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,  514,
01076      1667, 1061, 1667,  424,  424,  424, 1667,  425, 1667,  426,
01077      1062, 1063,  517,  522,  522,  522, 1064, 1065,  515,  516,
01078 
01079      1066,  521,  518, 1067, 1068, 1667,  523, 1667,  524,  524,
01080       524, 1097, 1667,  519, 1667, 1667, 1098, 1667,  520, 1099,
01081      1667,  525, 1667,  431,  431,  431, 1667,  432, 1667,  433,
01082      1102,  436,  436,  436, 1103,  437,  527,  438,  439,  439,
01083       439,  529,  529,  529,  539,  530,  540,  531, 1104,  526,
01084      1667,  440, 1667,  528,  441,  441,  441,  452,  452,  452,
01085       543,  543,  543,  459,  459,  459,  462,  462,  462,  552,
01086       552,  552, 1105, 1106,  544,  553,  553,  553, 1107, 1108,
01087       463,  467,  467,  467,  558,  558,  558, 1109, 1110,  554,
01088       475,  475,  475, 1111, 1112,  468,  478,  478,  478,  567,
01089 
01090       567,  567,  555,  481,  481,  481,  590, 1667,  591, 1667,
01091       479, 1667, 1667, 1667, 1667, 1667, 1115, 1667,  607,  607,
01092       607, 1667, 1667, 1667, 1667, 1116, 1667, 1667, 1667, 1667,
01093      1667,  608, 1667,  522,  522,  522, 1118, 1119,  606,  615,
01094       615,  615, 1667,  605, 1667, 1667,  523, 1667, 1120,  617,
01095       631,  631,  631,  604,  603,  611, 1121,  609,  612,  612,
01096       612,  642,  613,  643,  614,  524,  524,  524,  774,  610,
01097       775,  618,  618,  618,  552,  552,  552, 1667,  525, 1667,
01098      1122, 1123,  616, 1667,  619, 1667,  529,  529,  529, 1667,
01099       530, 1667,  531,  543,  543,  543,  553,  553,  553,  640,
01100 
01101       640,  640,  558,  558,  558, 1124, 1667,  544, 1667, 1125,
01102       554,  653,  653,  653,  567,  567,  567,  662,  663,  664,
01103       694, 1667,  788, 1667,  789,  654, 1129, 1130,  665,  692,
01104       692,  692, 1131, 1132,  666,  695,  607,  607,  607, 1133,
01105      1134, 1667,  693, 1667, 1667,  831, 1667,  832, 1667,  608,
01106      1667, 1135,  697,  697,  697,  696,  698, 1136,  699,  701,
01107       701,  701, 1137,  700, 1667, 1667, 1667, 1667, 1667,  703,
01108      1667, 1667,  702, 1667,  704,  615,  615,  615, 1138,  705,
01109       706,  852,  707,  853, 1139,  708,  612,  612,  612, 1667,
01110       613, 1667,  614,  631,  631,  631,  618,  618,  618,  711,
01111 
01112       711,  711,  710,  712, 1667,  713, 1667,  709, 1667,  619,
01113      1667,  715,  715,  715,  721,  721,  721, 1140,  723,  724,
01114       725, 1141,  732,  732,  732,  716,  799, 1142,  722,  726,
01115       734,  734,  734, 1143,  800,  727,  733,  640,  640,  640,
01116       747,  747,  747, 1144,  735,  752,  752,  752,  653,  653,
01117       653,  759,  759,  759,  748,  692,  692,  692, 1667,  753,
01118      1667, 1667,  654, 1667, 1667, 1145, 1667, 1667,  693, 1667,
01119      1146,  754,  796,  796,  796, 1147,  797,  755,  798,  749,
01120       697,  697,  697, 1667,  698, 1667,  699, 1667,  808, 1667,
01121       701,  701,  701,  803,  803,  803, 1667,  804, 1667,  805,
01122 
01123      1148,  801, 1667,  702, 1667, 1149,  809, 1667,  802, 1667,
01124      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1150,  810,
01125       806, 1667,  812, 1667,  807,  711,  711,  711, 1151,  712,
01126       815,  713, 1667,  814, 1667, 1152,  811,  715,  715,  715,
01127       818,  818,  818, 1173,  813,  721,  721,  721,  823,  823,
01128       823,  716,  732,  732,  732,  908,  901,  816,  905,  722,
01129       834,  834,  834,  734,  734,  734,  733,  835,  835,  835,
01130       845,  845,  845,  847,  847,  847, 1174,  735,  747,  747,
01131       747,  849,  849,  849,  846, 1176, 1177,  848,  752,  752,
01132       752, 1178,  748,  854,  854,  854,  759,  759,  759,  860,
01133 
01134       860,  860,  753,  796,  796,  796, 1667,  797, 1667,  798,
01135      1667, 1179, 1667,  861, 1667, 1667, 1667, 1667,  803,  803,
01136       803, 1667,  804, 1667,  805, 1667, 1667, 1667, 1667, 1667,
01137      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01138      1667,  898,  896,  818,  818,  818, 1180, 1181,  906,  823,
01139       823,  823,  897,  899, 1667,  903, 1667,  900,  902,  834,
01140       834,  834, 1182,  990,  910,  986, 1183,  907,  835,  835,
01141       835,  904,  845,  845,  845,  935,  935,  935,  847,  847,
01142       847,  909,  936,  936,  936, 1186,  846,  849,  849,  849,
01143      1192, 1197,  848,  854,  854,  854,  860,  860,  860,  946,
01144 
01145       946,  946,  947,  947,  947,  980,  980,  980, 1198, 1199,
01146       861,  982,  982,  982, 1200, 1201,  948, 1667,  981, 1667,
01147       984,  984,  984, 1667,  983, 1667,  987,  987,  987,  991,
01148       991,  991, 1667,  985, 1667, 1667, 1202, 1667, 1667,  988,
01149      1667, 1667,  992, 1667, 1667, 1667, 1667, 1667, 1667, 1207,
01150      1667,  997,  997,  997, 1667, 1667, 1667, 1667, 1208, 1000,
01151      1000, 1000,  994, 1667,  998, 1667, 1211, 1667,  993, 1667,
01152       996, 1667, 1001, 1667,  995, 1004, 1004, 1004, 1167,  989,
01153      1025, 1025, 1025,  935,  935,  935, 1212, 1667, 1005, 1667,
01154      1090, 1213,  999, 1003, 1026,  936,  936,  936, 1036, 1036,
01155 
01156      1036, 1214, 1002,  946,  946,  946,  947,  947,  947, 1041,
01157      1041, 1041, 1037,  980,  980,  980, 1215, 1069, 1069, 1069,
01158       948, 1070, 1667, 1071, 1667, 1667,  981, 1667,  982,  982,
01159       982, 1072, 1072, 1072,  984,  984,  984, 1078, 1078, 1078,
01160      1667,  983, 1667, 1081, 1081, 1081, 1667,  985, 1667, 1073,
01161      1073, 1073, 1667, 1074, 1667, 1075, 1076, 1076, 1076,  987,
01162       987,  987, 1216, 1217, 1079,  991,  991,  991, 1667, 1077,
01163      1667, 1667,  988, 1667, 1667, 1218, 1667, 1667,  992, 1667,
01164      1080, 1667, 1667, 1667, 1667, 1667, 1219, 1667,  997,  997,
01165       997, 1220, 1083, 1087, 1087, 1087, 1221, 1667, 1084, 1667,
01166 
01167      1667,  998, 1667, 1000, 1000, 1000, 1082, 1089, 1089, 1089,
01168      1222, 1667, 1086, 1667, 1209, 1667, 1001, 1667, 1004, 1004,
01169      1004, 1210, 1223, 1085, 1088, 1224, 1095, 1095, 1095, 1225,
01170      1667, 1005, 1667, 1092, 1092, 1092, 1226, 1093, 1091, 1094,
01171      1096, 1100, 1100, 1100, 1113, 1113, 1113, 1025, 1025, 1025,
01172      1117, 1117, 1117, 1244, 1667, 1101, 1667, 1248, 1114, 1249,
01173      1245, 1026, 1126, 1126, 1126, 1036, 1036, 1036, 1128, 1128,
01174      1128, 1041, 1041, 1041, 1250, 1667, 1127, 1667, 1251, 1037,
01175      1069, 1069, 1069, 1667, 1070, 1667, 1071, 1072, 1072, 1072,
01176      1073, 1073, 1073, 1252, 1074, 1157, 1075, 1076, 1076, 1076,
01177 
01178      1153, 1153, 1153, 1667, 1154, 1667, 1155, 1253, 1254, 1667,
01179      1077, 1667, 1078, 1078, 1078, 1156, 1081, 1081, 1081, 1667,
01180      1667, 1667, 1667, 1255, 1159, 1158, 1162, 1257, 1264, 1163,
01181      1163, 1163, 1265, 1266, 1160, 1087, 1087, 1087, 1267, 1268,
01182      1161, 1667, 1164, 1667, 1667, 1274, 1667, 1089, 1089, 1089,
01183      1168, 1168, 1168, 1092, 1092, 1092, 1667, 1093, 1667, 1094,
01184      1275, 1165, 1667, 1169, 1667, 1095, 1095, 1095, 1170, 1170,
01185      1170, 1171, 1171, 1171, 1100, 1100, 1100, 1276, 1277, 1096,
01186      1175, 1175, 1175, 1278, 1166, 1172, 1279, 1230, 1101, 1184,
01187      1184, 1184, 1187, 1187, 1187, 1113, 1113, 1113, 1189, 1189,
01188 
01189      1189, 1280, 1281, 1185, 1282, 1667, 1188, 1667, 1283, 1114,
01190      1190, 1190, 1190, 1117, 1117, 1117, 1193, 1193, 1193, 1195,
01191      1195, 1195, 1284, 1285, 1191, 1126, 1126, 1126, 1227, 1667,
01192      1194, 1667, 1286, 1196, 1203, 1203, 1203, 1287, 1288, 1127,
01193      1128, 1128, 1128, 1204, 1204, 1204, 1153, 1153, 1153, 1667,
01194      1154, 1667, 1155, 1228, 1228, 1228, 1667, 1205, 1667, 1667,
01195      1235, 1667, 1163, 1163, 1163, 1667, 1229, 1667, 1236, 1236,
01196      1236, 1667, 1289, 1667, 1667, 1164, 1667, 1667, 1290, 1667,
01197      1232, 1667, 1234, 1667, 1291, 1292, 1231, 1168, 1168, 1168,
01198      1304, 1667, 1238, 1667, 1233, 1305, 1206, 1307, 1308, 1667,
01199 
01200      1169, 1667, 1240, 1240, 1240, 1667, 1241, 1667, 1242, 1170,
01201      1170, 1170, 1237, 1309, 1310, 1239, 1171, 1171, 1171, 1243,
01202      1243, 1243, 1246, 1246, 1246, 1175, 1175, 1175, 1311, 1312,
01203      1172, 1184, 1184, 1184, 1313, 1295, 1247, 1256, 1256, 1256,
01204      1187, 1187, 1187, 1302, 1314, 1185, 1258, 1258, 1258, 1189,
01205      1189, 1189, 1315, 1317, 1188, 1190, 1190, 1190, 1259, 1259,
01206      1259, 1260, 1260, 1260, 1193, 1193, 1193, 1318, 1319, 1191,
01207      1262, 1262, 1262, 1320, 1667, 1261, 1667, 1321, 1194, 1195,
01208      1195, 1195, 1263, 1263, 1263, 1269, 1269, 1269, 1203, 1203,
01209      1203, 1326, 1327, 1196, 1204, 1204, 1204, 1328, 1329, 1270,
01210 
01211      1271, 1271, 1271, 1272, 1272, 1272, 1297, 1667, 1205, 1667,
01212      1228, 1228, 1228, 1294, 1294, 1294, 1667, 1273, 1667, 1667,
01213      1330, 1667, 1667, 1229, 1667, 1667, 1667, 1667, 1667, 1236,
01214      1236, 1236, 1667, 1667, 1667, 1667, 1331, 1332, 1293, 1240,
01215      1240, 1240, 1333, 1241, 1334, 1242, 1243, 1243, 1243, 1246,
01216      1246, 1246, 1296, 1306, 1306, 1306, 1256, 1256, 1256, 1301,
01217      1303, 1298, 1335, 1247, 1336, 1299, 1300, 1258, 1258, 1258,
01218      1259, 1259, 1259, 1260, 1260, 1260, 1316, 1316, 1316, 1262,
01219      1262, 1262, 1263, 1263, 1263, 1337, 1338, 1261, 1269, 1269,
01220      1269, 1322, 1322, 1322, 1271, 1271, 1271, 1272, 1272, 1272,
01221 
01222      1339, 1340, 1270, 1323, 1323, 1323, 1324, 1324, 1324, 1341,
01223      1342, 1273, 1667, 1353, 1667, 1294, 1294, 1294, 1354, 1667,
01224      1325, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01225      1667, 1667, 1667, 1667, 1667, 1355, 1667, 1667, 1356, 1667,
01226      1306, 1306, 1306, 1357, 1358, 1359, 1344, 1360, 1343, 1361,
01227      1346, 1362, 1363, 1316, 1316, 1316, 1364, 1347, 1348, 1365,
01228      1366, 1366, 1366, 1345, 1368, 1369, 1322, 1322, 1322, 1371,
01229      1372, 1349, 1350, 1373, 1367, 1374, 1351, 1375, 1352, 1323,
01230      1323, 1323, 1324, 1324, 1324, 1370, 1370, 1370, 1376, 1377,
01231      1379, 1380, 1381, 1382, 1383, 1384, 1325, 1385, 1386, 1667,
01232 
01233      1400, 1667, 1667, 1667, 1667, 1667, 1378, 1667, 1401, 1667,
01234      1667, 1667, 1667, 1667, 1393, 1393, 1393, 1395, 1395, 1395,
01235      1667, 1402, 1667, 1398, 1398, 1398, 1667, 1394, 1667, 1667,
01236      1396, 1667, 1390, 1403, 1392, 1667, 1399, 1667, 1404, 1405,
01237      1407, 1387, 1408, 1388, 1413, 1389, 1414, 1391, 1409, 1409,
01238      1409, 1397, 1411, 1411, 1411, 1415, 1406, 1366, 1366, 1366,
01239      1417, 1418, 1410, 1416, 1416, 1416, 1412, 1370, 1370, 1370,
01240      1419, 1367, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
01241      1428, 1429, 1430, 1431, 1667, 1443, 1667, 1433, 1433, 1433,
01242      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1446, 1667,
01243 
01244      1434, 1667, 1393, 1393, 1393, 1439, 1439, 1439, 1395, 1395,
01245      1395, 1440, 1440, 1440, 1667, 1394, 1667, 1667, 1438, 1667,
01246      1667, 1396, 1667, 1447, 1450, 1432, 1398, 1398, 1398, 1451,
01247      1435, 1437, 1452, 1436, 1442, 1442, 1442, 1453, 1667, 1399,
01248      1667, 1444, 1444, 1444, 1448, 1448, 1448, 1409, 1409, 1409,
01249      1454, 1454, 1454, 1456, 1441, 1445, 1457, 1460, 1449, 1461,
01250      1462, 1410, 1411, 1411, 1411, 1455, 1455, 1455, 1458, 1458,
01251      1458, 1416, 1416, 1416, 1463, 1464, 1412, 1465, 1466, 1467,
01252      1468, 1469, 1459, 1470, 1471, 1472, 1473, 1473, 1473, 1433,
01253      1433, 1433, 1475, 1475, 1475, 1667, 1481, 1667, 1667, 1474,
01254 
01255      1667, 1667, 1434, 1667, 1667, 1667, 1667, 1667, 1667, 1485,
01256      1667, 1439, 1439, 1439, 1440, 1440, 1440, 1667, 1476, 1667,
01257      1442, 1442, 1442, 1444, 1444, 1444, 1482, 1482, 1482, 1483,
01258      1483, 1483, 1486, 1486, 1486, 1477, 1487, 1445, 1448, 1448,
01259      1448, 1488, 1479, 1484, 1489, 1490, 1478, 1454, 1454, 1454,
01260      1491, 1492, 1449, 1480, 1455, 1455, 1455, 1458, 1458, 1458,
01261      1493, 1493, 1493, 1494, 1494, 1494, 1496, 1497, 1498, 1499,
01262      1500, 1459, 1501, 1502, 1503, 1504, 1505, 1495, 1473, 1473,
01263      1473, 1506, 1506, 1506, 1475, 1475, 1475, 1667, 1516, 1667,
01264      1667, 1474, 1667, 1667, 1517, 1667, 1509, 1509, 1509, 1667,
01265 
01266      1667, 1667, 1667, 1513, 1513, 1513, 1518, 1519, 1667, 1510,
01267      1667, 1482, 1482, 1482, 1483, 1483, 1483, 1514, 1507, 1515,
01268      1515, 1515, 1486, 1486, 1486, 1520, 1511, 1521, 1484, 1522,
01269      1493, 1493, 1493, 1494, 1494, 1494, 1526, 1508, 1523, 1523,
01270      1523, 1512, 1524, 1524, 1524, 1527, 1528, 1495, 1529, 1530,
01271      1531, 1532, 1533, 1534, 1542, 1543, 1525, 1506, 1506, 1506,
01272      1667, 1667, 1667, 1667, 1509, 1509, 1509, 1537, 1537, 1537,
01273      1667, 1544, 1667, 1513, 1513, 1513, 1667, 1510, 1667, 1539,
01274      1539, 1539, 1541, 1541, 1541, 1538, 1545, 1514, 1536, 1546,
01275      1547, 1667, 1540, 1667, 1548, 1550, 1535, 1515, 1515, 1515,
01276 
01277      1523, 1523, 1523, 1524, 1524, 1524, 1549, 1549, 1549, 1551,
01278      1552, 1553, 1554, 1555, 1556, 1557, 1558, 1525, 1667, 1667,
01279      1667, 1667, 1537, 1537, 1537, 1667, 1563, 1667, 1539, 1539,
01280      1539, 1562, 1562, 1562, 1560, 1541, 1541, 1541, 1564, 1565,
01281      1667, 1540, 1667, 1566, 1566, 1566, 1569, 1570, 1571, 1549,
01282      1549, 1549, 1572, 1573, 1574, 1575, 1576, 1567, 1577, 1667,
01283      1559, 1667, 1667, 1561, 1667, 1667, 1581, 1667, 1562, 1562,
01284      1562, 1587, 1590, 1568, 1578, 1582, 1582, 1582, 1584, 1584,
01285      1584, 1566, 1566, 1566, 1586, 1586, 1586, 1591, 1592, 1583,
01286      1593, 1594, 1585, 1595, 1603, 1567, 1588, 1588, 1588, 1667,
01287 
01288      1579, 1667, 1667, 1667, 1667, 1667, 1605, 1580, 1608, 1609,
01289      1589, 1599, 1599, 1599, 1582, 1582, 1582, 1601, 1601, 1601,
01290      1610, 1584, 1584, 1584, 1611, 1600, 1616, 1617, 1583, 1602,
01291      1602, 1602, 1619, 1620, 1598, 1585, 1621, 1596, 1586, 1586,
01292      1586, 1588, 1588, 1588, 1597, 1604, 1604, 1604, 1606, 1606,
01293      1606, 1667, 1667, 1667, 1667, 1589, 1622, 1667, 1667, 1667,
01294      1667, 1626, 1607, 1599, 1599, 1599, 1615, 1615, 1615, 1601,
01295      1601, 1601, 1602, 1602, 1602, 1627, 1628, 1600, 1604, 1604,
01296      1604, 1629, 1630, 1613, 1606, 1606, 1606, 1618, 1618, 1618,
01297      1667, 1631, 1667, 1612, 1614, 1624, 1635, 1667, 1607, 1667,
01298 
01299      1615, 1615, 1615, 1618, 1618, 1618, 1667, 1636, 1667, 1667,
01300      1667, 1667, 1667, 1637, 1638, 1667, 1667, 1667, 1667, 1645,
01301      1648, 1623, 1641, 1641, 1641, 1643, 1643, 1643, 1646, 1646,
01302      1646, 1654, 1656, 1625, 1667, 1642, 1667, 1660, 1667, 1644,
01303      1667, 1661, 1647, 1632, 1663, 1633, 1650, 1650, 1650,  974,
01304       973, 1634, 1639, 1641, 1641, 1641, 1640,  972, 1667, 1651,
01305      1667, 1652, 1652, 1652,  971, 1667, 1642, 1667, 1643, 1643,
01306      1643, 1653, 1653, 1653, 1646, 1646, 1646,  970,  969, 1649,
01307       968,  967, 1644, 1655, 1655, 1655,  966,  965, 1647, 1657,
01308      1657, 1657, 1650, 1650, 1650, 1659, 1659, 1659, 1652, 1652,
01309 
01310      1652, 1667, 1658, 1667, 1667, 1651, 1667, 1653, 1653, 1653,
01311      1655, 1655, 1655, 1657, 1657, 1657, 1662, 1662, 1662, 1659,
01312      1659, 1659, 1662, 1662, 1662, 1667, 1658, 1667, 1664, 1664,
01313      1664, 1664, 1664, 1664, 1666, 1666, 1666, 1666, 1666, 1666,
01314       964,  963, 1665,  962,  961, 1665,   22,   22,   22,   22,
01315        22,   32,   32,   32,   32,   32,   34,   34,   34,   34,
01316        34,   35,   35,   35,   35,   35,   33,   33,   33,   33,
01317        33,   36,   36,   36,   36,   36,   39,   39,   39,   39,
01318        39,   43,  960,  959,   43,   89,   89,   89,   89,   90,
01319        90,  958,   90,   90,   91,   91,   91,  957,   91,  956,
01320 
01321       955,  954,  953,  952,  951,  950,  949,  945,  944,  943,
01322       942,  941,  940,  939,  938,  937,  934,  933,  932,  931,
01323       930,  929,  928,  927,  926,  925,  924,  923,  922,  921,
01324       920,  919,  918,  917,  916,  915,  914,  913,  912,  911,
01325       895,  894,  893,  892,  891,  890,  889,  888,  887,  886,
01326       885,  884,  883,  882,  881,  880,  879,  878,  877,  876,
01327       875,  874,  873,  872,  871,  870,  869,  868,  867,  866,
01328       865,  864,  863,  862,  859,  858,  857,  856,  855,  851,
01329       850,  844,  843,  842,  841,  840,  839,  838,  837,  836,
01330       833,  830,  829,  828,  827,  826,  825,  824,  822,  821,
01331 
01332       820,  819,  817,  795,  794,  793,  792,  791,  790,  787,
01333       786,  785,  784,  783,  782,  781,  780,  779,  778,  777,
01334       776,  773,  772,  771,  770,  769,  768,  767,  766,  765,
01335       764,  763,  762,  761,  760,  758,  757,  756,  751,  750,
01336       746,  745,  744,  743,  742,  741,  740,  739,  738,  737,
01337       736,  731,  730,  729,  728,  718,  717,  714,  691,  690,
01338       689,  688,  687,  684,  683,  682,  681,  680,  679,  678,
01339       677,  676,  675,  674,  673,  672,  671,  670,  669,  668,
01340       667,  659,  658,  657,  656,  655,  652,  649,  648,  647,
01341       646,  645,  644,  641,  639,  638,  637,  636,  633,  632,
01342 
01343       630,  629,  628,  627,  626,  625,  624,  623,  622,  621,
01344       620,  602,  601,  600,  597,  596,  595,  594,  593,  592,
01345       589,  588,  587,  586,  585,  582,  581,  580,  579,  578,
01346       577,  576,  575,  574,  573,  572,  571,  570,  569,  568,
01347       566,  565,  564,  563,  562,  561,  560,  559,  557,  556,
01348       551,  550,  549,  548,  547,  546,  545,  542,  541,  538,
01349       537,  536,  535,  534,  533,  532,  513,  512,  511,  510,
01350       509,  508,  507,  506,  505,  504,  503,  502,  501,  500,
01351       499,  498,  497,  496,  495,  494,  493,  492,  489,  488,
01352       487,  486,  485,  484,  483,  482,  480,  477,  476,  474,
01353 
01354       473,  470,  466,  465,  464,  461,  460,  458,  457,  456,
01355       455,  454,  453,  451,  450,  449,  448,  447,  446,  445,
01356       444,  443,  442,  413,  412,  411,  410,  409,  408,  405,
01357       404,  403,  402,  401,  398,  397,  396,  395,  394,  393,
01358       392,  391,  390,  389,  388,  387,  386,  385,  384,  383,
01359       382,  381,  377,  376,  375,  371,  370,  369,  368,  367,
01360       366,  365,  364,  363,  362,  355,  354,  350,  349,  348,
01361       347,  346,  345,  344,  343,  315,  314,  313,  312,  311,
01362       310,  309,  308,  307,  306,  305,  304,  303,  302,  301,
01363       300,  296,  295,  294,  293,  292,  291,  290,  289,  288,
01364 
01365       287,  286,  283,  282,  281,  280,  277,  276,  275,  272,
01366       271,  270,  269,  268,  267,  266,  265,  264,  259,  258,
01367       257,  256,  255,  177,  231,  230,  229,  228,  225,  224,
01368       223,  220,  219,  218,  217,  216,  215,  214,  213,  212,
01369       207,  206,  205,  204,  203,  202,  201,  200,  196,  186,
01370       185,  184,  183,  182,  179,  178,  177,  155,  153,  152,
01371       151,  147,  137,  136,  135,  134,  133,  130,  114,   93,
01372        92,   61,   61, 1667,   33,   33,   33,   33,   33,   33,
01373        17, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01374      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01375 
01376      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01377      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01378      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01379      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01380      1667, 1667, 1667, 1667
01381     } ;
01382 
01383 static yyconst flex_int16_t yy_chk[3545] =
01384     {   0,
01385         1,    1,    1,    1,    1,    1,   15,    1,    1,    1,
01386         1,    1,    1,    1,    1,    1,    1,   13,   14,   16,
01387        15,   22,    1,   22,   13,   14,   24,    0,   24,   24,
01388        26,   24,   26,   16,   29,   29,   29,   30,   24,   30,
01389         0,   25,   25,   43,   25,   43,   47,   44,   44,   25,
01390        44,   30,   45,  149,   45,   48,   48,   48,   47,   54,
01391       149,   54,    1,    2,    2,    2,    2,    2,    2,   25,
01392         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
01393        27,   27,   27,   54,  597,    2,   46,   46,   46,   27,
01394       597,   27,   27,   49,   27,   49,   54,   46,   46,   27,
01395 
01396        46,   51,   50,   51,   50,   52,   53,   52,   53,   57,
01397        55,   57,   55,   58,   79,   58,   49,  198,   59,   27,
01398        59,   60,   79,   60,  198,    2,   19,   19,   19,   50,
01399       890,   73,   53,   55,   19,   73,   19,   19,   19,  116,
01400        19,   51,   59,  116,   60,   52,   57,   56,   81,   56,
01401        58,   66,   66,   58,   59,   66,   66,   64,   66,   64,
01402        58,  145,  145,   19,   19,   81,   19,   19,   83,   19,
01403        56,   64,   19,   19,   19,   68,   68,   68,   83,   19,
01404        19,   19,   19,   20,   20,   20,  891,   68,   83,   68,
01405        56,   20,   80,   20,   20,   20,  106,   20,  106,   62,
01406 
01407        62,  893,   62,   63,   63,   63,   80,   62,  124,   80,
01408        80,   80,   63,  894,   63,   63,   94,   63,   94,  106,
01409        20,   20,   63,   20,   20,  124,   20,   62,  574,   20,
01410        20,   20,   87,   87,   87,  574,   20,   20,   20,   20,
01411        28,  122,   63,   65,   65,  895,   65,   28,   88,  122,
01412        88,   65,   28,  126,  911,   95,   88,   95,   94,   98,
01413       912,   98,   96,  126,   96,   97,  154,   97,  154,  624,
01414       107,   65,  107,  126,   28,   28,  624,   28,   28,  913,
01415        28,   28,  914,   28,   28,  915,   28,   28,  916,   28,
01416        28,   28,   28,   28,   70,   70,   95,   70,   70,   96,
01417 
01418        70,   70,   97,   70,   70,   98,   70,   70,  107,   70,
01419        70,   70,   70,   70,   99,  100,   99,  100,  917,  101,
01420        99,  101,  102,  103,  102,  103,  104,  918,  104,  105,
01421       105,  105,  108,  919,  108,   99,  920,  109,  108,  109,
01422       100,  105,  105,  105,  110,  921,  110,  112,  112,  156,
01423       112,  156,  101,  108,  157,  123,  157,  102,  103,  922,
01424       104,  113,  113,  158,  113,  158,  923,  104,  109,  123,
01425       135,  308,  123,  123,  123,  308,  156,  135,  110,  157,
01426       135,  135,  159,  161,  159,  161,  924,  160,  160,  160,
01427       162,  163,  162,  163,  164,  165,  164,  165,  158,  160,
01428 
01429       160,  160,  167,  166,  167,  166,  168,  171,  168,  171,
01430       173,  925,  173,  162,  163,  168,  169,  169,  169,  194,
01431       194,  164,  165,  203,  203,  159,  161,  166,  169,  169,
01432       169,  170,  170,  170,  172,  170,  172,  170,  175,  174,
01433       175,  174,  176,  171,  176,  184,  167,  369,  926,  215,
01434       215,  369,  184,  173,  927,  184,  184,  215,  232,  928,
01435       232,  172,  174,  233,  235,  233,  235,  267,  267,  234,
01436       234,  234,  237,  237,  237,  267,  236,  236,  236,  929,
01437       175,  234,  234,  234,  238,  176,  238,  232,  236,  236,
01438       236,  239,  240,  239,  240,  241,  243,  241,  243,  244,
01439 
01440       241,  244,  235,  233,  242,  242,  242,  238,  249,  245,
01441       249,  245,  252,  251,  252,  251,  242,  242,  242,  388,
01442       254,  388,  254,  243,  931,  239,  244,  246,  246,  246,
01443       331,  246,  331,  246,  240,  245,  251,  932,  250,  250,
01444       250,  253,  253,  253,  496,  933,  252,  254,  496,  249,
01445       250,  250,  250,  253,  253,  253,  255,  255,  255,  264,
01446       264,  264,  268,  268,  268,  279,  279,  279,  331,  316,
01447       255,  316,  317,  264,  317,  320,  268,  320,  934,  279,
01448       264,  283,  283,  283,  937,  302,  302,  302,  319,  319,
01449       319,  324,  319,  324,  319,  283,  938,  320,  279,  302,
01450 
01451       322,  268,  322,  317,  509,  323,  316,  323,  509,  255,
01452       255,  939,  940,  318,  318,  318,  321,  321,  321,  325,
01453       941,  325,  324,  943,  283,  318,  318,  318,  326,  326,
01454       326,  327,  327,  327,  322,  327,  328,  327,  328,  944,
01455       326,  326,  326,  329,  330,  329,  330,  945,  323,  332,
01456       332,  332,  950,  333,  333,  333,  325,  333,  334,  333,
01457       334,  332,  332,  332,  335,  951,  335,  336,  336,  336,
01458       547,  337,  337,  337,  547,  337,  328,  337,  564,  336,
01459       336,  336,  564,  329,  338,  338,  338,  339,  339,  339,
01460       330,  952,  334,  340,  340,  340,  338,  338,  338,  954,
01461 
01462       955,  339,  351,  351,  351,  956,  957,  335,  352,  352,
01463       352,  359,  359,  359,  958,  959,  351,  360,  360,  360,
01464       363,  363,  363,  960,  961,  359,  367,  367,  367,  372,
01465       372,  372,  962,  963,  363,  373,  373,  373,  964,  414,
01466       367,  414,  966,  372,  376,  376,  376,  378,  378,  378,
01467       379,  379,  379,  967,  367,  399,  399,  399,  376,  968,
01468       415,  378,  415,  969,  416,  416,  416,  970,  416,  399,
01469       416,  420,  419,  420,  419,  421,  422,  421,  422,  414,
01470       423,  971,  423,  424,  424,  424,  427,  424,  427,  424,
01471       972,  973,  420,  428,  428,  428,  974,  975,  415,  419,
01472 
01473       977,  427,  421,  978,  979,  428,  428,  428,  429,  429,
01474       429, 1007,  430,  422,  430,  434, 1008,  434,  423, 1009,
01475       429,  429,  429,  431,  431,  431,  435,  431,  435,  431,
01476      1011,  436,  436,  436, 1012,  436,  434,  436,  439,  439,
01477       439,  440,  440,  440,  449,  440,  449,  440, 1013,  430,
01478       439,  439,  439,  435,  441,  441,  441,  452,  452,  452,
01479       453,  453,  453,  459,  459,  459,  462,  462,  462,  463,
01480       463,  463, 1014, 1015,  453,  464,  464,  464, 1016, 1017,
01481       462,  467,  467,  467,  468,  468,  468, 1018, 1019,  464,
01482       475,  475,  475, 1020, 1021,  467,  478,  478,  478,  479,
01483 
01484       479,  479,  464,  481,  481,  481,  502,  514,  502,  514,
01485       478,  515,  516,  515,  516,  517, 1023,  517,  518,  518,
01486       518,  519,  520,  519,  520, 1024,  527,  521,  527,  521,
01487       518,  518,  518,  522,  522,  522, 1027, 1028,  517,  525,
01488       525,  525,  526,  516,  526,  522,  522,  522, 1029,  527,
01489       544,  544,  544,  515,  514,  521, 1030,  519,  523,  523,
01490       523,  556,  523,  556,  523,  524,  524,  524,  669,  520,
01491       669,  528,  528,  528,  552,  552,  552,  524,  524,  524,
01492      1031, 1032,  526,  528,  528,  528,  529,  529,  529,  604,
01493       529,  604,  529,  543,  543,  543,  553,  553,  553,  554,
01494 
01495       554,  554,  558,  558,  558, 1033,  605,  543,  605, 1034,
01496       553,  566,  566,  566,  567,  567,  567,  576,  576,  576,
01497       604,  606,  684,  606,  684,  566, 1038, 1039,  576,  603,
01498       603,  603, 1040, 1043,  576,  605,  607,  607,  607, 1044,
01499      1045,  603,  603,  603,  609,  730,  609,  730,  607,  607,
01500       607, 1046,  608,  608,  608,  606,  608, 1047,  608,  610,
01501       610,  610, 1048,  609,  611,  616,  611,  616,  617,  611,
01502       617,  610,  610,  610,  611,  615,  615,  615, 1049,  611,
01503       611,  751,  611,  751, 1050,  611,  612,  612,  612,  694,
01504       612,  694,  612,  631,  631,  631,  618,  618,  618,  619,
01505 
01506       619,  619,  617,  619,  695,  619,  695,  616,  618,  618,
01507       618,  621,  621,  621,  625,  625,  625, 1051,  626,  626,
01508       626, 1052,  632,  632,  632,  621,  694, 1054,  625,  626,
01509       633,  633,  633, 1057,  695,  626,  632,  640,  640,  640,
01510       646,  646,  646, 1060,  633,  649,  649,  649,  653,  653,
01511       653,  654,  654,  654,  646,  692,  692,  692,  696,  649,
01512       696,  700,  653,  700,  705, 1061,  705,  692,  692,  692,
01513      1062,  649,  693,  693,  693, 1063,  693,  649,  693,  646,
01514       697,  697,  697,  703,  697,  703,  697,  704,  705,  704,
01515       701,  701,  701,  702,  702,  702,  706,  702,  706,  702,
01516 
01517      1064,  696,  701,  701,  701, 1065,  705,  707,  700,  707,
01518       708,  709,  708,  709,  710,  814,  710,  814, 1066,  706,
01519       703,  811,  707,  811,  704,  711,  711,  711, 1067,  711,
01520       709,  711,  807,  708,  807, 1068,  706,  715,  715,  715,
01521       716,  716,  716, 1098,  707,  721,  721,  721,  722,  722,
01522       722,  715,  732,  732,  732,  814,  807,  710,  811,  721,
01523       733,  733,  733,  734,  734,  734,  732,  735,  735,  735,
01524       745,  745,  745,  746,  746,  746, 1099,  734,  747,  747,
01525       747,  748,  748,  748,  745, 1102, 1103,  746,  752,  752,
01526       752, 1104,  747,  753,  753,  753,  759,  759,  759,  760,
01527 
01528       760,  760,  752,  796,  796,  796,  799,  796,  799,  796,
01529       800, 1105,  800,  760,  801,  802,  801,  802,  803,  803,
01530       803,  806,  803,  806,  803,  809,  808,  809,  808,  810,
01531       812,  810,  812,  813,  815,  813,  815,  816,  899,  816,
01532       899,  801,  799,  818,  818,  818, 1106, 1107,  812,  823,
01533       823,  823,  800,  802,  901,  809,  901,  806,  808,  834,
01534       834,  834, 1108,  901,  816,  899, 1109,  813,  835,  835,
01535       835,  810,  845,  845,  845,  846,  846,  846,  847,  847,
01536       847,  815,  848,  848,  848, 1111,  845,  849,  849,  849,
01537      1116, 1120,  847,  854,  854,  854,  860,  860,  860,  861,
01538 
01539       861,  861,  862,  862,  862,  896,  896,  896, 1121, 1122,
01540       860,  897,  897,  897, 1123, 1124,  862,  896,  896,  896,
01541       898,  898,  898,  897,  897,  897,  900,  900,  900,  902,
01542       902,  902,  898,  898,  898,  903, 1125,  903,  900,  900,
01543       900,  902,  902,  902,  904,  905,  904,  905,  907, 1130,
01544       907,  906,  906,  906, 1090,  909, 1090,  909, 1131,  908,
01545       908,  908,  903,  906,  906,  906, 1134, 1002,  902, 1002,
01546       905,  908,  908,  908,  904,  910,  910,  910, 1090,  900,
01547       930,  930,  930,  935,  935,  935, 1135,  910,  910,  910,
01548      1002, 1136,  907,  909,  930,  936,  936,  936,  942,  942,
01549 
01550       942, 1137,  908,  946,  946,  946,  947,  947,  947,  948,
01551       948,  948,  942,  980,  980,  980, 1138,  981,  981,  981,
01552       947,  981,  989,  981,  989,  980,  980,  980,  982,  982,
01553       982,  983,  983,  983,  984,  984,  984,  988,  988,  988,
01554       982,  982,  982,  992,  992,  992,  984,  984,  984,  985,
01555       985,  985,  994,  985,  994,  985,  986,  986,  986,  987,
01556       987,  987, 1139, 1140,  989,  991,  991,  991,  986,  986,
01557       986,  987,  987,  987,  990, 1141,  990,  991,  991,  991,
01558       990,  993,  995,  993,  995,  996, 1142,  996,  997,  997,
01559       997, 1144,  994,  998,  998,  998, 1145,  999,  995,  999,
01560 
01561       997,  997,  997, 1000, 1000, 1000,  993, 1001, 1001, 1001,
01562      1146, 1003,  996, 1003, 1132, 1000, 1000, 1000, 1004, 1004,
01563      1004, 1132, 1147,  995,  999, 1148, 1006, 1006, 1006, 1151,
01564      1004, 1004, 1004, 1005, 1005, 1005, 1152, 1005, 1003, 1005,
01565      1006, 1010, 1010, 1010, 1022, 1022, 1022, 1025, 1025, 1025,
01566      1026, 1026, 1026, 1173, 1080, 1010, 1080, 1176, 1022, 1177,
01567      1173, 1025, 1035, 1035, 1035, 1036, 1036, 1036, 1037, 1037,
01568      1037, 1041, 1041, 1041, 1178, 1079, 1035, 1079, 1179, 1036,
01569      1069, 1069, 1069, 1082, 1069, 1082, 1069, 1072, 1072, 1072,
01570      1073, 1073, 1073, 1180, 1073, 1080, 1073, 1076, 1076, 1076,
01571 
01572      1077, 1077, 1077, 1084, 1077, 1084, 1077, 1181, 1182, 1076,
01573      1076, 1076, 1078, 1078, 1078, 1079, 1081, 1081, 1081, 1083,
01574      1086, 1083, 1086, 1183, 1083, 1082, 1084, 1186, 1197, 1085,
01575      1085, 1085, 1198, 1199, 1083, 1087, 1087, 1087, 1200, 1201,
01576      1083, 1085, 1085, 1085, 1088, 1207, 1088, 1089, 1089, 1089,
01577      1091, 1091, 1091, 1092, 1092, 1092, 1158, 1092, 1158, 1092,
01578      1208, 1086, 1091, 1091, 1091, 1095, 1095, 1095, 1096, 1096,
01579      1096, 1097, 1097, 1097, 1100, 1100, 1100, 1209, 1210, 1095,
01580      1101, 1101, 1101, 1211, 1088, 1097, 1212, 1158, 1100, 1110,
01581      1110, 1110, 1112, 1112, 1112, 1113, 1113, 1113, 1114, 1114,
01582 
01583      1114, 1213, 1214, 1110, 1215, 1156, 1112, 1156, 1216, 1113,
01584      1115, 1115, 1115, 1117, 1117, 1117, 1118, 1118, 1118, 1119,
01585      1119, 1119, 1217, 1218, 1115, 1126, 1126, 1126, 1156, 1162,
01586      1118, 1162, 1219, 1119, 1127, 1127, 1127, 1220, 1221, 1126,
01587      1128, 1128, 1128, 1129, 1129, 1129, 1153, 1153, 1153, 1159,
01588      1153, 1159, 1153, 1157, 1157, 1157, 1160, 1129, 1160, 1161,
01589      1162, 1161, 1163, 1163, 1163, 1157, 1157, 1157, 1164, 1164,
01590      1164, 1165, 1222, 1165, 1163, 1163, 1163, 1166, 1223, 1166,
01591      1160, 1167, 1161, 1167, 1224, 1226, 1159, 1168, 1168, 1168,
01592      1244, 1230, 1166, 1230, 1160, 1245, 1129, 1248, 1249, 1168,
01593 
01594      1168, 1168, 1169, 1169, 1169, 1238, 1169, 1238, 1169, 1170,
01595      1170, 1170, 1165, 1250, 1251, 1167, 1171, 1171, 1171, 1172,
01596      1172, 1172, 1174, 1174, 1174, 1175, 1175, 1175, 1252, 1253,
01597      1171, 1184, 1184, 1184, 1254, 1230, 1174, 1185, 1185, 1185,
01598      1187, 1187, 1187, 1238, 1255, 1184, 1188, 1188, 1188, 1189,
01599      1189, 1189, 1257, 1264, 1187, 1190, 1190, 1190, 1191, 1191,
01600      1191, 1192, 1192, 1192, 1193, 1193, 1193, 1265, 1266, 1190,
01601      1194, 1194, 1194, 1267, 1232, 1192, 1232, 1268, 1193, 1195,
01602      1195, 1195, 1196, 1196, 1196, 1202, 1202, 1202, 1203, 1203,
01603      1203, 1275, 1276, 1195, 1204, 1204, 1204, 1277, 1278, 1202,
01604 
01605      1205, 1205, 1205, 1206, 1206, 1206, 1232, 1227, 1204, 1227,
01606      1228, 1228, 1228, 1229, 1229, 1229, 1231, 1206, 1231, 1233,
01607      1279, 1233, 1228, 1228, 1228, 1234, 1235, 1234, 1235, 1236,
01608      1236, 1236, 1237, 1239, 1237, 1239, 1280, 1281, 1227, 1240,
01609      1240, 1240, 1282, 1240, 1283, 1240, 1243, 1243, 1243, 1246,
01610      1246, 1246, 1231, 1247, 1247, 1247, 1256, 1256, 1256, 1237,
01611      1239, 1233, 1284, 1246, 1285, 1234, 1235, 1258, 1258, 1258,
01612      1259, 1259, 1259, 1260, 1260, 1260, 1261, 1261, 1261, 1262,
01613      1262, 1262, 1263, 1263, 1263, 1286, 1287, 1260, 1269, 1269,
01614      1269, 1270, 1270, 1270, 1271, 1271, 1271, 1272, 1272, 1272,
01615 
01616      1288, 1290, 1269, 1273, 1273, 1273, 1274, 1274, 1274, 1291,
01617      1292, 1272, 1293, 1304, 1293, 1294, 1294, 1294, 1305, 1295,
01618      1274, 1295, 1296, 1297, 1296, 1297, 1298, 1299, 1298, 1299,
01619      1300, 1301, 1300, 1301, 1302, 1307, 1302, 1303, 1308, 1303,
01620      1306, 1306, 1306, 1309, 1310, 1311, 1295, 1312, 1293, 1313,
01621      1297, 1314, 1315, 1316, 1316, 1316, 1317, 1298, 1299, 1318,
01622      1319, 1319, 1319, 1296, 1320, 1321, 1322, 1322, 1322, 1326,
01623      1327, 1300, 1301, 1328, 1319, 1329, 1302, 1330, 1303, 1323,
01624      1323, 1323, 1324, 1324, 1324, 1325, 1325, 1325, 1331, 1332,
01625      1333, 1334, 1337, 1338, 1339, 1340, 1324, 1341, 1342, 1343,
01626 
01627      1353, 1343, 1344, 1345, 1344, 1345, 1332, 1346, 1354, 1346,
01628      1347, 1348, 1347, 1348, 1349, 1349, 1349, 1350, 1350, 1350,
01629      1351, 1355, 1351, 1352, 1352, 1352, 1349, 1349, 1349, 1350,
01630      1350, 1350, 1346, 1356, 1348, 1352, 1352, 1352, 1357, 1358,
01631      1359, 1343, 1360, 1344, 1363, 1345, 1364, 1347, 1361, 1361,
01632      1361, 1351, 1362, 1362, 1362, 1365, 1358, 1366, 1366, 1366,
01633      1368, 1369, 1361, 1367, 1367, 1367, 1362, 1370, 1370, 1370,
01634      1371, 1366, 1372, 1374, 1375, 1377, 1378, 1379, 1380, 1381,
01635      1382, 1384, 1385, 1386, 1387, 1400, 1387, 1388, 1388, 1388,
01636      1389, 1390, 1389, 1390, 1392, 1391, 1392, 1391, 1402, 1388,
01637 
01638      1388, 1388, 1393, 1393, 1393, 1394, 1394, 1394, 1395, 1395,
01639      1395, 1396, 1396, 1396, 1393, 1393, 1393, 1397, 1392, 1397,
01640      1395, 1395, 1395, 1403, 1405, 1387, 1398, 1398, 1398, 1406,
01641      1389, 1391, 1407, 1390, 1399, 1399, 1399, 1408, 1398, 1398,
01642      1398, 1401, 1401, 1401, 1404, 1404, 1404, 1409, 1409, 1409,
01643      1410, 1410, 1410, 1413, 1397, 1401, 1414, 1417, 1404, 1418,
01644      1419, 1409, 1411, 1411, 1411, 1412, 1412, 1412, 1415, 1415,
01645      1415, 1416, 1416, 1416, 1420, 1422, 1411, 1423, 1424, 1425,
01646      1426, 1427, 1415, 1428, 1430, 1431, 1432, 1432, 1432, 1433,
01647      1433, 1433, 1434, 1434, 1434, 1435, 1443, 1435, 1432, 1432,
01648 
01649      1432, 1433, 1433, 1433, 1436, 1437, 1436, 1437, 1438, 1447,
01650      1438, 1439, 1439, 1439, 1440, 1440, 1440, 1441, 1435, 1441,
01651      1442, 1442, 1442, 1444, 1444, 1444, 1445, 1445, 1445, 1446,
01652      1446, 1446, 1449, 1449, 1449, 1436, 1450, 1444, 1448, 1448,
01653      1448, 1451, 1438, 1446, 1452, 1453, 1437, 1454, 1454, 1454,
01654      1456, 1457, 1448, 1441, 1455, 1455, 1455, 1458, 1458, 1458,
01655      1459, 1459, 1459, 1460, 1460, 1460, 1461, 1462, 1464, 1465,
01656      1466, 1458, 1467, 1468, 1469, 1470, 1472, 1460, 1473, 1473,
01657      1473, 1474, 1474, 1474, 1475, 1475, 1475, 1476, 1485, 1476,
01658      1473, 1473, 1473, 1477, 1487, 1477, 1478, 1478, 1478, 1479,
01659 
01660      1480, 1479, 1480, 1481, 1481, 1481, 1488, 1489, 1478, 1478,
01661      1478, 1482, 1482, 1482, 1483, 1483, 1483, 1481, 1476, 1484,
01662      1484, 1484, 1486, 1486, 1486, 1490, 1479, 1491, 1483, 1492,
01663      1493, 1493, 1493, 1494, 1494, 1494, 1497, 1477, 1495, 1495,
01664      1495, 1480, 1496, 1496, 1496, 1498, 1499, 1494, 1500, 1501,
01665      1502, 1503, 1504, 1505, 1516, 1517, 1496, 1506, 1506, 1506,
01666      1507, 1508, 1507, 1508, 1509, 1509, 1509, 1510, 1510, 1510,
01667      1511, 1518, 1511, 1513, 1513, 1513, 1509, 1509, 1509, 1512,
01668      1512, 1512, 1514, 1514, 1514, 1511, 1519, 1513, 1508, 1520,
01669      1521, 1512, 1512, 1512, 1522, 1526, 1507, 1515, 1515, 1515,
01670 
01671      1523, 1523, 1523, 1524, 1524, 1524, 1525, 1525, 1525, 1527,
01672      1528, 1529, 1530, 1531, 1532, 1533, 1534, 1524, 1535, 1536,
01673      1535, 1536, 1537, 1537, 1537, 1538, 1542, 1538, 1539, 1539,
01674      1539, 1540, 1540, 1540, 1536, 1541, 1541, 1541, 1543, 1544,
01675      1539, 1539, 1539, 1545, 1545, 1545, 1546, 1547, 1548, 1549,
01676      1549, 1549, 1550, 1551, 1554, 1556, 1557, 1545, 1558, 1559,
01677      1535, 1559, 1560, 1538, 1560, 1561, 1563, 1561, 1562, 1562,
01678      1562, 1568, 1570, 1545, 1559, 1564, 1564, 1564, 1565, 1565,
01679      1565, 1566, 1566, 1566, 1567, 1567, 1567, 1571, 1572, 1564,
01680      1574, 1575, 1565, 1577, 1587, 1566, 1569, 1569, 1569, 1578,
01681 
01682      1560, 1578, 1579, 1580, 1579, 1580, 1590, 1561, 1592, 1593,
01683      1569, 1581, 1581, 1581, 1582, 1582, 1582, 1583, 1583, 1583,
01684      1594, 1584, 1584, 1584, 1595, 1581, 1603, 1605, 1582, 1585,
01685      1585, 1585, 1608, 1609, 1580, 1584, 1610, 1578, 1586, 1586,
01686      1586, 1588, 1588, 1588, 1579, 1589, 1589, 1589, 1591, 1591,
01687      1591, 1596, 1597, 1596, 1597, 1588, 1611, 1598, 1613, 1598,
01688      1613, 1616, 1591, 1599, 1599, 1599, 1600, 1600, 1600, 1601,
01689      1601, 1601, 1602, 1602, 1602, 1617, 1619, 1599, 1604, 1604,
01690      1604, 1620, 1621, 1597, 1606, 1606, 1606, 1607, 1607, 1607,
01691      1612, 1622, 1612, 1596, 1598, 1613, 1626, 1614, 1606, 1614,
01692 
01693      1615, 1615, 1615, 1618, 1618, 1618, 1623, 1627, 1623, 1624,
01694      1625, 1624, 1625, 1628, 1630, 1633, 1632, 1633, 1632, 1636,
01695      1638, 1612, 1634, 1634, 1634, 1635, 1635, 1635, 1637, 1637,
01696      1637, 1645, 1648, 1614, 1634, 1634, 1634, 1654, 1639, 1635,
01697      1639, 1656, 1637, 1623, 1660, 1624, 1640, 1640, 1640,  889,
01698       888, 1625, 1632, 1641, 1641, 1641, 1633,  887, 1640, 1640,
01699      1640, 1642, 1642, 1642,  886, 1641, 1641, 1641, 1643, 1643,
01700      1643, 1644, 1644, 1644, 1646, 1646, 1646,  885,  884, 1639,
01701       883,  881, 1643, 1647, 1647, 1647,  880,  879, 1646, 1649,
01702      1649, 1649, 1650, 1650, 1650, 1651, 1651, 1651, 1652, 1652,
01703 
01704      1652, 1649, 1649, 1649, 1650, 1650, 1650, 1653, 1653, 1653,
01705      1655, 1655, 1655, 1657, 1657, 1657, 1658, 1658, 1658, 1659,
01706      1659, 1659, 1662, 1662, 1662, 1657, 1657, 1657, 1663, 1663,
01707      1663, 1664, 1664, 1664, 1665, 1665, 1665, 1666, 1666, 1666,
01708       878,  877, 1663,  876,  875, 1664, 1668, 1668, 1668, 1668,
01709      1668, 1669, 1669, 1669, 1669, 1669, 1670, 1670, 1670, 1670,
01710      1670, 1671, 1671, 1671, 1671, 1671, 1672, 1672, 1672, 1672,
01711      1672, 1673, 1673, 1673, 1673, 1673, 1674, 1674, 1674, 1674,
01712      1674, 1675,  874,  873, 1675, 1676, 1676, 1676, 1676, 1677,
01713      1677,  872, 1677, 1677, 1678, 1678, 1678,  871, 1678,  870,
01714 
01715       869,  868,  867,  866,  865,  864,  863,  859,  858,  857,
01716       856,  855,  853,  852,  851,  850,  844,  843,  842,  841,
01717       840,  839,  838,  837,  836,  833,  832,  831,  830,  829,
01718       828,  827,  826,  825,  824,  822,  821,  820,  819,  817,
01719       794,  793,  792,  791,  790,  789,  788,  787,  786,  785,
01720       784,  783,  782,  781,  780,  779,  778,  777,  776,  775,
01721       774,  773,  772,  771,  770,  769,  768,  767,  766,  765,
01722       764,  763,  762,  761,  758,  757,  756,  755,  754,  750,
01723       749,  744,  743,  742,  741,  740,  739,  738,  737,  736,
01724       731,  729,  728,  727,  726,  725,  724,  723,  720,  719,
01725 
01726       718,  717,  714,  691,  689,  688,  687,  686,  685,  683,
01727       682,  679,  678,  677,  676,  675,  674,  673,  672,  671,
01728       670,  668,  667,  666,  665,  664,  663,  662,  661,  660,
01729       659,  658,  657,  656,  655,  652,  651,  650,  648,  647,
01730       645,  644,  643,  642,  641,  639,  638,  637,  636,  635,
01731       634,  630,  629,  628,  627,  623,  622,  620,  602,  601,
01732       600,  599,  598,  596,  595,  594,  593,  592,  591,  590,
01733       589,  588,  587,  586,  585,  584,  583,  580,  579,  578,
01734       577,  573,  572,  570,  569,  568,  565,  563,  562,  561,
01735       560,  559,  557,  555,  551,  550,  549,  548,  546,  545,
01736 
01737       542,  541,  540,  539,  538,  537,  536,  535,  534,  533,
01738       532,  513,  512,  510,  508,  507,  506,  505,  504,  503,
01739       501,  500,  499,  498,  497,  495,  494,  493,  492,  491,
01740       490,  489,  488,  487,  486,  485,  484,  483,  482,  480,
01741       477,  476,  474,  473,  472,  471,  470,  469,  466,  465,
01742       461,  460,  458,  457,  456,  455,  454,  451,  450,  448,
01743       447,  446,  445,  444,  443,  442,  413,  412,  411,  410,
01744       409,  408,  407,  406,  405,  404,  403,  402,  401,  398,
01745       397,  396,  395,  394,  393,  392,  390,  389,  387,  386,
01746       385,  384,  383,  382,  381,  380,  377,  375,  374,  371,
01747 
01748       370,  368,  366,  365,  364,  362,  361,  358,  357,  356,
01749       355,  354,  353,  350,  349,  348,  347,  346,  345,  344,
01750       343,  342,  341,  315,  314,  312,  311,  310,  309,  307,
01751       306,  305,  304,  303,  301,  300,  299,  298,  297,  296,
01752       295,  294,  293,  292,  291,  290,  289,  288,  287,  286,
01753       285,  284,  282,  281,  280,  278,  277,  276,  275,  274,
01754       273,  272,  271,  270,  269,  266,  265,  263,  262,  261,
01755       260,  259,  258,  257,  256,  231,  230,  229,  228,  227,
01756       226,  225,  224,  223,  222,  221,  220,  219,  218,  217,
01757       216,  214,  213,  212,  211,  210,  209,  208,  207,  206,
01758 
01759       205,  204,  202,  201,  200,  199,  197,  196,  195,  193,
01760       192,  191,  190,  189,  188,  187,  186,  185,  183,  182,
01761       181,  180,  179,  177,  153,  152,  151,  150,  148,  147,
01762       146,  144,  143,  142,  141,  140,  139,  138,  137,  136,
01763       134,  133,  132,  131,  130,  129,  128,  127,  125,  121,
01764       120,  119,  118,  117,  115,  114,  111,   92,   86,   85,
01765        84,   82,   78,   77,   76,   75,   74,   72,   69,   41,
01766        38,   23,   21,   17,    8,    7,    6,    5,    4,    3,
01767      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01768      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01769 
01770      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01771      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01772      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01773      1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667,
01774      1667, 1667, 1667, 1667
01775     } ;
01776 
01777 /* Table of booleans, true if rule could match eol. */
01778 static yyconst flex_int32_t yy_rule_can_match_eol[190] =
01779     {   0,
01780 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01781     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01782     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01783     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01784     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01785     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01786     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01787     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01788     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 
01789     0, 0, 0, 1, 0, 1, 1, 1, 1, 0,     };
01790 
01791 /* The intent behind this definition is that it'll catch
01792  * any uses of REJECT which flex missed.
01793  */
01794 #define REJECT reject_used_but_not_detected
01795 #define yymore() yymore_used_but_not_detected
01796 #define YY_MORE_ADJ 0
01797 #define YY_RESTORE_YY_MORE_OFFSET
01798 #line 1 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
01799 /* $Id: OSParseosol.cpp 2852 2009-07-29 05:04:05Z kmartin $ */
01814 #line 17 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
01815 
01816 #include <iostream>
01817 #include "OSDataStructures.h"
01818 #include "OSMathUtil.h"
01819 #include "OSConfig.h"
01820 
01821 #ifdef HAVE_CSTDIO
01822 # include <cstdio>
01823 #else
01824 # ifdef HAVE_STDIO_H
01825 #  include <stdio.h>
01826 # else
01827 #  error "don't have header file for stdio"
01828 # endif
01829 #endif
01830 
01831 #ifdef HAVE_CTIME
01832 # include <ctime>
01833 #else
01834 # ifdef HAVE_TIME_H
01835 #  include <time.h>
01836 # else
01837 #  error "don't have header file for time"
01838 # endif
01839 #endif
01840 
01841 #ifdef HAVE_CMATH
01842 # include <cmath>
01843 #else
01844 # ifdef HAVE_MATH_H
01845 #  include <math.h>
01846 # else
01847 #  error "don't have header file for math"
01848 # endif
01849 #endif
01850  
01851 #include <sstream>  
01852 #include "OSoLParserData.h"
01853 #include "OSErrorClass.h"
01854 #include "OSParseosol.tab.hpp"
01855 #include "OSOption.h"
01856 
01857 
01858 //#define PARSERDEBUG
01859 #ifdef PARSERDEBUG
01860         #define YY_PRINT  printf("%s", yytext);
01861 #else     
01862         #define YY_PRINT  ;
01863 #endif
01864 
01865 
01866 #ifdef WIN_
01867   #define YY_NO_UNISTD_H
01868   #include <io.h>
01869   #include <process.h>
01870   #ifdef USE_OLD_UNISTD
01871      #include<sys/unistd.h>  
01872   #endif
01873 #endif
01874 
01875 using std::cout;
01876 using std::endl;
01877 using std::ostringstream;
01878 
01879 
01880 
01881 
01882 
01883 
01884 
01885 
01886 #line 102 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
01887 #define YY_EXTRA_TYPE OSoLParserData*
01888 #line 1889 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.cpp"
01889 
01890 #define INITIAL 0
01891 #define osolattributetext 1
01892 #define doublequoteattributetext 2
01893 #define singlequoteattributetext 3
01894 #define startelement 4
01895 #define elementtext 5
01896 #define comment 6
01897 #define xmldeclaration 7
01898 
01899 #ifndef YY_NO_UNISTD_H
01900 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01901  * down here because we want the user's section 1 to have been scanned first.
01902  * The user has a chance to override it with an option.
01903  */
01904 #include <unistd.h>
01905 #endif
01906 
01907 #ifndef YY_EXTRA_TYPE
01908 #define YY_EXTRA_TYPE void *
01909 #endif
01910 
01911 /* Holds the entire state of the reentrant scanner. */
01912 struct yyguts_t
01913     {
01914 
01915     /* User-defined. Not touched by flex. */
01916     YY_EXTRA_TYPE yyextra_r;
01917 
01918     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01919     FILE *yyin_r, *yyout_r;
01920     size_t yy_buffer_stack_top; 
01921     size_t yy_buffer_stack_max; 
01922     YY_BUFFER_STATE * yy_buffer_stack; 
01923     char yy_hold_char;
01924     int yy_n_chars;
01925     int yyleng_r;
01926     char *yy_c_buf_p;
01927     int yy_init;
01928     int yy_start;
01929     int yy_did_buffer_switch_on_eof;
01930     int yy_start_stack_ptr;
01931     int yy_start_stack_depth;
01932     int *yy_start_stack;
01933     yy_state_type yy_last_accepting_state;
01934     char* yy_last_accepting_cpos;
01935 
01936     int yylineno_r;
01937     int yy_flex_debug_r;
01938 
01939     char *yytext_r;
01940     int yy_more_flag;
01941     int yy_more_len;
01942 
01943     YYSTYPE * yylval_r;
01944 
01945     YYLTYPE * yylloc_r;
01946 
01947     }; /* end struct yyguts_t */
01948 
01949 static int yy_init_globals (yyscan_t yyscanner );
01950 
01951     /* This must go here because YYSTYPE and YYLTYPE are included
01952      * from bison output in section 1.*/
01953     #    define yylval yyg->yylval_r
01954     
01955     #    define yylloc yyg->yylloc_r
01956     
01957 int osollex_init (yyscan_t* scanner);
01958 
01959 int osollex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
01960 
01961 /* Accessor methods to globals.
01962    These are made visible to non-reentrant scanners for convenience. */
01963 
01964 int osollex_destroy (yyscan_t yyscanner );
01965 
01966 int osolget_debug (yyscan_t yyscanner );
01967 
01968 void osolset_debug (int debug_flag ,yyscan_t yyscanner );
01969 
01970 YY_EXTRA_TYPE osolget_extra (yyscan_t yyscanner );
01971 
01972 void osolset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01973 
01974 FILE *osolget_in (yyscan_t yyscanner );
01975 
01976 void osolset_in  (FILE * in_str ,yyscan_t yyscanner );
01977 
01978 FILE *osolget_out (yyscan_t yyscanner );
01979 
01980 void osolset_out  (FILE * out_str ,yyscan_t yyscanner );
01981 
01982 int osolget_leng (yyscan_t yyscanner );
01983 
01984 char *osolget_text (yyscan_t yyscanner );
01985 
01986 int osolget_lineno (yyscan_t yyscanner );
01987 
01988 void osolset_lineno (int line_number ,yyscan_t yyscanner );
01989 
01990 YYSTYPE * osolget_lval (yyscan_t yyscanner );
01991 
01992 void osolset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01993 
01994        YYLTYPE *osolget_lloc (yyscan_t yyscanner );
01995     
01996         void osolset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01997     
01998 /* Macros after this point can all be overridden by user definitions in
01999  * section 1.
02000  */
02001 
02002 #ifndef YY_SKIP_YYWRAP
02003 #ifdef __cplusplus
02004 extern "C" int osolwrap (yyscan_t yyscanner );
02005 #else
02006 extern int osolwrap (yyscan_t yyscanner );
02007 #endif
02008 #endif
02009 
02010 #ifndef yytext_ptr
02011 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
02012 #endif
02013 
02014 #ifdef YY_NEED_STRLEN
02015 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
02016 #endif
02017 
02018 #ifndef YY_NO_INPUT
02019 
02020 #ifdef __cplusplus
02021 static int yyinput (yyscan_t yyscanner );
02022 #else
02023 static int input (yyscan_t yyscanner );
02024 #endif
02025 
02026 #endif
02027 
02028 /* Amount of stuff to slurp up with each read. */
02029 #ifndef YY_READ_BUF_SIZE
02030 #ifdef __ia64__
02031 /* On IA-64, the buffer size is 16k, not 8k */
02032 #define YY_READ_BUF_SIZE 16384
02033 #else
02034 #define YY_READ_BUF_SIZE 8192
02035 #endif /* __ia64__ */
02036 #endif
02037 
02038 /* Copy whatever the last rule matched to the standard output. */
02039 #ifndef ECHO
02040 /* This used to be an fputs(), but since the string might contain NUL's,
02041  * we now use fwrite().
02042  */
02043 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
02044 #endif
02045 
02046 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
02047  * is returned in "result".
02048  */
02049 #ifndef YY_INPUT
02050 #define YY_INPUT(buf,result,max_size) \
02051         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
02052                 { \
02053                 int c = '*'; \
02054                 size_t n; \
02055                 for ( n = 0; n < max_size && \
02056                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
02057                         buf[n] = (char) c; \
02058                 if ( c == '\n' ) \
02059                         buf[n++] = (char) c; \
02060                 if ( c == EOF && ferror( yyin ) ) \
02061                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
02062                 result = n; \
02063                 } \
02064         else \
02065                 { \
02066                 errno=0; \
02067                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
02068                         { \
02069                         if( errno != EINTR) \
02070                                 { \
02071                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
02072                                 break; \
02073                                 } \
02074                         errno=0; \
02075                         clearerr(yyin); \
02076                         } \
02077                 }\
02078 \
02079 
02080 #endif
02081 
02082 /* No semi-colon after return; correct usage is to write "yyterminate();" -
02083  * we don't want an extra ';' after the "return" because that will cause
02084  * some compilers to complain about unreachable statements.
02085  */
02086 #ifndef yyterminate
02087 #define yyterminate() return YY_NULL
02088 #endif
02089 
02090 /* Number of entries by which start-condition stack grows. */
02091 #ifndef YY_START_STACK_INCR
02092 #define YY_START_STACK_INCR 25
02093 #endif
02094 
02095 /* Report a fatal error. */
02096 #ifndef YY_FATAL_ERROR
02097 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
02098 #endif
02099 
02100 /* end tables serialization structures and prototypes */
02101 
02102 /* Default declaration of generated scanner - a define so the user can
02103  * easily add parameters.
02104  */
02105 #ifndef YY_DECL
02106 #define YY_DECL_IS_OURS 1
02107 
02108 extern int osollex \
02109                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
02110 
02111 #define YY_DECL int osollex \
02112                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
02113 #endif /* !YY_DECL */
02114 
02115 /* Code executed at the beginning of each rule, after yytext and yyleng
02116  * have been set up.
02117  */
02118 #ifndef YY_USER_ACTION
02119 #define YY_USER_ACTION
02120 #endif
02121 
02122 /* Code executed at the end of each rule. */
02123 #ifndef YY_BREAK
02124 #define YY_BREAK break;
02125 #endif
02126 
02127 #define YY_RULE_SETUP \
02128         YY_USER_ACTION
02129 
02132 YY_DECL
02133 {
02134         register yy_state_type yy_current_state;
02135         register char *yy_cp, *yy_bp;
02136         register int yy_act;
02137     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02138 
02139 #line 112 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02140 
02141 
02142  
02143 #line 2144 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.cpp"
02144 
02145     yylval = yylval_param;
02146 
02147     yylloc = yylloc_param;
02148 
02149         if ( !yyg->yy_init )
02150                 {
02151                 yyg->yy_init = 1;
02152 
02153 #ifdef YY_USER_INIT
02154                 YY_USER_INIT;
02155 #endif
02156 
02157                 if ( ! yyg->yy_start )
02158                         yyg->yy_start = 1;      /* first start state */
02159 
02160                 if ( ! yyin )
02161                         yyin = stdin;
02162 
02163                 if ( ! yyout )
02164                         yyout = stdout;
02165 
02166                 if ( ! YY_CURRENT_BUFFER ) {
02167                         osolensure_buffer_stack (yyscanner);
02168                         YY_CURRENT_BUFFER_LVALUE =
02169                                 osol_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02170                 }
02171 
02172                 osol_load_buffer_state(yyscanner );
02173                 }
02174 
02175         while ( 1 )             /* loops until end-of-file is reached */
02176                 {
02177                 yy_cp = yyg->yy_c_buf_p;
02178 
02179                 /* Support of yytext. */
02180                 *yy_cp = yyg->yy_hold_char;
02181 
02182                 /* yy_bp points to the position in yy_ch_buf of the start of
02183                  * the current run.
02184                  */
02185                 yy_bp = yy_cp;
02186 
02187                 yy_current_state = yyg->yy_start;
02188 yy_match:
02189                 do
02190                         {
02191                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
02192                         if ( yy_accept[yy_current_state] )
02193                                 {
02194                                 yyg->yy_last_accepting_state = yy_current_state;
02195                                 yyg->yy_last_accepting_cpos = yy_cp;
02196                                 }
02197                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02198                                 {
02199                                 yy_current_state = (int) yy_def[yy_current_state];
02200                                 if ( yy_current_state >= 1668 )
02201                                         yy_c = yy_meta[(unsigned int) yy_c];
02202                                 }
02203                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02204                         ++yy_cp;
02205                         }
02206                 while ( yy_base[yy_current_state] != 3481 );
02207 
02208 yy_find_action:
02209                 yy_act = yy_accept[yy_current_state];
02210                 if ( yy_act == 0 )
02211                         { /* have to back up */
02212                         yy_cp = yyg->yy_last_accepting_cpos;
02213                         yy_current_state = yyg->yy_last_accepting_state;
02214                         yy_act = yy_accept[yy_current_state];
02215                         }
02216 
02217                 YY_DO_BEFORE_ACTION;
02218 
02219                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
02220                         {
02221                         int yyl;
02222                         for ( yyl = 0; yyl < yyleng; ++yyl )
02223                                 if ( yytext[yyl] == '\n' )
02224                                            
02225     do{ yylineno++;
02226         yycolumn=0;
02227     }while(0)
02228 ;
02229                         }
02230 
02231 do_action:      /* This label is used only to access EOF actions. */
02232 
02233                 switch ( yy_act )
02234         { /* beginning of action switch */
02235                         case 0: /* must back up */
02236                         /* undo the effects of YY_DO_BEFORE_ACTION */
02237                         *yy_cp = yyg->yy_hold_char;
02238                         yy_cp = yyg->yy_last_accepting_cpos;
02239                         yy_current_state = yyg->yy_last_accepting_state;
02240                         goto yy_find_action;
02241 
02242 case 1:
02243 /* rule 1 can match eol */
02244 YY_RULE_SETUP
02245 #line 115 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02246 
02247         YY_BREAK
02248 /* General patterns matched in more than one element */
02249 case 2:
02250 YY_RULE_SETUP
02251 #line 119 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02252 {YY_PRINT;  yylval->sval = yytext; return(QUOTE);}
02253         YY_BREAK
02254 case 3:
02255 YY_RULE_SETUP
02256 #line 120 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02257 {YY_PRINT;  yylval->sval = yytext; return(TWOQUOTES);}
02258         YY_BREAK
02259 case 4:
02260 /* rule 4 can match eol */
02261 YY_RULE_SETUP
02262 #line 121 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02263 {YY_PRINT; return(GREATERTHAN);}
02264         YY_BREAK
02265 case 5:
02266 /* rule 5 can match eol */
02267 YY_RULE_SETUP
02268 #line 122 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02269 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
02270         YY_BREAK
02271 case 6:
02272 YY_RULE_SETUP
02273 #line 124 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02274 {YY_PRINT; 
02275 char *yytextEnd;
02276 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
02277         if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
02278                 std::ostringstream outStr;
02279                 outStr << "encountered a spurious character in the lexer" << endl;
02280                 outStr << "The first character is: ";
02281                 outStr <<  yytext;
02282                 outStr << endl;
02283                 outStr << "See line number: " << yylineno << endl;  
02284                 throw ErrorClass( outStr.str());
02285         }
02286 return(DOUBLE);}
02287         YY_BREAK
02288 case 7:
02289 /* rule 7 can match eol */
02290 YY_RULE_SETUP
02291 #line 138 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02292 {YY_PRINT;  return(ENDOFELEMENT);}
02293         YY_BREAK
02294 case 8:
02295 /* rule 8 can match eol */
02296 YY_RULE_SETUP
02297 #line 140 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02298 {YY_PRINT; return(NUMBEROFOTHEROPTIONSATT);}
02299         YY_BREAK
02300 case 9:
02301 /* rule 9 can match eol */
02302 YY_RULE_SETUP
02303 #line 141 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02304 {YY_PRINT; return(NUMBEROFJOBIDSATT);}
02305         YY_BREAK
02306 case 10:
02307 /* rule 10 can match eol */
02308 YY_RULE_SETUP
02309 #line 142 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02310 {YY_PRINT; return(NUMBEROFPATHSATT);}
02311         YY_BREAK
02312 case 11:
02313 /* rule 11 can match eol */
02314 YY_RULE_SETUP
02315 #line 143 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02316 {YY_PRINT; return(NUMBEROFPATHPAIRSATT);}
02317         YY_BREAK
02318 case 12:
02319 /* rule 12 can match eol */
02320 YY_RULE_SETUP
02321 #line 144 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02322 {YY_PRINT; return(NUMBEROFPROCESSESATT);}
02323         YY_BREAK
02324 case 13:
02325 /* rule 13 can match eol */
02326 YY_RULE_SETUP
02327 #line 145 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02328 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
02329         YY_BREAK
02330 case 14:
02331 /* rule 14 can match eol */
02332 YY_RULE_SETUP
02333 #line 146 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02334 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
02335         YY_BREAK
02336 case 15:
02337 /* rule 15 can match eol */
02338 YY_RULE_SETUP
02339 #line 147 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02340 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
02341         YY_BREAK
02342 case 16:
02343 /* rule 16 can match eol */
02344 YY_RULE_SETUP
02345 #line 148 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02346 {YY_PRINT; return(NUMBEROFOTHERVARIABLEOPTIONSATT);}
02347         YY_BREAK
02348 case 17:
02349 /* rule 17 can match eol */
02350 YY_RULE_SETUP
02351 #line 149 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02352 {YY_PRINT; return(NUMBEROFVARATT);}
02353         YY_BREAK
02354 case 18:
02355 /* rule 18 can match eol */
02356 YY_RULE_SETUP
02357 #line 150 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02358 {YY_PRINT; return(NUMBEROFSOSATT);}
02359         YY_BREAK
02360 case 19:
02361 /* rule 19 can match eol */
02362 YY_RULE_SETUP
02363 #line 151 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02364 {YY_PRINT; return(NUMBEROFOTHEROBJECTIVEOPTIONSATT);}
02365         YY_BREAK
02366 case 20:
02367 /* rule 20 can match eol */
02368 YY_RULE_SETUP
02369 #line 152 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02370 {YY_PRINT; return(NUMBEROFOBJATT);}
02371         YY_BREAK
02372 case 21:
02373 /* rule 21 can match eol */
02374 YY_RULE_SETUP
02375 #line 153 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02376 {YY_PRINT; return(NUMBEROFOTHERCONSTRAINTOPTIONSATT);}
02377         YY_BREAK
02378 case 22:
02379 /* rule 22 can match eol */
02380 YY_RULE_SETUP
02381 #line 154 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02382 {YY_PRINT; return(NUMBEROFCONATT);}
02383         YY_BREAK
02384 case 23:
02385 /* rule 23 can match eol */
02386 YY_RULE_SETUP
02387 #line 155 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02388 {YY_PRINT; return(NUMBEROFSOLVEROPTIONSATT);}
02389         YY_BREAK
02390 case 24:
02391 /* rule 24 can match eol */
02392 YY_RULE_SETUP
02393 #line 156 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02394 {YY_PRINT; return(IDXATT);}
02395         YY_BREAK
02396 case 25:
02397 /* rule 25 can match eol */
02398 YY_RULE_SETUP
02399 #line 157 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02400 {YY_PRINT; return(SOSIDXATT);}
02401         YY_BREAK
02402 case 26:
02403 /* rule 26 can match eol */
02404 YY_RULE_SETUP
02405 #line 158 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02406 {YY_PRINT; return(GROUPWEIGHTATT);}
02407         YY_BREAK
02408 case 27:
02409 /* rule 27 can match eol */
02410 YY_RULE_SETUP
02411 #line 160 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02412 {YY_PRINT; BEGIN doublequoteattributetext; return(LOCATIONTYPEATT);}
02413         YY_BREAK
02414 case 28:
02415 /* rule 28 can match eol */
02416 YY_RULE_SETUP
02417 #line 161 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02418 {YY_PRINT; BEGIN singlequoteattributetext; return(LOCATIONTYPEATT);}
02419         YY_BREAK
02420 case 29:
02421 /* rule 29 can match eol */
02422 YY_RULE_SETUP
02423 #line 162 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02424 {YY_PRINT; BEGIN doublequoteattributetext; return(TRANSPORTTYPEATT);}
02425         YY_BREAK
02426 case 30:
02427 /* rule 30 can match eol */
02428 YY_RULE_SETUP
02429 #line 163 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02430 {YY_PRINT; BEGIN singlequoteattributetext; return(TRANSPORTTYPEATT);}
02431         YY_BREAK
02432 case 31:
02433 /* rule 31 can match eol */
02434 YY_RULE_SETUP
02435 #line 164 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02436 {YY_PRINT; BEGIN doublequoteattributetext; return(NAMEATT);}
02437         YY_BREAK
02438 case 32:
02439 /* rule 32 can match eol */
02440 YY_RULE_SETUP
02441 #line 165 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02442 {YY_PRINT; BEGIN singlequoteattributetext; return(NAMEATT);}
02443         YY_BREAK
02444 case 33:
02445 /* rule 33 can match eol */
02446 YY_RULE_SETUP
02447 #line 166 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02448 {YY_PRINT; BEGIN doublequoteattributetext; return(VALUEATT);}
02449         YY_BREAK
02450 case 34:
02451 /* rule 34 can match eol */
02452 YY_RULE_SETUP
02453 #line 167 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02454 {YY_PRINT; BEGIN singlequoteattributetext; return(VALUEATT);}
02455         YY_BREAK
02456 case 35:
02457 /* rule 35 can match eol */
02458 YY_RULE_SETUP
02459 #line 168 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02460 {YY_PRINT; BEGIN doublequoteattributetext; return(DESCRIPTIONATT);}
02461         YY_BREAK
02462 case 36:
02463 /* rule 36 can match eol */
02464 YY_RULE_SETUP
02465 #line 169 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02466 {YY_PRINT; BEGIN singlequoteattributetext; return(DESCRIPTIONATT);}
02467         YY_BREAK
02468 case 37:
02469 /* rule 37 can match eol */
02470 YY_RULE_SETUP
02471 #line 170 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02472 {YY_PRINT; BEGIN doublequoteattributetext; return(UNITATT);}
02473         YY_BREAK
02474 case 38:
02475 /* rule 38 can match eol */
02476 YY_RULE_SETUP
02477 #line 171 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02478 {YY_PRINT; BEGIN singlequoteattributetext; return(UNITATT);}
02479         YY_BREAK
02480 case 39:
02481 /* rule 39 can match eol */
02482 YY_RULE_SETUP
02483 #line 172 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02484 {YY_PRINT; BEGIN doublequoteattributetext; return(FROMATT);}
02485         YY_BREAK
02486 case 40:
02487 /* rule 40 can match eol */
02488 YY_RULE_SETUP
02489 #line 173 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02490 {YY_PRINT; BEGIN singlequoteattributetext; return(FROMATT);}
02491         YY_BREAK
02492 case 41:
02493 /* rule 41 can match eol */
02494 YY_RULE_SETUP
02495 #line 174 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02496 {YY_PRINT; BEGIN doublequoteattributetext; return(TOATT);}
02497         YY_BREAK
02498 case 42:
02499 /* rule 42 can match eol */
02500 YY_RULE_SETUP
02501 #line 175 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02502 {YY_PRINT; BEGIN singlequoteattributetext; return(TOATT);}
02503         YY_BREAK
02504 case 43:
02505 /* rule 43 can match eol */
02506 YY_RULE_SETUP
02507 #line 176 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02508 {YY_PRINT; BEGIN doublequoteattributetext; return(MAKECOPYATT);}
02509         YY_BREAK
02510 case 44:
02511 /* rule 44 can match eol */
02512 YY_RULE_SETUP
02513 #line 177 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02514 {YY_PRINT; BEGIN singlequoteattributetext; return(MAKECOPYATT);}
02515         YY_BREAK
02516 case 45:
02517 /* rule 45 can match eol */
02518 YY_RULE_SETUP
02519 #line 178 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02520 {YY_PRINT; BEGIN doublequoteattributetext; return(SOLVERATT);}
02521         YY_BREAK
02522 case 46:
02523 /* rule 46 can match eol */
02524 YY_RULE_SETUP
02525 #line 179 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02526 {YY_PRINT; BEGIN singlequoteattributetext; return(SOLVERATT);}
02527         YY_BREAK
02528 case 47:
02529 /* rule 47 can match eol */
02530 YY_RULE_SETUP
02531 #line 180 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02532 {YY_PRINT; BEGIN doublequoteattributetext; return(CATEGORYATT);}
02533         YY_BREAK
02534 case 48:
02535 /* rule 48 can match eol */
02536 YY_RULE_SETUP
02537 #line 181 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02538 {YY_PRINT; BEGIN singlequoteattributetext; return(CATEGORYATT);}
02539         YY_BREAK
02540 case 49:
02541 /* rule 49 can match eol */
02542 YY_RULE_SETUP
02543 #line 182 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02544 {YY_PRINT; BEGIN doublequoteattributetext; return(TYPEATT);}
02545         YY_BREAK
02546 case 50:
02547 /* rule 50 can match eol */
02548 YY_RULE_SETUP
02549 #line 183 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02550 {YY_PRINT; BEGIN singlequoteattributetext; return(TYPEATT);}
02551         YY_BREAK
02552 case 51:
02553 /* rule 51 can match eol */
02554 YY_RULE_SETUP
02555 #line 184 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02556 {YY_PRINT; BEGIN doublequoteattributetext; return(LBVALUEATT);}
02557         YY_BREAK
02558 case 52:
02559 /* rule 52 can match eol */
02560 YY_RULE_SETUP
02561 #line 185 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02562 {YY_PRINT; BEGIN singlequoteattributetext; return(LBVALUEATT);}
02563         YY_BREAK
02564 case 53:
02565 /* rule 53 can match eol */
02566 YY_RULE_SETUP
02567 #line 186 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02568 {YY_PRINT; BEGIN doublequoteattributetext; return(UBVALUEATT);}
02569         YY_BREAK
02570 case 54:
02571 /* rule 54 can match eol */
02572 YY_RULE_SETUP
02573 #line 187 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02574 {YY_PRINT; BEGIN singlequoteattributetext; return(UBVALUEATT);}
02575         YY_BREAK
02576 case 55:
02577 /* rule 55 can match eol */
02578 YY_RULE_SETUP
02579 #line 189 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02580 {YY_PRINT; BEGIN doublequoteattributetext; return(LBDUALVALUEATT);}
02581         YY_BREAK
02582 case 56:
02583 /* rule 56 can match eol */
02584 YY_RULE_SETUP
02585 #line 190 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02586 {YY_PRINT; BEGIN singlequoteattributetext; return(LBDUALVALUEATT);}
02587         YY_BREAK
02588 case 57:
02589 /* rule 57 can match eol */
02590 YY_RULE_SETUP
02591 #line 191 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02592 {YY_PRINT; BEGIN doublequoteattributetext; return(UBDUALVALUEATT);}
02593         YY_BREAK
02594 case 58:
02595 /* rule 58 can match eol */
02596 YY_RULE_SETUP
02597 #line 192 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02598 {YY_PRINT; BEGIN singlequoteattributetext; return(UBDUALVALUEATT);}
02599         YY_BREAK
02600 case 59:
02601 /* rule 59 can match eol */
02602 YY_RULE_SETUP
02603 #line 195 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02604 {return(OSOLSTARTEMPTY);}
02605         YY_BREAK
02606 case 60:
02607 /* rule 60 can match eol */
02608 YY_RULE_SETUP
02609 #line 196 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02610 {YY_PRINT; BEGIN osolattributetext;  return(OSOLSTART);}
02611         YY_BREAK
02612 case 61:
02613 /* rule 61 can match eol */
02614 YY_RULE_SETUP
02615 #line 198 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02616 {YY_PRINT; return(OSOLEND);}
02617         YY_BREAK
02618 case 62:
02619 /* rule 62 can match eol */
02620 YY_RULE_SETUP
02621 #line 199 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02622 {YY_PRINT; return(GENERALSTART);}
02623         YY_BREAK
02624 case 63:
02625 /* rule 63 can match eol */
02626 YY_RULE_SETUP
02627 #line 200 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02628 {YY_PRINT; return(GENERALEND);}
02629         YY_BREAK
02630 case 64:
02631 /* rule 64 can match eol */
02632 YY_RULE_SETUP
02633 #line 201 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02634 {YY_PRINT; return(SYSTEMSTART);}
02635         YY_BREAK
02636 case 65:
02637 /* rule 65 can match eol */
02638 YY_RULE_SETUP
02639 #line 202 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02640 {YY_PRINT; return(SYSTEMEND);}
02641         YY_BREAK
02642 case 66:
02643 /* rule 66 can match eol */
02644 YY_RULE_SETUP
02645 #line 203 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02646 {YY_PRINT; return(SERVICESTART);}
02647         YY_BREAK
02648 case 67:
02649 /* rule 67 can match eol */
02650 YY_RULE_SETUP
02651 #line 204 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02652 {YY_PRINT; return(SERVICEEND);}
02653         YY_BREAK
02654 case 68:
02655 /* rule 68 can match eol */
02656 YY_RULE_SETUP
02657 #line 205 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02658 {YY_PRINT; return(JOBSTART);}
02659         YY_BREAK
02660 case 69:
02661 /* rule 69 can match eol */
02662 YY_RULE_SETUP
02663 #line 206 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02664 {YY_PRINT; return(JOBEND);}
02665         YY_BREAK
02666 case 70:
02667 /* rule 70 can match eol */
02668 YY_RULE_SETUP
02669 #line 207 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02670 {YY_PRINT; return(OPTIMIZATIONSTART);}
02671         YY_BREAK
02672 case 71:
02673 /* rule 71 can match eol */
02674 YY_RULE_SETUP
02675 #line 208 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02676 {YY_PRINT; return(OPTIMIZATIONEND);}
02677         YY_BREAK
02678 case 72:
02679 /* rule 72 can match eol */
02680 YY_RULE_SETUP
02681 #line 210 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02682 {YY_PRINT; return(SERVICEURISTART);}
02683         YY_BREAK
02684 case 73:
02685 /* rule 73 can match eol */
02686 YY_RULE_SETUP
02687 #line 211 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02688 {YY_PRINT; return(SERVICEURIEND);}
02689         YY_BREAK
02690 case 74:
02691 /* rule 74 can match eol */
02692 YY_RULE_SETUP
02693 #line 212 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02694 {YY_PRINT; return(SERVICENAMESTART);}
02695         YY_BREAK
02696 case 75:
02697 /* rule 75 can match eol */
02698 YY_RULE_SETUP
02699 #line 213 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02700 {YY_PRINT; return(SERVICENAMEEND);}
02701         YY_BREAK
02702 case 76:
02703 /* rule 76 can match eol */
02704 YY_RULE_SETUP
02705 #line 214 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02706 {YY_PRINT; return(INSTANCENAMESTART);}
02707         YY_BREAK
02708 case 77:
02709 /* rule 77 can match eol */
02710 YY_RULE_SETUP
02711 #line 215 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02712 {YY_PRINT; return(INSTANCENAMEEND);}
02713         YY_BREAK
02714 case 78:
02715 /* rule 78 can match eol */
02716 YY_RULE_SETUP
02717 #line 216 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02718 {YY_PRINT; return(INSTANCELOCATIONSTART);}
02719         YY_BREAK
02720 case 79:
02721 /* rule 79 can match eol */
02722 YY_RULE_SETUP
02723 #line 217 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02724 {YY_PRINT; return(INSTANCELOCATIONEND);}
02725         YY_BREAK
02726 case 80:
02727 /* rule 80 can match eol */
02728 YY_RULE_SETUP
02729 #line 218 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02730 {YY_PRINT; return(JOBIDSTART);}
02731         YY_BREAK
02732 case 81:
02733 /* rule 81 can match eol */
02734 YY_RULE_SETUP
02735 #line 219 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02736 {YY_PRINT; return(JOBIDEND);}
02737         YY_BREAK
02738 case 82:
02739 /* rule 82 can match eol */
02740 YY_RULE_SETUP
02741 #line 220 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02742 {YY_PRINT; return(SOLVERTOINVOKESTART);}
02743         YY_BREAK
02744 case 83:
02745 /* rule 83 can match eol */
02746 YY_RULE_SETUP
02747 #line 221 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02748 {YY_PRINT; return(SOLVERTOINVOKEEND);}
02749         YY_BREAK
02750 case 84:
02751 /* rule 84 can match eol */
02752 YY_RULE_SETUP
02753 #line 222 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02754 {YY_PRINT; return(LICENSESTART);}
02755         YY_BREAK
02756 case 85:
02757 /* rule 85 can match eol */
02758 YY_RULE_SETUP
02759 #line 223 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02760 {YY_PRINT; return(LICENSEEND);}
02761         YY_BREAK
02762 case 86:
02763 /* rule 86 can match eol */
02764 YY_RULE_SETUP
02765 #line 224 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02766 {YY_PRINT; return(USERNAMESTART);}
02767         YY_BREAK
02768 case 87:
02769 /* rule 87 can match eol */
02770 YY_RULE_SETUP
02771 #line 225 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02772 {YY_PRINT; return(USERNAMEEND);}
02773         YY_BREAK
02774 case 88:
02775 /* rule 88 can match eol */
02776 YY_RULE_SETUP
02777 #line 226 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02778 {YY_PRINT; return(PASSWORDSTART);}
02779         YY_BREAK
02780 case 89:
02781 /* rule 89 can match eol */
02782 YY_RULE_SETUP
02783 #line 227 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02784 {YY_PRINT; return(PASSWORDEND);}
02785         YY_BREAK
02786 case 90:
02787 /* rule 90 can match eol */
02788 YY_RULE_SETUP
02789 #line 228 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02790 {YY_PRINT; return(CONTACTSTART);}
02791         YY_BREAK
02792 case 91:
02793 /* rule 91 can match eol */
02794 YY_RULE_SETUP
02795 #line 229 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02796 {YY_PRINT; return(CONTACTEND);}
02797         YY_BREAK
02798 case 92:
02799 /* rule 92 can match eol */
02800 YY_RULE_SETUP
02801 #line 230 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02802 {YY_PRINT; return(OTHEROPTIONSSTART);}
02803         YY_BREAK
02804 case 93:
02805 /* rule 93 can match eol */
02806 YY_RULE_SETUP
02807 #line 231 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02808 {YY_PRINT; return(OTHEROPTIONSEND);}
02809         YY_BREAK
02810 case 94:
02811 /* rule 94 can match eol */
02812 YY_RULE_SETUP
02813 #line 232 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02814 {YY_PRINT; return(OTHERSTART);}
02815         YY_BREAK
02816 case 95:
02817 /* rule 95 can match eol */
02818 YY_RULE_SETUP
02819 #line 233 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02820 {YY_PRINT; return(OTHEREND);}
02821         YY_BREAK
02822 case 96:
02823 /* rule 96 can match eol */
02824 YY_RULE_SETUP
02825 #line 235 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02826 {YY_PRINT; return(MINDISKSPACESTART);}
02827         YY_BREAK
02828 case 97:
02829 /* rule 97 can match eol */
02830 YY_RULE_SETUP
02831 #line 236 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02832 {YY_PRINT; return(MINDISKSPACEEND);}
02833         YY_BREAK
02834 case 98:
02835 /* rule 98 can match eol */
02836 YY_RULE_SETUP
02837 #line 237 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02838 {YY_PRINT; return(MINMEMORYSIZESTART);}
02839         YY_BREAK
02840 case 99:
02841 /* rule 99 can match eol */
02842 YY_RULE_SETUP
02843 #line 238 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02844 {YY_PRINT; return(MINMEMORYSIZEEND);}
02845         YY_BREAK
02846 case 100:
02847 /* rule 100 can match eol */
02848 YY_RULE_SETUP
02849 #line 239 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02850 {YY_PRINT; return(MINCPUSPEEDSTART);}
02851         YY_BREAK
02852 case 101:
02853 /* rule 101 can match eol */
02854 YY_RULE_SETUP
02855 #line 240 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02856 {YY_PRINT; return(MINCPUSPEEDEND);}
02857         YY_BREAK
02858 case 102:
02859 /* rule 102 can match eol */
02860 YY_RULE_SETUP
02861 #line 241 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02862 {YY_PRINT; return(MINCPUNUMBERSTART);}
02863         YY_BREAK
02864 case 103:
02865 /* rule 103 can match eol */
02866 YY_RULE_SETUP
02867 #line 242 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02868 {YY_PRINT; return(MINCPUNUMBEREND);}
02869         YY_BREAK
02870 case 104:
02871 /* rule 104 can match eol */
02872 YY_RULE_SETUP
02873 #line 244 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02874 {YY_PRINT; return(SERVICETYPESTART);}
02875         YY_BREAK
02876 case 105:
02877 /* rule 105 can match eol */
02878 YY_RULE_SETUP
02879 #line 245 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02880 {YY_PRINT; return(SERVICETYPEEND);}
02881         YY_BREAK
02882 case 106:
02883 /* rule 106 can match eol */
02884 YY_RULE_SETUP
02885 #line 247 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02886 {YY_PRINT; return(MAXTIMESTART);}
02887         YY_BREAK
02888 case 107:
02889 /* rule 107 can match eol */
02890 YY_RULE_SETUP
02891 #line 248 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02892 {YY_PRINT; return(MAXTIMEEND);}
02893         YY_BREAK
02894 case 108:
02895 /* rule 108 can match eol */
02896 YY_RULE_SETUP
02897 #line 249 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02898 {YY_PRINT; return(REQUESTEDSTARTTIMESTART);}
02899         YY_BREAK
02900 case 109:
02901 /* rule 109 can match eol */
02902 YY_RULE_SETUP
02903 #line 250 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02904 {YY_PRINT; return(REQUESTEDSTARTTIMEEND);}
02905         YY_BREAK
02906 case 110:
02907 /* rule 110 can match eol */
02908 YY_RULE_SETUP
02909 #line 251 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02910 {YY_PRINT; return(DEPENDENCIESSTART);}
02911         YY_BREAK
02912 case 111:
02913 /* rule 111 can match eol */
02914 YY_RULE_SETUP
02915 #line 252 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02916 {YY_PRINT; return(DEPENDENCIESEND);}
02917         YY_BREAK
02918 case 112:
02919 /* rule 112 can match eol */
02920 YY_RULE_SETUP
02921 #line 253 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02922 {YY_PRINT; return(REQUIREDDIRECTORIESSTART);}
02923         YY_BREAK
02924 case 113:
02925 /* rule 113 can match eol */
02926 YY_RULE_SETUP
02927 #line 254 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02928 {YY_PRINT; return(REQUIREDDIRECTORIESEND);}
02929         YY_BREAK
02930 case 114:
02931 /* rule 114 can match eol */
02932 YY_RULE_SETUP
02933 #line 255 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02934 {YY_PRINT; return(PATHSTART);}
02935         YY_BREAK
02936 case 115:
02937 /* rule 115 can match eol */
02938 YY_RULE_SETUP
02939 #line 256 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02940 {YY_PRINT; return(PATHEND);}
02941         YY_BREAK
02942 case 116:
02943 /* rule 116 can match eol */
02944 YY_RULE_SETUP
02945 #line 257 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02946 {YY_PRINT; return(REQUIREDFILESSTART);}
02947         YY_BREAK
02948 case 117:
02949 /* rule 117 can match eol */
02950 YY_RULE_SETUP
02951 #line 258 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02952 {YY_PRINT; return(REQUIREDFILESEND);}
02953         YY_BREAK
02954 case 118:
02955 /* rule 118 can match eol */
02956 YY_RULE_SETUP
02957 #line 259 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02958 {YY_PRINT; return(DIRECTORIESTOMAKESTART);}
02959         YY_BREAK
02960 case 119:
02961 /* rule 119 can match eol */
02962 YY_RULE_SETUP
02963 #line 260 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02964 {YY_PRINT; return(DIRECTORIESTOMAKEEND);}
02965         YY_BREAK
02966 case 120:
02967 /* rule 120 can match eol */
02968 YY_RULE_SETUP
02969 #line 261 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02970 {YY_PRINT; return(FILESTOMAKESTART);}
02971         YY_BREAK
02972 case 121:
02973 /* rule 121 can match eol */
02974 YY_RULE_SETUP
02975 #line 262 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02976 {YY_PRINT; return(FILESTOMAKEEND);}
02977         YY_BREAK
02978 case 122:
02979 /* rule 122 can match eol */
02980 YY_RULE_SETUP
02981 #line 263 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02982 {YY_PRINT; return(INPUTDIRECTORIESTOMOVESTART);}
02983         YY_BREAK
02984 case 123:
02985 /* rule 123 can match eol */
02986 YY_RULE_SETUP
02987 #line 264 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02988 {YY_PRINT; return(INPUTDIRECTORIESTOMOVEEND);}
02989         YY_BREAK
02990 case 124:
02991 /* rule 124 can match eol */
02992 YY_RULE_SETUP
02993 #line 265 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
02994 {YY_PRINT; return(INPUTFILESTOMOVESTART);}
02995         YY_BREAK
02996 case 125:
02997 /* rule 125 can match eol */
02998 YY_RULE_SETUP
02999 #line 266 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03000 {YY_PRINT; return(INPUTFILESTOMOVEEND);}
03001         YY_BREAK
03002 case 126:
03003 /* rule 126 can match eol */
03004 YY_RULE_SETUP
03005 #line 267 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03006 {YY_PRINT; return(PATHPAIRSTART);}
03007         YY_BREAK
03008 case 127:
03009 /* rule 127 can match eol */
03010 YY_RULE_SETUP
03011 #line 268 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03012 {YY_PRINT; return(PATHPAIREND);}
03013         YY_BREAK
03014 case 128:
03015 /* rule 128 can match eol */
03016 YY_RULE_SETUP
03017 #line 269 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03018 {YY_PRINT; return(OUTPUTDIRECTORIESTOMOVESTART);}
03019         YY_BREAK
03020 case 129:
03021 /* rule 129 can match eol */
03022 YY_RULE_SETUP
03023 #line 270 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03024 {YY_PRINT; return(OUTPUTDIRECTORIESTOMOVEEND);}
03025         YY_BREAK
03026 case 130:
03027 /* rule 130 can match eol */
03028 YY_RULE_SETUP
03029 #line 271 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03030 {YY_PRINT; return(OUTPUTFILESTOMOVESTART);}
03031         YY_BREAK
03032 case 131:
03033 /* rule 131 can match eol */
03034 YY_RULE_SETUP
03035 #line 272 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03036 {YY_PRINT; return(OUTPUTFILESTOMOVEEND);}
03037         YY_BREAK
03038 case 132:
03039 /* rule 132 can match eol */
03040 YY_RULE_SETUP
03041 #line 273 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03042 {YY_PRINT; return(DIRECTORIESTODELETESTART);}
03043         YY_BREAK
03044 case 133:
03045 /* rule 133 can match eol */
03046 YY_RULE_SETUP
03047 #line 274 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03048 {YY_PRINT; return(DIRECTORIESTODELETEEND);}
03049         YY_BREAK
03050 case 134:
03051 /* rule 134 can match eol */
03052 YY_RULE_SETUP
03053 #line 275 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03054 {YY_PRINT; return(FILESTODELETESTART);}
03055         YY_BREAK
03056 case 135:
03057 /* rule 135 can match eol */
03058 YY_RULE_SETUP
03059 #line 276 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03060 {YY_PRINT; return(FILESTODELETEEND);}
03061         YY_BREAK
03062 case 136:
03063 /* rule 136 can match eol */
03064 YY_RULE_SETUP
03065 #line 277 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03066 {YY_PRINT; return(PROCESSESTOKILLSTART);}
03067         YY_BREAK
03068 case 137:
03069 /* rule 137 can match eol */
03070 YY_RULE_SETUP
03071 #line 278 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03072 {YY_PRINT; return(PROCESSESTOKILLEND);}
03073         YY_BREAK
03074 case 138:
03075 /* rule 138 can match eol */
03076 YY_RULE_SETUP
03077 #line 279 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03078 {YY_PRINT; return(PROCESSSTART);}
03079         YY_BREAK
03080 case 139:
03081 /* rule 139 can match eol */
03082 YY_RULE_SETUP
03083 #line 280 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03084 {YY_PRINT; return(PROCESSEND);}
03085         YY_BREAK
03086 case 140:
03087 /* rule 140 can match eol */
03088 YY_RULE_SETUP
03089 #line 283 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03090 {YY_PRINT; return(VARIABLESSTART);}
03091         YY_BREAK
03092 case 141:
03093 /* rule 141 can match eol */
03094 YY_RULE_SETUP
03095 #line 284 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03096 {YY_PRINT; return(VARIABLESEND);}
03097         YY_BREAK
03098 case 142:
03099 /* rule 142 can match eol */
03100 YY_RULE_SETUP
03101 #line 285 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03102 {YY_PRINT; return(INITIALVARIABLEVALUESSTART);}
03103         YY_BREAK
03104 case 143:
03105 /* rule 143 can match eol */
03106 YY_RULE_SETUP
03107 #line 286 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03108 {YY_PRINT; return(INITIALVARIABLEVALUESEND);}
03109         YY_BREAK
03110 case 144:
03111 /* rule 144 can match eol */
03112 YY_RULE_SETUP
03113 #line 287 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03114 {YY_PRINT; return(INITIALVARIABLEVALUESSTRINGSTART);}
03115         YY_BREAK
03116 case 145:
03117 /* rule 145 can match eol */
03118 YY_RULE_SETUP
03119 #line 288 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03120 {YY_PRINT; return(INITIALVARIABLEVALUESSTRINGEND);}
03121         YY_BREAK
03122 case 146:
03123 /* rule 146 can match eol */
03124 YY_RULE_SETUP
03125 #line 289 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03126 {YY_PRINT; return(INITIALBASISSTATUSSTART);}
03127         YY_BREAK
03128 case 147:
03129 /* rule 147 can match eol */
03130 YY_RULE_SETUP
03131 #line 290 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03132 {YY_PRINT; return(INITIALBASISSTATUSEND);}
03133         YY_BREAK
03134 case 148:
03135 /* rule 148 can match eol */
03136 YY_RULE_SETUP
03137 #line 291 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03138 {YY_PRINT; return(INTEGERVARIABLEBRANCHINGWEIGHTSSTART);}
03139         YY_BREAK
03140 case 149:
03141 /* rule 149 can match eol */
03142 YY_RULE_SETUP
03143 #line 292 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03144 {YY_PRINT; return(INTEGERVARIABLEBRANCHINGWEIGHTSEND);}
03145         YY_BREAK
03146 case 150:
03147 /* rule 150 can match eol */
03148 YY_RULE_SETUP
03149 #line 293 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03150 {YY_PRINT; return(SOSVARIABLEBRANCHINGWEIGHTSSTART);}
03151         YY_BREAK
03152 case 151:
03153 /* rule 151 can match eol */
03154 YY_RULE_SETUP
03155 #line 294 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03156 {YY_PRINT; return(SOSVARIABLEBRANCHINGWEIGHTSEND);}
03157         YY_BREAK
03158 case 152:
03159 /* rule 152 can match eol */
03160 YY_RULE_SETUP
03161 #line 295 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03162 {YY_PRINT; return(SOSSTART);}
03163         YY_BREAK
03164 case 153:
03165 /* rule 153 can match eol */
03166 YY_RULE_SETUP
03167 #line 296 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03168 {YY_PRINT; return(SOSEND);}
03169         YY_BREAK
03170 case 154:
03171 /* rule 154 can match eol */
03172 YY_RULE_SETUP
03173 #line 297 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03174 {YY_PRINT; return(VARSTART);}
03175         YY_BREAK
03176 case 155:
03177 /* rule 155 can match eol */
03178 YY_RULE_SETUP
03179 #line 298 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03180 {YY_PRINT; return(VAREND);}
03181         YY_BREAK
03182 case 156:
03183 /* rule 156 can match eol */
03184 YY_RULE_SETUP
03185 #line 299 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03186 {YY_PRINT; return(OBJECTIVESSTART);}
03187         YY_BREAK
03188 case 157:
03189 /* rule 157 can match eol */
03190 YY_RULE_SETUP
03191 #line 300 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03192 {YY_PRINT; return(OBJECTIVESEND);}
03193         YY_BREAK
03194 case 158:
03195 /* rule 158 can match eol */
03196 YY_RULE_SETUP
03197 #line 301 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03198 {YY_PRINT; return(INITIALOBJECTIVEVALUESSTART);}
03199         YY_BREAK
03200 case 159:
03201 /* rule 159 can match eol */
03202 YY_RULE_SETUP
03203 #line 302 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03204 {YY_PRINT; return(INITIALOBJECTIVEVALUESEND);}
03205         YY_BREAK
03206 case 160:
03207 /* rule 160 can match eol */
03208 YY_RULE_SETUP
03209 #line 303 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03210 {YY_PRINT; return(OBJSTART);}
03211         YY_BREAK
03212 case 161:
03213 /* rule 161 can match eol */
03214 YY_RULE_SETUP
03215 #line 304 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03216 {YY_PRINT; return(OBJEND);}
03217         YY_BREAK
03218 case 162:
03219 /* rule 162 can match eol */
03220 YY_RULE_SETUP
03221 #line 305 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03222 {YY_PRINT; return(INITIALOBJECTIVEBOUNDSSTART);}
03223         YY_BREAK
03224 case 163:
03225 /* rule 163 can match eol */
03226 YY_RULE_SETUP
03227 #line 306 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03228 {YY_PRINT; return(INITIALOBJECTIVEBOUNDSEND);}
03229         YY_BREAK
03230 case 164:
03231 /* rule 164 can match eol */
03232 YY_RULE_SETUP
03233 #line 307 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03234 {YY_PRINT; return(CONSTRAINTSSTART);}
03235         YY_BREAK
03236 case 165:
03237 /* rule 165 can match eol */
03238 YY_RULE_SETUP
03239 #line 308 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03240 {YY_PRINT; return(CONSTRAINTSEND);}
03241         YY_BREAK
03242 case 166:
03243 /* rule 166 can match eol */
03244 YY_RULE_SETUP
03245 #line 309 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03246 {YY_PRINT; return(INITIALCONSTRAINTVALUESSTART);}
03247         YY_BREAK
03248 case 167:
03249 /* rule 167 can match eol */
03250 YY_RULE_SETUP
03251 #line 310 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03252 {YY_PRINT; return(INITIALCONSTRAINTVALUESEND);}
03253         YY_BREAK
03254 case 168:
03255 /* rule 168 can match eol */
03256 YY_RULE_SETUP
03257 #line 311 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03258 {YY_PRINT; return(CONSTART);}
03259         YY_BREAK
03260 case 169:
03261 /* rule 169 can match eol */
03262 YY_RULE_SETUP
03263 #line 312 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03264 {YY_PRINT; return(CONEND);}
03265         YY_BREAK
03266 case 170:
03267 /* rule 170 can match eol */
03268 YY_RULE_SETUP
03269 #line 313 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03270 {YY_PRINT; return(INITIALDUALVALUESSTART);}
03271         YY_BREAK
03272 case 171:
03273 /* rule 171 can match eol */
03274 YY_RULE_SETUP
03275 #line 314 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03276 {YY_PRINT; return(INITIALDUALVALUESEND);}
03277         YY_BREAK
03278 case 172:
03279 /* rule 172 can match eol */
03280 YY_RULE_SETUP
03281 #line 315 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03282 {YY_PRINT; return(SOLVEROPTIONSSTART);}
03283         YY_BREAK
03284 case 173:
03285 /* rule 173 can match eol */
03286 YY_RULE_SETUP
03287 #line 316 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03288 {YY_PRINT; return(SOLVEROPTIONSEND);}
03289         YY_BREAK
03290 case 174:
03291 /* rule 174 can match eol */
03292 YY_RULE_SETUP
03293 #line 317 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03294 {YY_PRINT; return(SOLVEROPTIONSTART);}
03295         YY_BREAK
03296 case 175:
03297 /* rule 175 can match eol */
03298 YY_RULE_SETUP
03299 #line 318 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03300 {YY_PRINT; return(SOLVEROPTIONEND);}
03301         YY_BREAK
03302 case 176:
03303 /* rule 176 can match eol */
03304 YY_RULE_SETUP
03305 #line 321 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03306 { YY_PRINT; /*yylval->sval = strdup( yytext);*/   yylval->sval = yytext; yyextra->errorText = yylval->sval;  return (ELEMENTTEXT); }
03307         YY_BREAK
03308 case 177:
03309 YY_RULE_SETUP
03310 #line 323 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03311 BEGIN comment;
03312         YY_BREAK
03313 case 178:
03314 #line 325 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03315 case 179:
03316 /* rule 179 can match eol */
03317 YY_RULE_SETUP
03318 #line 325 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03319 ;
03320         YY_BREAK
03321 case 180:
03322 YY_RULE_SETUP
03323 #line 326 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03324 BEGIN 0;
03325         YY_BREAK
03326 case 181:
03327 YY_RULE_SETUP
03328 #line 328 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03329 BEGIN xmldeclaration;
03330         YY_BREAK
03331 case 182:
03332 #line 330 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03333 case 183:
03334 /* rule 183 can match eol */
03335 YY_RULE_SETUP
03336 #line 330 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03337 ;
03338         YY_BREAK
03339 case 184:
03340 YY_RULE_SETUP
03341 #line 331 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03342 BEGIN 0;
03343         YY_BREAK
03344 case 185:
03345 /* rule 185 can match eol */
03346 YY_RULE_SETUP
03347 #line 334 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03348 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/   yylval->sval = yytext; return(ATTRIBUTETEXT);}
03349         YY_BREAK
03350 case 186:
03351 /* rule 186 can match eol */
03352 YY_RULE_SETUP
03353 #line 335 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03354 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/   yylval->sval = yytext;  return(ATTRIBUTETEXT);}
03355         YY_BREAK
03356 case 187:
03357 /* rule 187 can match eol */
03358 YY_RULE_SETUP
03359 #line 336 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03360 {YY_PRINT;  BEGIN 0;  /*yylval->sval = strdup(yytext);*/   yylval->sval = yytext;   return(OSOLATTRIBUTETEXT);}
03361         YY_BREAK
03362 case 188:
03363 /* rule 188 can match eol */
03364 YY_RULE_SETUP
03365 #line 339 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03366 {  
03367 
03368         std::string error;
03369         std::ostringstream outStr;
03370         outStr << "encountered a spurious character in the lexer" << endl;
03371         outStr << "The first character is: ";
03372         outStr <<  yytext;
03373         outStr << endl;
03374         outStr << "See line number: " << yylineno << endl;  
03375         error = outStr.str();
03376         throw ErrorClass( error);
03377 }
03378         YY_BREAK
03379 case 189:
03380 YY_RULE_SETUP
03381 #line 352 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
03382 ECHO;
03383         YY_BREAK
03384 #line 3385 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.cpp"
03385 case YY_STATE_EOF(INITIAL):
03386 case YY_STATE_EOF(osolattributetext):
03387 case YY_STATE_EOF(doublequoteattributetext):
03388 case YY_STATE_EOF(singlequoteattributetext):
03389 case YY_STATE_EOF(startelement):
03390 case YY_STATE_EOF(elementtext):
03391 case YY_STATE_EOF(comment):
03392 case YY_STATE_EOF(xmldeclaration):
03393         yyterminate();
03394 
03395         case YY_END_OF_BUFFER:
03396                 {
03397                 /* Amount of text matched not including the EOB char. */
03398                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
03399 
03400                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
03401                 *yy_cp = yyg->yy_hold_char;
03402                 YY_RESTORE_YY_MORE_OFFSET
03403 
03404                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
03405                         {
03406                         /* We're scanning a new file or input source.  It's
03407                          * possible that this happened because the user
03408                          * just pointed yyin at a new source and called
03409                          * osollex().  If so, then we have to assure
03410                          * consistency between YY_CURRENT_BUFFER and our
03411                          * globals.  Here is the right place to do so, because
03412                          * this is the first action (other than possibly a
03413                          * back-up) that will match for the new input source.
03414                          */
03415                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
03416                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
03417                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
03418                         }
03419 
03420                 /* Note that here we test for yy_c_buf_p "<=" to the position
03421                  * of the first EOB in the buffer, since yy_c_buf_p will
03422                  * already have been incremented past the NUL character
03423                  * (since all states make transitions on EOB to the
03424                  * end-of-buffer state).  Contrast this with the test
03425                  * in input().
03426                  */
03427                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
03428                         { /* This was really a NUL. */
03429                         yy_state_type yy_next_state;
03430 
03431                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
03432 
03433                         yy_current_state = yy_get_previous_state( yyscanner );
03434 
03435                         /* Okay, we're now positioned to make the NUL
03436                          * transition.  We couldn't have
03437                          * yy_get_previous_state() go ahead and do it
03438                          * for us because it doesn't know how to deal
03439                          * with the possibility of jamming (and we don't
03440                          * want to build jamming into it because then it
03441                          * will run more slowly).
03442                          */
03443 
03444                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
03445 
03446                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
03447 
03448                         if ( yy_next_state )
03449                                 {
03450                                 /* Consume the NUL. */
03451                                 yy_cp = ++yyg->yy_c_buf_p;
03452                                 yy_current_state = yy_next_state;
03453                                 goto yy_match;
03454                                 }
03455 
03456                         else
03457                                 {
03458                                 yy_cp = yyg->yy_c_buf_p;
03459                                 goto yy_find_action;
03460                                 }
03461                         }
03462 
03463                 else switch ( yy_get_next_buffer( yyscanner ) )
03464                         {
03465                         case EOB_ACT_END_OF_FILE:
03466                                 {
03467                                 yyg->yy_did_buffer_switch_on_eof = 0;
03468 
03469                                 if ( osolwrap(yyscanner ) )
03470                                         {
03471                                         /* Note: because we've taken care in
03472                                          * yy_get_next_buffer() to have set up
03473                                          * yytext, we can now set up
03474                                          * yy_c_buf_p so that if some total
03475                                          * hoser (like flex itself) wants to
03476                                          * call the scanner after we return the
03477                                          * YY_NULL, it'll still work - another
03478                                          * YY_NULL will get returned.
03479                                          */
03480                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
03481 
03482                                         yy_act = YY_STATE_EOF(YY_START);
03483                                         goto do_action;
03484                                         }
03485 
03486                                 else
03487                                         {
03488                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
03489                                                 YY_NEW_FILE;
03490                                         }
03491                                 break;
03492                                 }
03493 
03494                         case EOB_ACT_CONTINUE_SCAN:
03495                                 yyg->yy_c_buf_p =
03496                                         yyg->yytext_ptr + yy_amount_of_matched_text;
03497 
03498                                 yy_current_state = yy_get_previous_state( yyscanner );
03499 
03500                                 yy_cp = yyg->yy_c_buf_p;
03501                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
03502                                 goto yy_match;
03503 
03504                         case EOB_ACT_LAST_MATCH:
03505                                 yyg->yy_c_buf_p =
03506                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
03507 
03508                                 yy_current_state = yy_get_previous_state( yyscanner );
03509 
03510                                 yy_cp = yyg->yy_c_buf_p;
03511                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
03512                                 goto yy_find_action;
03513                         }
03514                 break;
03515                 }
03516 
03517         default:
03518                 YY_FATAL_ERROR(
03519                         "fatal flex scanner internal error--no action found" );
03520         } /* end of action switch */
03521                 } /* end of scanning one token */
03522 } /* end of osollex */
03523 
03524 /* yy_get_next_buffer - try to read in a new buffer
03525  *
03526  * Returns a code representing an action:
03527  *      EOB_ACT_LAST_MATCH -
03528  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
03529  *      EOB_ACT_END_OF_FILE - end of file
03530  */
03531 static int yy_get_next_buffer (yyscan_t yyscanner)
03532 {
03533     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03534         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
03535         register char *source = yyg->yytext_ptr;
03536         register int number_to_move, i;
03537         int ret_val;
03538 
03539         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
03540                 YY_FATAL_ERROR(
03541                 "fatal flex scanner internal error--end of buffer missed" );
03542 
03543         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
03544                 { /* Don't try to fill the buffer, so this is an EOF. */
03545                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
03546                         {
03547                         /* We matched a single character, the EOB, so
03548                          * treat this as a final EOF.
03549                          */
03550                         return EOB_ACT_END_OF_FILE;
03551                         }
03552 
03553                 else
03554                         {
03555                         /* We matched some text prior to the EOB, first
03556                          * process it.
03557                          */
03558                         return EOB_ACT_LAST_MATCH;
03559                         }
03560                 }
03561 
03562         /* Try to read more data. */
03563 
03564         /* First move last chars to start of buffer. */
03565         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
03566 
03567         for ( i = 0; i < number_to_move; ++i )
03568                 *(dest++) = *(source++);
03569 
03570         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
03571                 /* don't do the read, it's not guaranteed to return an EOF,
03572                  * just force an EOF
03573                  */
03574                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
03575 
03576         else
03577                 {
03578                         int num_to_read =
03579                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
03580 
03581                 while ( num_to_read <= 0 )
03582                         { /* Not enough room in the buffer - grow it. */
03583 
03584                         /* just a shorter name for the current buffer */
03585                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
03586 
03587                         int yy_c_buf_p_offset =
03588                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
03589 
03590                         if ( b->yy_is_our_buffer )
03591                                 {
03592                                 int new_size = b->yy_buf_size * 2;
03593 
03594                                 if ( new_size <= 0 )
03595                                         b->yy_buf_size += b->yy_buf_size / 8;
03596                                 else
03597                                         b->yy_buf_size *= 2;
03598 
03599                                 b->yy_ch_buf = (char *)
03600                                         /* Include room in for 2 EOB chars. */
03601                                         osolrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
03602                                 }
03603                         else
03604                                 /* Can't grow it, we don't own it. */
03605                                 b->yy_ch_buf = 0;
03606 
03607                         if ( ! b->yy_ch_buf )
03608                                 YY_FATAL_ERROR(
03609                                 "fatal error - scanner input buffer overflow" );
03610 
03611                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
03612 
03613                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
03614                                                 number_to_move - 1;
03615 
03616                         }
03617 
03618                 if ( num_to_read > YY_READ_BUF_SIZE )
03619                         num_to_read = YY_READ_BUF_SIZE;
03620 
03621                 /* Read in more data. */
03622                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
03623                         yyg->yy_n_chars, (size_t) num_to_read );
03624 
03625                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03626                 }
03627 
03628         if ( yyg->yy_n_chars == 0 )
03629                 {
03630                 if ( number_to_move == YY_MORE_ADJ )
03631                         {
03632                         ret_val = EOB_ACT_END_OF_FILE;
03633                         osolrestart(yyin  ,yyscanner);
03634                         }
03635 
03636                 else
03637                         {
03638                         ret_val = EOB_ACT_LAST_MATCH;
03639                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
03640                                 YY_BUFFER_EOF_PENDING;
03641                         }
03642                 }
03643 
03644         else
03645                 ret_val = EOB_ACT_CONTINUE_SCAN;
03646 
03647         if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
03648                 /* Extend the array by 50%, plus the number we really need. */
03649                 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
03650                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osolrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
03651                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
03652                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
03653         }
03654 
03655         yyg->yy_n_chars += number_to_move;
03656         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
03657         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
03658 
03659         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
03660 
03661         return ret_val;
03662 }
03663 
03664 /* yy_get_previous_state - get the state just before the EOB char was reached */
03665 
03666     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
03667 {
03668         register yy_state_type yy_current_state;
03669         register char *yy_cp;
03670     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03671 
03672         yy_current_state = yyg->yy_start;
03673 
03674         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
03675                 {
03676                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
03677                 if ( yy_accept[yy_current_state] )
03678                         {
03679                         yyg->yy_last_accepting_state = yy_current_state;
03680                         yyg->yy_last_accepting_cpos = yy_cp;
03681                         }
03682                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
03683                         {
03684                         yy_current_state = (int) yy_def[yy_current_state];
03685                         if ( yy_current_state >= 1668 )
03686                                 yy_c = yy_meta[(unsigned int) yy_c];
03687                         }
03688                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
03689                 }
03690 
03691         return yy_current_state;
03692 }
03693 
03694 /* yy_try_NUL_trans - try to make a transition on the NUL character
03695  *
03696  * synopsis
03697  *      next_state = yy_try_NUL_trans( current_state );
03698  */
03699     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
03700 {
03701         register int yy_is_jam;
03702     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
03703         register char *yy_cp = yyg->yy_c_buf_p;
03704 
03705         register YY_CHAR yy_c = 1;
03706         if ( yy_accept[yy_current_state] )
03707                 {
03708                 yyg->yy_last_accepting_state = yy_current_state;
03709                 yyg->yy_last_accepting_cpos = yy_cp;
03710                 }
03711         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
03712                 {
03713                 yy_current_state = (int) yy_def[yy_current_state];
03714                 if ( yy_current_state >= 1668 )
03715                         yy_c = yy_meta[(unsigned int) yy_c];
03716                 }
03717         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
03718         yy_is_jam = (yy_current_state == 1667);
03719 
03720         return yy_is_jam ? 0 : yy_current_state;
03721 }
03722 
03723 #ifndef YY_NO_INPUT
03724 #ifdef __cplusplus
03725     static int yyinput (yyscan_t yyscanner)
03726 #else
03727     static int input  (yyscan_t yyscanner)
03728 #endif
03729 
03730 {
03731         int c;
03732     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03733 
03734         *yyg->yy_c_buf_p = yyg->yy_hold_char;
03735 
03736         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
03737                 {
03738                 /* yy_c_buf_p now points to the character we want to return.
03739                  * If this occurs *before* the EOB characters, then it's a
03740                  * valid NUL; if not, then we've hit the end of the buffer.
03741                  */
03742                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
03743                         /* This was really a NUL. */
03744                         *yyg->yy_c_buf_p = '\0';
03745 
03746                 else
03747                         { /* need more input */
03748                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
03749                         ++yyg->yy_c_buf_p;
03750 
03751                         switch ( yy_get_next_buffer( yyscanner ) )
03752                                 {
03753                                 case EOB_ACT_LAST_MATCH:
03754                                         /* This happens because yy_g_n_b()
03755                                          * sees that we've accumulated a
03756                                          * token and flags that we need to
03757                                          * try matching the token before
03758                                          * proceeding.  But for input(),
03759                                          * there's no matching to consider.
03760                                          * So convert the EOB_ACT_LAST_MATCH
03761                                          * to EOB_ACT_END_OF_FILE.
03762                                          */
03763 
03764                                         /* Reset buffer status. */
03765                                         osolrestart(yyin ,yyscanner);
03766 
03767                                         /*FALLTHROUGH*/
03768 
03769                                 case EOB_ACT_END_OF_FILE:
03770                                         {
03771                                         if ( osolwrap(yyscanner ) )
03772                                                 return EOF;
03773 
03774                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
03775                                                 YY_NEW_FILE;
03776 #ifdef __cplusplus
03777                                         return yyinput(yyscanner);
03778 #else
03779                                         return input(yyscanner);
03780 #endif
03781                                         }
03782 
03783                                 case EOB_ACT_CONTINUE_SCAN:
03784                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
03785                                         break;
03786                                 }
03787                         }
03788                 }
03789 
03790         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
03791         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
03792         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
03793 
03794         if ( c == '\n' )
03795                    
03796     do{ yylineno++;
03797         yycolumn=0;
03798     }while(0)
03799 ;
03800 
03801         return c;
03802 }
03803 #endif  /* ifndef YY_NO_INPUT */
03804 
03810     void osolrestart  (FILE * input_file , yyscan_t yyscanner)
03811 {
03812     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03813 
03814         if ( ! YY_CURRENT_BUFFER ){
03815         osolensure_buffer_stack (yyscanner);
03816                 YY_CURRENT_BUFFER_LVALUE =
03817             osol_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
03818         }
03819 
03820         osol_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
03821         osol_load_buffer_state(yyscanner );
03822 }
03823 
03828     void osol_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
03829 {
03830     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03831 
03832         /* TODO. We should be able to replace this entire function body
03833          * with
03834          *              osolpop_buffer_state();
03835          *              osolpush_buffer_state(new_buffer);
03836      */
03837         osolensure_buffer_stack (yyscanner);
03838         if ( YY_CURRENT_BUFFER == new_buffer )
03839                 return;
03840 
03841         if ( YY_CURRENT_BUFFER )
03842                 {
03843                 /* Flush out information for old buffer. */
03844                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03845                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
03846                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03847                 }
03848 
03849         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03850         osol_load_buffer_state(yyscanner );
03851 
03852         /* We don't actually know whether we did this switch during
03853          * EOF (osolwrap()) processing, but the only time this flag
03854          * is looked at is after osolwrap() is called, so it's safe
03855          * to go ahead and always set it.
03856          */
03857         yyg->yy_did_buffer_switch_on_eof = 1;
03858 }
03859 
03860 static void osol_load_buffer_state  (yyscan_t yyscanner)
03861 {
03862     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03863         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
03864         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
03865         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
03866         yyg->yy_hold_char = *yyg->yy_c_buf_p;
03867 }
03868 
03875     YY_BUFFER_STATE osol_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
03876 {
03877         YY_BUFFER_STATE b;
03878     
03879         b = (YY_BUFFER_STATE) osolalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
03880         if ( ! b )
03881                 YY_FATAL_ERROR( "out of dynamic memory in osol_create_buffer()" );
03882 
03883         b->yy_buf_size = size;
03884 
03885         /* yy_ch_buf has to be 2 characters longer than the size given because
03886          * we need to put in 2 end-of-buffer characters.
03887          */
03888         b->yy_ch_buf = (char *) osolalloc(b->yy_buf_size + 2 ,yyscanner );
03889         if ( ! b->yy_ch_buf )
03890                 YY_FATAL_ERROR( "out of dynamic memory in osol_create_buffer()" );
03891 
03892         b->yy_is_our_buffer = 1;
03893 
03894         osol_init_buffer(b,file ,yyscanner);
03895 
03896         return b;
03897 }
03898 
03903     void osol_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03904 {
03905     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03906 
03907         if ( ! b )
03908                 return;
03909 
03910         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
03911                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
03912 
03913         if ( b->yy_is_our_buffer )
03914                 osolfree((void *) b->yy_ch_buf ,yyscanner );
03915 
03916         osolfree((void *) b ,yyscanner );
03917 }
03918 
03919 #ifndef __cplusplus
03920 extern int isatty (int );
03921 #endif /* __cplusplus */
03922     
03923 /* Initializes or reinitializes a buffer.
03924  * This function is sometimes called more than once on the same buffer,
03925  * such as during a osolrestart() or at EOF.
03926  */
03927     static void osol_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
03928 
03929 {
03930         int oerrno = errno;
03931     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03932 
03933         osol_flush_buffer(b ,yyscanner);
03934 
03935         b->yy_input_file = file;
03936         b->yy_fill_buffer = 1;
03937 
03938     /* If b is the current buffer, then osol_init_buffer was _probably_
03939      * called from osolrestart() or through yy_get_next_buffer.
03940      * In that case, we don't want to reset the lineno or column.
03941      */
03942     if (b != YY_CURRENT_BUFFER){
03943         b->yy_bs_lineno = 1;
03944         b->yy_bs_column = 0;
03945     }
03946 
03947         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
03948     
03949         errno = oerrno;
03950 }
03951 
03956     void osol_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03957 {
03958     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03959         if ( ! b )
03960                 return;
03961 
03962         b->yy_n_chars = 0;
03963 
03964         /* We always need two end-of-buffer characters.  The first causes
03965          * a transition to the end-of-buffer state.  The second causes
03966          * a jam in that state.
03967          */
03968         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03969         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03970 
03971         b->yy_buf_pos = &b->yy_ch_buf[0];
03972 
03973         b->yy_at_bol = 1;
03974         b->yy_buffer_status = YY_BUFFER_NEW;
03975 
03976         if ( b == YY_CURRENT_BUFFER )
03977                 osol_load_buffer_state(yyscanner );
03978 }
03979 
03986 void osolpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
03987 {
03988     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03989         if (new_buffer == NULL)
03990                 return;
03991 
03992         osolensure_buffer_stack(yyscanner);
03993 
03994         /* This block is copied from osol_switch_to_buffer. */
03995         if ( YY_CURRENT_BUFFER )
03996                 {
03997                 /* Flush out information for old buffer. */
03998                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03999                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
04000                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
04001                 }
04002 
04003         /* Only push if top exists. Otherwise, replace top. */
04004         if (YY_CURRENT_BUFFER)
04005                 yyg->yy_buffer_stack_top++;
04006         YY_CURRENT_BUFFER_LVALUE = new_buffer;
04007 
04008         /* copied from osol_switch_to_buffer. */
04009         osol_load_buffer_state(yyscanner );
04010         yyg->yy_did_buffer_switch_on_eof = 1;
04011 }
04012 
04017 void osolpop_buffer_state (yyscan_t yyscanner)
04018 {
04019     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04020         if (!YY_CURRENT_BUFFER)
04021                 return;
04022 
04023         osol_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
04024         YY_CURRENT_BUFFER_LVALUE = NULL;
04025         if (yyg->yy_buffer_stack_top > 0)
04026                 --yyg->yy_buffer_stack_top;
04027 
04028         if (YY_CURRENT_BUFFER) {
04029                 osol_load_buffer_state(yyscanner );
04030                 yyg->yy_did_buffer_switch_on_eof = 1;
04031         }
04032 }
04033 
04034 /* Allocates the stack if it does not exist.
04035  *  Guarantees space for at least one push.
04036  */
04037 static void osolensure_buffer_stack (yyscan_t yyscanner)
04038 {
04039         int num_to_alloc;
04040     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04041 
04042         if (!yyg->yy_buffer_stack) {
04043 
04044                 /* First allocation is just for 2 elements, since we don't know if this
04045                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
04046                  * immediate realloc on the next call.
04047          */
04048                 num_to_alloc = 1;
04049                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osolalloc
04050                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
04051                                                                 , yyscanner);
04052                 if ( ! yyg->yy_buffer_stack )
04053                         YY_FATAL_ERROR( "out of dynamic memory in osolensure_buffer_stack()" );
04054                                                                   
04055                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
04056                                 
04057                 yyg->yy_buffer_stack_max = num_to_alloc;
04058                 yyg->yy_buffer_stack_top = 0;
04059                 return;
04060         }
04061 
04062         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
04063 
04064                 /* Increase the buffer to prepare for a possible push. */
04065                 int grow_size = 8 /* arbitrary grow size */;
04066 
04067                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
04068                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osolrealloc
04069                                                                 (yyg->yy_buffer_stack,
04070                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
04071                                                                 , yyscanner);
04072                 if ( ! yyg->yy_buffer_stack )
04073                         YY_FATAL_ERROR( "out of dynamic memory in osolensure_buffer_stack()" );
04074 
04075                 /* zero only the new slots.*/
04076                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
04077                 yyg->yy_buffer_stack_max = num_to_alloc;
04078         }
04079 }
04080 
04087 YY_BUFFER_STATE osol_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
04088 {
04089         YY_BUFFER_STATE b;
04090     
04091         if ( size < 2 ||
04092              base[size-2] != YY_END_OF_BUFFER_CHAR ||
04093              base[size-1] != YY_END_OF_BUFFER_CHAR )
04094                 /* They forgot to leave room for the EOB's. */
04095                 return 0;
04096 
04097         b = (YY_BUFFER_STATE) osolalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
04098         if ( ! b )
04099                 YY_FATAL_ERROR( "out of dynamic memory in osol_scan_buffer()" );
04100 
04101         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
04102         b->yy_buf_pos = b->yy_ch_buf = base;
04103         b->yy_is_our_buffer = 0;
04104         b->yy_input_file = 0;
04105         b->yy_n_chars = b->yy_buf_size;
04106         b->yy_is_interactive = 0;
04107         b->yy_at_bol = 1;
04108         b->yy_fill_buffer = 0;
04109         b->yy_buffer_status = YY_BUFFER_NEW;
04110 
04111         osol_switch_to_buffer(b ,yyscanner );
04112 
04113         return b;
04114 }
04115 
04124 YY_BUFFER_STATE osol_scan_string (yyconst char * yystr , yyscan_t yyscanner)
04125 {
04126     
04127         return osol_scan_bytes(yystr,strlen(yystr) ,yyscanner);
04128 }
04129 
04137 YY_BUFFER_STATE osol_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
04138 {
04139         YY_BUFFER_STATE b;
04140         char *buf;
04141         yy_size_t n;
04142         int i;
04143     
04144         /* Get memory for full buffer, including space for trailing EOB's. */
04145         n = _yybytes_len + 2;
04146         buf = (char *) osolalloc(n ,yyscanner );
04147         if ( ! buf )
04148                 YY_FATAL_ERROR( "out of dynamic memory in osol_scan_bytes()" );
04149 
04150         for ( i = 0; i < _yybytes_len; ++i )
04151                 buf[i] = yybytes[i];
04152 
04153         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
04154 
04155         b = osol_scan_buffer(buf,n ,yyscanner);
04156         if ( ! b )
04157                 YY_FATAL_ERROR( "bad buffer in osol_scan_bytes()" );
04158 
04159         /* It's okay to grow etc. this buffer, and we should throw it
04160          * away when we're done.
04161          */
04162         b->yy_is_our_buffer = 1;
04163 
04164         return b;
04165 }
04166 
04167 #ifndef YY_EXIT_FAILURE
04168 #define YY_EXIT_FAILURE 2
04169 #endif
04170 
04171 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
04172 {
04173         (void) fprintf( stderr, "%s\n", msg );
04174         exit( YY_EXIT_FAILURE );
04175 }
04176 
04177 /* Redefine yyless() so it works in section 3 code. */
04178 
04179 #undef yyless
04180 #define yyless(n) \
04181         do \
04182                 { \
04183                 /* Undo effects of setting up yytext. */ \
04184         int yyless_macro_arg = (n); \
04185         YY_LESS_LINENO(yyless_macro_arg);\
04186                 yytext[yyleng] = yyg->yy_hold_char; \
04187                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
04188                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
04189                 *yyg->yy_c_buf_p = '\0'; \
04190                 yyleng = yyless_macro_arg; \
04191                 } \
04192         while ( 0 )
04193 
04194 /* Accessor  methods (get/set functions) to struct members. */
04195 
04199 YY_EXTRA_TYPE osolget_extra  (yyscan_t yyscanner)
04200 {
04201     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04202     return yyextra;
04203 }
04204 
04208 int osolget_lineno  (yyscan_t yyscanner)
04209 {
04210     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04211     
04212         if (! YY_CURRENT_BUFFER)
04213             return 0;
04214     
04215     return yylineno;
04216 }
04217 
04221 int osolget_column  (yyscan_t yyscanner)
04222 {
04223     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04224     
04225         if (! YY_CURRENT_BUFFER)
04226             return 0;
04227     
04228     return yycolumn;
04229 }
04230 
04234 FILE *osolget_in  (yyscan_t yyscanner)
04235 {
04236     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04237     return yyin;
04238 }
04239 
04243 FILE *osolget_out  (yyscan_t yyscanner)
04244 {
04245     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04246     return yyout;
04247 }
04248 
04252 int osolget_leng  (yyscan_t yyscanner)
04253 {
04254     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04255     return yyleng;
04256 }
04257 
04262 char *osolget_text  (yyscan_t yyscanner)
04263 {
04264     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04265     return yytext;
04266 }
04267 
04272 void osolset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
04273 {
04274     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04275     yyextra = user_defined ;
04276 }
04277 
04282 void osolset_lineno (int  line_number , yyscan_t yyscanner)
04283 {
04284     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04285 
04286         /* lineno is only valid if an input buffer exists. */
04287         if (! YY_CURRENT_BUFFER )
04288            yy_fatal_error( "osolset_lineno called with no buffer" , yyscanner); 
04289     
04290     yylineno = line_number;
04291 }
04292 
04297 void osolset_column (int  column_no , yyscan_t yyscanner)
04298 {
04299     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04300 
04301         /* column is only valid if an input buffer exists. */
04302         if (! YY_CURRENT_BUFFER )
04303            yy_fatal_error( "osolset_column called with no buffer" , yyscanner); 
04304     
04305     yycolumn = column_no;
04306 }
04307 
04314 void osolset_in (FILE *  in_str , yyscan_t yyscanner)
04315 {
04316     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04317     yyin = in_str ;
04318 }
04319 
04320 void osolset_out (FILE *  out_str , yyscan_t yyscanner)
04321 {
04322     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04323     yyout = out_str ;
04324 }
04325 
04326 int osolget_debug  (yyscan_t yyscanner)
04327 {
04328     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04329     return yy_flex_debug;
04330 }
04331 
04332 void osolset_debug (int  bdebug , yyscan_t yyscanner)
04333 {
04334     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04335     yy_flex_debug = bdebug ;
04336 }
04337 
04338 /* Accessor methods for yylval and yylloc */
04339 
04340 YYSTYPE * osolget_lval  (yyscan_t yyscanner)
04341 {
04342     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04343     return yylval;
04344 }
04345 
04346 void osolset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
04347 {
04348     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04349     yylval = yylval_param;
04350 }
04351 
04352 YYLTYPE *osolget_lloc  (yyscan_t yyscanner)
04353 {
04354     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04355     return yylloc;
04356 }
04357     
04358 void osolset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
04359 {
04360     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04361     yylloc = yylloc_param;
04362 }
04363     
04364 /* User-visible API */
04365 
04366 /* osollex_init is special because it creates the scanner itself, so it is
04367  * the ONLY reentrant function that doesn't take the scanner as the last argument.
04368  * That's why we explicitly handle the declaration, instead of using our macros.
04369  */
04370 
04371 int osollex_init(yyscan_t* ptr_yy_globals)
04372 
04373 {
04374     if (ptr_yy_globals == NULL){
04375         errno = EINVAL;
04376         return 1;
04377     }
04378 
04379     *ptr_yy_globals = (yyscan_t) osolalloc ( sizeof( struct yyguts_t ), NULL );
04380 
04381     if (*ptr_yy_globals == NULL){
04382         errno = ENOMEM;
04383         return 1;
04384     }
04385 
04386     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
04387     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
04388 
04389     return yy_init_globals ( *ptr_yy_globals );
04390 }
04391 
04392 /* osollex_init_extra has the same functionality as osollex_init, but follows the
04393  * convention of taking the scanner as the last argument. Note however, that
04394  * this is a *pointer* to a scanner, as it will be allocated by this call (and
04395  * is the reason, too, why this function also must handle its own declaration).
04396  * The user defined value in the first argument will be available to osolalloc in
04397  * the yyextra field.
04398  */
04399 
04400 int osollex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
04401 
04402 {
04403     struct yyguts_t dummy_yyguts;
04404 
04405     osolset_extra (yy_user_defined, &dummy_yyguts);
04406 
04407     if (ptr_yy_globals == NULL){
04408         errno = EINVAL;
04409         return 1;
04410     }
04411         
04412     *ptr_yy_globals = (yyscan_t) osolalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
04413         
04414     if (*ptr_yy_globals == NULL){
04415         errno = ENOMEM;
04416         return 1;
04417     }
04418     
04419     /* By setting to 0xAA, we expose bugs in
04420     yy_init_globals. Leave at 0x00 for releases. */
04421     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
04422     
04423     osolset_extra (yy_user_defined, *ptr_yy_globals);
04424     
04425     return yy_init_globals ( *ptr_yy_globals );
04426 }
04427 
04428 static int yy_init_globals (yyscan_t yyscanner)
04429 {
04430     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04431     /* Initialization is the same as for the non-reentrant scanner.
04432      * This function is called from osollex_destroy(), so don't allocate here.
04433      */
04434 
04435     yyg->yy_buffer_stack = 0;
04436     yyg->yy_buffer_stack_top = 0;
04437     yyg->yy_buffer_stack_max = 0;
04438     yyg->yy_c_buf_p = (char *) 0;
04439     yyg->yy_init = 0;
04440     yyg->yy_start = 0;
04441 
04442     yyg->yy_start_stack_ptr = 0;
04443     yyg->yy_start_stack_depth = 0;
04444     yyg->yy_start_stack =  NULL;
04445 
04446 /* Defined in main.c */
04447 #ifdef YY_STDINIT
04448     yyin = stdin;
04449     yyout = stdout;
04450 #else
04451     yyin = (FILE *) 0;
04452     yyout = (FILE *) 0;
04453 #endif
04454 
04455     /* For future reference: Set errno on error, since we are called by
04456      * osollex_init()
04457      */
04458     return 0;
04459 }
04460 
04461 /* osollex_destroy is for both reentrant and non-reentrant scanners. */
04462 int osollex_destroy  (yyscan_t yyscanner)
04463 {
04464     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
04465 
04466     /* Pop the buffer stack, destroying each element. */
04467         while(YY_CURRENT_BUFFER){
04468                 osol_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
04469                 YY_CURRENT_BUFFER_LVALUE = NULL;
04470                 osolpop_buffer_state(yyscanner);
04471         }
04472 
04473         /* Destroy the stack itself. */
04474         osolfree(yyg->yy_buffer_stack ,yyscanner);
04475         yyg->yy_buffer_stack = NULL;
04476 
04477     /* Destroy the start condition stack. */
04478         osolfree(yyg->yy_start_stack ,yyscanner );
04479         yyg->yy_start_stack = NULL;
04480 
04481     /* Reset the globals. This is important in a non-reentrant scanner so the next time
04482      * osollex() is called, initialization will occur. */
04483     yy_init_globals( yyscanner);
04484 
04485     /* Destroy the main struct (reentrant only). */
04486     osolfree ( yyscanner , yyscanner );
04487     yyscanner = NULL;
04488     return 0;
04489 }
04490 
04491 /*
04492  * Internal utility routines.
04493  */
04494 
04495 #ifndef yytext_ptr
04496 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
04497 {
04498         register int i;
04499         for ( i = 0; i < n; ++i )
04500                 s1[i] = s2[i];
04501 }
04502 #endif
04503 
04504 #ifdef YY_NEED_STRLEN
04505 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
04506 {
04507         register int n;
04508         for ( n = 0; s[n]; ++n )
04509                 ;
04510 
04511         return n;
04512 }
04513 #endif
04514 
04515 void *osolalloc (yy_size_t  size , yyscan_t yyscanner)
04516 {
04517         return (void *) malloc( size );
04518 }
04519 
04520 void *osolrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
04521 {
04522         /* The cast to (char *) in the following accommodates both
04523          * implementations that use char* generic pointers, and those
04524          * that use void* generic pointers.  It works with the latter
04525          * because both ANSI C and C++ allow castless assignment from
04526          * any pointer type to void*, and deal with argument conversions
04527          * as though doing an assignment.
04528          */
04529         return (void *) realloc( (char *) ptr, size );
04530 }
04531 
04532 void osolfree (void * ptr , yyscan_t yyscanner)
04533 {
04534         free( (char *) ptr );   /* see osolrealloc() for (char *) cast */
04535 }
04536 
04537 #define YYTABLES_NAME "yytables"
04538 
04539 #line 352 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosol.l"
04540 
04541 
04542 
04543 
04544 

Generated on Mon Aug 3 03:02:23 2009 by  doxygen 1.4.7