/home/coin/SVN-release/OS-2.0.1/OS/src/OSParsers/OSParseosrl.cpp

Go to the documentation of this file.
00001 #line 2 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.cpp"
00002 
00003 #line 4 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.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 osrlrestart(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 osrllex. 
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 osrlrestart()), 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 osrlrestart (FILE *input_file ,yyscan_t yyscanner );
00303 void osrl_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00304 YY_BUFFER_STATE osrl_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00305 void osrl_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00306 void osrl_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00307 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00308 void osrlpop_buffer_state (yyscan_t yyscanner );
00309 
00310 static void osrlensure_buffer_stack (yyscan_t yyscanner );
00311 static void osrl_load_buffer_state (yyscan_t yyscanner );
00312 static void osrl_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00313 
00314 #define YY_FLUSH_BUFFER osrl_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00315 
00316 YY_BUFFER_STATE osrl_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00317 YY_BUFFER_STATE osrl_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00318 YY_BUFFER_STATE osrl_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00319 
00320 void *osrlalloc (yy_size_t ,yyscan_t yyscanner );
00321 void *osrlrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00322 void osrlfree (void * ,yyscan_t yyscanner );
00323 
00324 #define yy_new_buffer osrl_create_buffer
00325 
00326 #define yy_set_interactive(is_interactive) \
00327         { \
00328         if ( ! YY_CURRENT_BUFFER ){ \
00329         osrlensure_buffer_stack (yyscanner); \
00330                 YY_CURRENT_BUFFER_LVALUE =    \
00331             osrl_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         osrlensure_buffer_stack (yyscanner); \
00340                 YY_CURRENT_BUFFER_LVALUE =    \
00341             osrl_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 osrlwrap(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 131
00375 #define YY_END_OF_BUFFER 132
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[1101] =
00384     {   0,
00385         1,    1,  129,  129,  127,  127,  128,  128,    0,    0,
00386         0,    0,    0,    0,    0,    0,    0,    0,  132,  130,
00387         1,    1,    2,  117,    2,  130,    6,  130,    5,  130,
00388         4,  117,  129,  131,  127,  128,  118,  120,  121,  120,
00389       124,  125,  124,    1,    0,    6,    0,    5,    0,    4,
00390         0,    0,    0,    0,    0,    0,    0,    0,    1,  117,
00391         6,    5,  117,  117,  117,  117,  117,  117,  117,  117,
00392         3,    6,    6,    6,  117,    7,    5,    5,    0,    0,
00393       123,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00394         0,    4,  117,  129,  127,  128,  118,    0,  126,    6,
00395 
00396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00397         0,    0,    0,    0,    0,    0,  117,  117,  117,  117,
00398       117,  117,  117,  117,  117,    0,    6,    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,    0,    0,    6,  122,    6,    0,    0,
00402         0,    0,    0,    6,    0,    0,    0,    0,    0,    0,
00403         0,    0,    0,  117,  117,  117,  117,  117,  117,  117,
00404       117,  117,  119,    0,    0,    0,    0,    0,    0,    0,
00405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00406 
00407        97,    0,    0,    0,    0,    0,    0,   93,    0,    0,
00408         0,    0,    0,    0,    0,    0,    0,   89,    0,    0,
00409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00410         0,    0,    0,  117,  117,  117,  117,  117,  117,  117,
00411       117,  117,    0,    0,    0,    0,    0,    0,    0,    0,
00412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00413         0,    0,    0,    0,    0,    0,   56,    0,    0,    0,
00414         0,    0,    0,    0,    0,    0,    0,   72,    0,    0,
00415         0,    0,    0,    0,    0,   72,    0,    0,    0,   21,
00416         0,    0,    0,    0,    0,    0,    0,    0,    0,  117,
00417 
00418       117,  117,  117,  117,  117,  117,  117,    0,   98,    0,
00419         0,    0,    0,    0,    0,   57,    0,    0,    0,   94,
00420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00421         0,    0,   90,    0,    0,    0,    0,    0,    0,    0,
00422       108,   56,    0,    0,    0,    0,   48,   47,  101,    0,
00423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00424         0,    0,    0,    0,    0,   21,    0,   25,   26,    0,
00425         0,    0,   29,   30,    0,   37,   38,    0,    0,  117,
00426       117,  117,  117,  117,   98,    0,    0,    0,    0,    0,
00427       109,   57,    0,    0,   94,    0,    0,    0,   49,    0,
00428 
00429         0,    0,    0,    0,    0,   73,    0,    0,   90,    0,
00430         0,    0,    0,    0,  110,    0,    0,    0,   67,    0,
00431         0,    0,    0,    0,    0,   83,    0,  115,    0,   85,
00432         0,    0,    0,    0,    0,    0,    0,    0,   23,   24,
00433         0,    0,    0,   27,   28,    0,   35,   36,    0,   41,
00434        42,  117,  117,  117,  117,    0,    0,    0,    0,  109,
00435         0,   69,    0,    0,    0,   49,    0,  102,    0,    0,
00436         0,    0,    0,   73,    0,    0,    0,    0,    0,    0,
00437         0,  110,    0,  114,   67,   68,    0,    0,    0,    0,
00438         0,    0,    0,   52,    0,    0,    0,    0,    0,    0,
00439 
00440         0,    0,    0,    0,   39,   40,  117,  117,  117,  117,
00441         0,    0,    0,    0,   69,    0,    0,    0,  102,    0,
00442         0,    0,    0,   84,    0,   53,    0,    0,   86,    0,
00443         0,    0,    0,   50,    0,    0,    0,    0,    0,   74,
00444         0,    0,    0,    0,   54,    0,    0,   81,   52,    0,
00445         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00446         0,    0,    0,    0,    0,  117,  117,  117,  117,  117,
00447       117,  117,  117,  117,    0,    0,    0,   51,    0,    0,
00448         0,   76,    0,    0,    0,    0,   55,    0,    0,    0,
00449        84,   53,    0,   86,    0,    0,    0,   50,    0,    0,
00450 
00451         0,  116,   74,   75,    0,    0,    0,   54,    0,    0,
00452         0,   91,    0,    0,    0,    0,   33,   34,    0,    0,
00453         0,    0,    0,    0,    0,    0,    0,  117,  117,  117,
00454       117,  117,  117,  117,  117,  117,    0,    0,   51,    0,
00455         0,   76,    0,    0,    0,   55,    0,    0,    0,   82,
00456         0,    0,    0,   87,    0,    0,    0,   95,    0,    0,
00457         0,    0,    0,    0,    0,    0,    0,   31,   32,    0,
00458         0,    0,    0,    0,    0,    0,    0,    0,  117,  117,
00459       117,  117,  117,  117,  117,  117,  117,    0,    0,    0,
00460         0,    0,    0,    0,    0,    0,   82,    0,    0,   92,
00461 
00462        99,    0,    0,    0,    0,    0,    0,    0,    0,   58,
00463         0,    0,    0,    0,    0,    0,    0,   20,    0,    0,
00464         0,   19,    0,    0,    0,    0,    0,   18,    0,    0,
00465       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
00466       117,  117,    0,    0,   88,    0,    0,    0,   96,    0,
00467         0,    0,    0,   60,    0,   92,    0,    0,    0,  107,
00468        79,    0,    0,    0,   61,  111,   58,   59,    0,    0,
00469         0,    0,   45,   46,    0,    0,    0,    0,    0,    0,
00470         0,    0,    0,    0,    0,  117,  117,  117,  117,  117,
00471       117,  117,  117,    0,  100,   88,    0,    0,   96,    0,
00472 
00473         0,    0,   63,   60,    0,   77,    0,    0,   64,  107,
00474         0,  112,   61,   62,    0,    0,    0,   43,   44,   20,
00475         0,    0,   17,   19,    0,    0,    0,    0,    0,    0,
00476         0,    8,   18,    0,    0,  117,  117,  117,  117,  117,
00477       117,  117,  117,  117,  117,  117,  100,    0,    0,   66,
00478         0,   80,    0,   63,    0,  113,   64,   65,    0,    0,
00479         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00480         0,  117,  117,  117,  117,  117,  117,  117,  117,  117,
00481         0,   78,   66,   80,    0,    0,    0,    0,    0,   17,
00482         0,    0,    0,    0,    0,    0,    8,    0,    0,  117,
00483 
00484       117,  117,  117,  117,  117,  117,  117,  117,   78,    0,
00485         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00486         0,    0,  117,  117,  117,  117,  117,  117,  117,  117,
00487       117,    0,    0,    0,   70,    0,    0,    0,    0,    0,
00488         0,    0,    9,    0,   10,    0,  117,  117,  117,  117,
00489       117,  117,  117,  117,  117,    0,    0,    0,    0,    0,
00490        11,    0,    0,    0,    0,    0,    0,    0,   22,  117,
00491       117,  117,  117,  117,  117,  117,    0,    0,   71,  105,
00492         0,   12,    0,    0,    0,    0,    0,    9,   10,    0,
00493       117,  117,  117,  117,  117,    0,   71,  103,    0,   11,
00494 
00495         0,    0,    0,    0,   22,  117,  117,  117,  117,    0,
00496       106,    0,   12,    0,    0,    0,    0,  117,  117,  117,
00497       117,  106,    0,  104,    0,    0,    0,    0,  117,  117,
00498       117,  117,  104,    0,    0,    0,    0,  117,  117,  117,
00499       117,    0,    0,    0,    0,  117,  117,  117,  117,    0,
00500         0,    0,    0,  117,  117,  117,  117,    0,    0,    0,
00501         0,  117,  117,  117,  117,    0,    0,    0,    0,  117,
00502       117,  117,  117,    0,    0,    0,   16,    0,   13,  117,
00503       117,  117,  117,    0,    0,   14,    0,    0,  117,  117,
00504         0,   15,    0,   16,   13,  117,    0,   14,   15,    0
00505 
00506     } ;
00507 
00508 static yyconst flex_int32_t yy_ec[256] =
00509     {   0,
00510         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00511         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
00512         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00513         1,    5,    6,    7,    8,    8,    1,    1,    9,    1,
00514         1,    8,   10,    1,   11,   12,   13,   14,   14,   14,
00515        14,   14,   14,   14,   14,   14,   14,    8,    1,   15,
00516        16,   17,   18,    8,    8,    8,   19,   20,   21,   22,
00517         8,    8,   23,    8,    8,    8,    8,   24,   25,    8,
00518         8,   26,   27,   28,   29,   30,    8,    8,    8,    8,
00519         1,    1,    1,    1,    8,    1,   31,   32,   33,   34,
00520 
00521        35,   36,   37,   38,   39,   40,    8,   41,   42,   43,
00522        44,   45,    8,   46,   47,   48,   49,   50,    8,   51,
00523        52,   53,    1,    1,    1,    1,    1,    1,    1,    1,
00524         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00525         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00526         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00527         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00528         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00529         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00530         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00531 
00532         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00533         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00534         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00535         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00536         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00537         1,    1,    1,    1,    1
00538     } ;
00539 
00540 static yyconst flex_int32_t yy_meta[54] =
00541     {   0,
00542         1,    2,    2,    2,    2,    1,    3,    2,    4,    1,
00543         2,    2,    2,    2,    5,    1,    6,    1,    2,    2,
00544         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00545         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00546         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00547         2,    2,    2
00548     } ;
00549 
00550 static yyconst flex_int16_t yy_base[1114] =
00551     {   0,
00552         0,   23, 2868, 2867, 2876, 2875, 2872, 2871,    0,    0,
00553         0,    0, 2864, 2863,   39,   40,   41,   42, 2877, 2886,
00554        59,  108, 2869,   64, 2866,    8,  157, 2857,   53,  187,
00555        81,  113,    0, 2886,    0,    0,    0, 2886, 2886, 2862,
00556      2886, 2886, 2855,    0,   66,  131, 2854,  236,  259,   92,
00557      2846, 2838, 2833, 2833,   38,   75, 2823, 2834,  308,  171,
00558         0,  192,  199,  243,  251,  274,  357,  101,  134,   69,
00559      2886,  277,  134,    0,  197, 2886,  312,  324, 2853,  374,
00560      2886, 2819, 2813, 2826,    4, 2816, 2824,   56,  217, 2819,
00561      2826,  330,  118,    0,    0,    0,    0, 2839, 2886,  361,
00562 
00563       188,    5, 2811, 2819,  301, 2814, 2830, 2803, 2803, 2798,
00564      2806, 2805, 2800, 2800, 2805, 2802,  115,  202,  239,  194,
00565       253,  331,  228,  299,  338, 2828,  283, 2830, 2796, 2790,
00566      2803,    6, 2793, 2801,  292,  341, 2796, 2803, 2790, 2801,
00567      2788, 2783, 2794, 2796, 2780, 2786, 2777, 2778, 2785, 2776,
00568      2780, 2789, 2772, 2776,   97,  346, 2886,  395, 2770, 2784,
00569      2768, 2768, 2771,  399, 2777, 2778,  423, 2775, 2777, 2771,
00570      2772, 2758, 2756,  384,  361,  427,  403,  404,  410,  411,
00571       406,  160, 2886, 2761, 2772, 2759, 2754, 2765, 2767, 2751,
00572      2757, 2748, 2749, 2756, 2747, 2751, 2760, 2743, 2747,   98,
00573 
00574      2741, 2746, 2751, 2737, 2742,  446, 2736, 2747, 2742, 2739,
00575      2744, 2728, 2728, 2728, 2727,  141, 2725, 2734, 2724,  462,
00576      2724, 2720,  146, 2732, 2722,  468,  484,  478, 2732, 2731,
00577       493,  497, 2730,  425,  374,  501,  517,  426,  476,  524,
00578       533,  481,  539, 2723, 2728, 2714, 2719,  555, 2713,  566,
00579      2720, 2717, 2722, 2706, 2706, 2706, 2705,  178, 2703,  572,
00580      2703, 2720, 2703, 2717,  589,  593,  549, 2727, 2715, 2712,
00581      2702,  610, 2697, 2703, 2693, 2691, 2704,  615, 2695, 2702,
00582      2705, 2704, 2714, 2702, 2693, 2886, 2687, 2691, 2725,  619,
00583       627,  631, 2682, 2679,  642,  646,  657,  661,  672,  536,
00584 
00585       577,  676,  516,  556,  680,  696,  700,  715,  719, 2678,
00586      2695, 2678, 2692,  731,  735,  739, 2702, 2690,  751,  755,
00587      2687, 2677,  759, 2672, 2678, 2668, 2666, 2679,  767, 2670,
00588      2677,  775,  783, 2680, 2664, 2678, 2677, 2664,  791, 2689,
00589      2690,  795,  807, 2667, 2655, 2663,  811, 2886, 2674, 2667,
00590      2660, 2651, 2655,  827, 2679, 2658, 2647, 2661, 2649,  831,
00591      2654, 2657, 2643, 2643,  684,  839, 2683, 2679, 2676, 2659,
00592      2658, 2678, 2674, 2671, 2675, 2671, 2668,  847,  816,  608,
00593       664,  514,  742,  851,  855, 2630, 2644, 2643, 2630,  866,
00594       870,  874,  882, 2635,  886, 2623, 2630,  890,  899,  906,
00595 
00596      2629, 2616, 2598, 2602,  910,  914, 2556, 2545,  926, 2559,
00597      2559, 2548, 2547, 2554,  932, 2573,  936, 2568,  940, 2549,
00598      2544, 2529, 2537, 2545, 2535, 2886,  954, 2886, 2554, 2886,
00599      2534, 2541,  958, 2538, 2537, 2519, 2521,  945, 2886, 2886,
00600      2532, 2535,  963, 2886, 2886,  971, 2886, 2886, 2562, 2558,
00601      2555,  915,  666,  946,  734, 2532, 2521, 2518, 2525,  981,
00602       985,  989, 2522, 2517, 2502,  994, 1001, 1005, 2509, 2516,
00603      2502, 1009, 1017, 1025, 2521, 1033, 2488, 2489, 2470, 1037,
00604      2483, 1041, 2478, 2886, 1053, 2886, 1057, 2453, 2469, 2455,
00605      1063, 2434, 1073, 1079, 2422, 2425, 2402, 1091, 1095, 1099,
00606 
00607      2392, 1086, 2390, 1118, 2886, 2886, 1126,  984, 1157,  550,
00608      2386, 2358, 1131, 2371, 1135, 1142, 2349, 2367, 1147, 2356,
00609      1162, 2350, 1151, 1158, 1190, 1167, 2332, 1194, 1198, 2328,
00610      2298, 2305, 1210, 1214, 2284, 2300, 2261, 1218, 2291, 1234,
00611      2237, 2223, 2221, 1238, 1242, 2237, 2239, 2886, 1248, 2207,
00612      2184, 2203, 1254, 2189, 2186, 1258, 1223, 2146, 2130, 2100,
00613       235, 2101, 2052, 2058, 2049, 1262,  758, 1042,  816,  849,
00614      1237, 1040,  459,  659, 2033, 2039, 1280, 1285, 2019, 2035,
00615      1296, 1300, 2018, 2003, 1975, 1304, 1312, 1990, 1974, 1320,
00616      1324, 1328, 1921, 1336, 1901, 1870, 1869, 1340, 1882, 1880,
00617 
00618      1874, 2886, 1344, 2886, 1834, 1841, 1831, 1348, 1817, 1833,
00619      1811, 2886, 1818, 1787, 1803, 1820, 1813, 1798, 1738, 1736,
00620      1742, 1711, 1699, 1695, 1690, 1681, 1680,  796, 1020, 1242,
00621      1323, 1324, 1325, 1326,  875,  576, 1664, 1660, 1356, 1661,
00622      1660, 1374, 1620, 1615, 1602, 1378, 1603, 1620, 1382, 1386,
00623      1582, 1390, 1565, 2886, 1563, 1564, 1556, 2886, 1526, 1522,
00624      1520, 1398, 1490, 1493, 1495, 1414, 1362, 2886, 2886, 1418,
00625      1422, 1481, 1437, 1487, 1459, 1467, 1441, 1445, 1445, 1493,
00626      1421, 1541, 1245,  461, 1261, 1589, 1000, 1445, 1462, 1434,
00627      1439, 1482, 1429, 1423, 1423, 1486, 1502, 1390, 1508, 1512,
00628 
00629      2886, 1386, 1393, 1516, 1370, 1365, 1524, 1545, 1387, 1549,
00630      1355, 1335, 1563, 1579, 1583, 1403, 1598,  341, 1286, 1273,
00631      1605,  381, 1286, 1266, 1247, 1232, 1613, 1267, 1244, 1215,
00632      1620, 1628, 1287,  679, 1637, 1365, 1159, 1406, 1428, 1644,
00633       530, 1429, 1653, 1659, 1669, 1199, 1199, 1677, 1685, 1190,
00634      1185, 1693, 1697, 1701, 1182, 1713, 1163, 1717, 1721, 1737,
00635      2886, 1166, 1741, 1187, 1745, 2886, 1759, 2886, 1158, 1763,
00636      1767, 1179, 1174, 1169, 1173, 1128, 1771, 1169, 1095, 1544,
00637      1102, 1786, 1128, 1094, 1072, 1425, 1790, 1452, 1778, 1588,
00638      1809, 1507, 1057, 1813, 1796, 1829, 1071, 1833, 1839, 1843,
00639 
00640      1074, 1849, 1859, 1865, 1079, 2886, 1869, 1068, 1873, 1887,
00641      1046, 2886, 1891, 2886, 1005, 1895, 1726, 2886, 2886, 1427,
00642      1021, 1899, 1529, 1706, 1008,  988,  993,  980,  986,  972,
00643      1903, 1750, 1754,  960,  965,  920, 1918, 1747, 1529, 1603,
00644      1634, 1402, 1779, 1922, 1548, 1879, 1927, 1937, 1941, 1957,
00645      1961, 1970,  955, 1977,  931, 2886, 1981, 2886,  897,  887,
00646       886,  918,  870,  862,  856,  825,  816,  818,  842,  803,
00647       814, 1938, 1635, 1945, 1564, 1906, 1773, 1958, 1921, 1834,
00648      1988, 1993, 2006, 2010,  791,  783,  770,  762,  762, 1780,
00649       768,  754,  755,  733,  742,  728, 1882,  727,  717, 1973,
00650 
00651      1968, 1528, 1971, 1886, 1987, 1988, 1992, 1902, 2025,  703,
00652       703,  697,  687,  658,  625,  623,  636,  619,  634, 2029,
00653      2044,  605, 1994, 2007, 2009, 2019, 2013, 1919, 2061, 2067,
00654      2024,  603,  607,  601, 2886,  594, 2077,  591,  587,  564,
00655       568, 2083, 2092, 2098, 2102, 2115, 2059, 2119, 2080, 2084,
00656      2097, 2081, 2135, 2139, 2155,  547, 2159,  536, 2175, 2190,
00657      2151,  515,  495,  487,  483,  519,  514, 2194, 2170, 2198,
00658      2214, 2047, 2174, 2103, 2184, 2233,  467, 2237, 2248,  467,
00659      2253, 2180,  484,  439,  427,  425,  410, 2206, 2219,  440,
00660      2257, 2195, 2217, 2138, 2197, 2272, 2276, 2886,  436, 2281,
00661 
00662       374,  377,  369,  365, 2288, 2254, 2261, 2268, 2269, 2309,
00663      2318, 2325, 2299,  342,  352,  336,  319, 2267, 2305, 2302,
00664      2303, 2341, 2345, 2353,  326,  315,  258,  253, 2333, 2304,
00665      2078, 2118, 2363,   55,   44,   50,   56, 2338, 2329, 2158,
00666      2256,   67,   67,   88,  113, 2330, 2276, 2339, 2340,  130,
00667       146,  141,  142, 2341, 2343, 2352, 2354,  174,  170,  172,
00668       175, 2355, 2360, 2363, 2364,  182,  185, 2412, 2416, 2374,
00669      2393, 2431, 2441,  195, 2447, 2451, 2424, 2466, 2436, 2417,
00670      2471, 2481, 2490, 2506, 2511, 2456,  240,  259, 2521, 2529,
00671      2538, 2476,  271, 2486, 2496, 2545,  290, 2502, 2533, 2886,
00672 
00673      2594, 2600, 2606, 2612, 2618, 2624, 2630, 2636, 2641, 2647,
00674      2652, 2658, 2664
00675     } ;
00676 
00677 static yyconst flex_int16_t yy_def[1114] =
00678     {   0,
00679      1101, 1101, 1102, 1102, 1103, 1103, 1104, 1104, 1105, 1105,
00680      1105, 1105, 1106, 1106, 1107, 1107, 1108, 1108, 1100, 1100,
00681      1100, 1109, 1100, 1109, 1100, 1100, 1109, 1100,   27, 1100,
00682      1100, 1109, 1110, 1100, 1111, 1112, 1113, 1100, 1100, 1100,
00683      1100, 1100, 1100,   21, 1100, 1100, 1100, 1100, 1100, 1100,
00684      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1109, 1109,
00685        27,   27, 1109, 1109, 1109, 1109, 1109,   67,   67,   67,
00686      1100, 1100,   27,   27,   67, 1100, 1100,   67, 1100, 1100,
00687      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00688      1100, 1100,   67, 1110, 1111, 1112, 1113, 1100, 1100, 1100,
00689 
00690      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00691      1100, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,
00692        67,   67,   67,   67,   67, 1100,   27, 1100, 1100, 1100,
00693      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00694      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00695      1100, 1100, 1100, 1100, 1100,   27, 1100, 1100, 1100, 1100,
00696      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00697      1100, 1100, 1100,   67,   67,   67,   67,   67,   67,   67,
00698        67,   67, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00699      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00700 
00701      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00702      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00703      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00704      1100, 1100, 1100,   67,   67,   67,   67,   67,   67,   67,
00705        67,   67, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00706      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00707      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00708      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00709      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00710      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,
00711 
00712        67,   67,   67,   67,   67,   67,   67, 1100, 1100, 1100,
00713      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00714      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00715      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00716      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00717      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00718      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00719      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,
00720        67,   67,   67,   67, 1100, 1100, 1100, 1100, 1100, 1100,
00721      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00722 
00723      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00724      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00725      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00726      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00727      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00728      1100,   67,   67,   67,   67, 1100, 1100, 1100, 1100, 1100,
00729      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00730      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00731      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00732      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00733 
00734      1100, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,
00735      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00736      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00737      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00738      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00739      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00740      1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,   67,
00741        67,   67,   67,   67, 1100, 1100, 1100, 1100, 1100, 1100,
00742      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00743      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00744 
00745      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00746      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00747      1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,
00748        67,   67,   67,   67,   67,   67, 1100, 1100, 1100, 1100,
00749      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00750      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00751      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00752      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,   67,
00753        67,   67,   67,   67,   67,   67,   67, 1100, 1100, 1100,
00754      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00755 
00756      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00757      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00758      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00759        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
00760        67,   67, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00761      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00762      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00763      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00764      1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,   67,
00765        67,   67,   67, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00766 
00767      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00768      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00769      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00770      1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,   67,
00771        67,   67,   67,   67,   67,   67, 1100, 1100, 1100, 1100,
00772      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00773      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00774      1100,   67,   67,   67,   67,   67,   67,   67,   67,   67,
00775      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00776      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,
00777 
00778        67,   67,   67,   67,   67,   67,   67,   67, 1100, 1100,
00779      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00780      1100, 1100,   67,   67,   67,   67,   67,   67,   67,   67,
00781        67, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00782      1100, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67,
00783        67,   67,   67,   67,   67, 1100, 1100, 1100, 1100, 1100,
00784      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,
00785        67,   67,   67,   67,   67,   67, 1100, 1100, 1100, 1100,
00786      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00787        67,   67,   67,   67,   67, 1100, 1100, 1100, 1100, 1100,
00788 
00789      1100, 1100, 1100, 1100, 1100,   67,   67,   67,   67, 1100,
00790      1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,
00791        67, 1100, 1100, 1100, 1100, 1100, 1100, 1100,   67,   67,
00792        67,   67, 1100, 1100, 1100, 1100, 1100,   67,   67,   67,
00793        67, 1100, 1100, 1100, 1100,   67,   67,   67,   67, 1100,
00794      1100, 1100, 1100,   67,   67,   67,   67, 1100, 1100, 1100,
00795      1100,   67,   67,   67,   67, 1100, 1100, 1100, 1100,   67,
00796        67,   67,   67, 1100, 1100, 1100, 1100, 1100, 1100,   67,
00797        67,   67,   67, 1100, 1100, 1100, 1100, 1100,   67,   67,
00798      1100, 1100, 1100, 1100, 1100,   67, 1100, 1100, 1100,    0,
00799 
00800      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
00801      1100, 1100, 1100
00802     } ;
00803 
00804 static yyconst flex_int16_t yy_nxt[2940] =
00805     {   0,
00806        20,   21,   22,   21,   22,   20,   23, 1100,   25,   20,
00807        26,   27,   28,   29,   30,   20,   31,   20, 1100,   46,
00808      1100,   48,   32,   20,   21,   22,   21,   22,   20,   23,
00809        51,   25,   20,   26,   27,   28,   29,   30,   20,   31,
00810        20,   39,   39,   42,   42,   32,  142,  159,  187,   40,
00811        40,  143,  143,  188,   77,   78,   77,   78,   43,   43,
00812        44,   44,   44,   44,   61, 1100,   62, 1100,  111,   45,
00813        46,   47,   48,   49, 1100,   50, 1100,   46, 1100,   48,
00814      1100,   51,   92,   92,   92,   92,  112,  146,   51, 1042,
00815      1043,   52,   53,   92,   92,   92,   92,   54, 1044,  125,
00816 
00817       147,   55,  148,  149, 1045,  113,   56,   57,   58,   44,
00818        59,   44,   59, 1050, 1100, 1051, 1100,   60,   45,   61,
00819        47,   62,   49, 1100,   50, 1100,  114, 1100, 1052, 1100,
00820        63,  122,   72,   72,   72,   72,   93,  217,  259,  156,
00821        64,   65,  218,  260,  100,   60,   66,   60,   60,   60,
00822        67,  101,  123, 1053,   60,   68,   69,   70,   72,   73,
00823        72,   73,  174,   60,   60,  101,   60, 1100,   60, 1100,
00824        74, 1100, 1100, 1100, 1100,  278,  124,   75, 1058,  279,
00825       286, 1100,   60, 1100,  279, 1100, 1059, 1100, 1060, 1061,
00826        60,   75,   79,   77,   78,   77,   78,  126,  126,   80,
00827 
00828      1100,  158, 1100,   61,   81,   62,  126,  126,  242, 1100,
00829       127, 1100,  329, 1100, 1066, 1100,  330, 1067, 1068,   82,
00830        83, 1069,   93,   84,   60,   85,   86,   60,   87, 1074,
00831        88, 1075,   60,   89,   90,  177,   91,   77,   77,   77,
00832        77, 1084,   60, 1094, 1100,   60, 1100,   46,  175,   48,
00833        60,  150, 1100, 1100, 1100, 1100,  101, 1100,   60, 1100,
00834       151, 1100, 1095, 1100,  152, 1100,  622, 1100,  153,   60,
00835       101,   80,  180,  117, 1098, 1100,   60, 1100,   72,   72,
00836        72,   72,  623,   60, 1100,  118, 1100,   60, 1100,  176,
00837      1100,   82,   83, 1099,  178,   84,  127,  102,  103, 1037,
00838 
00839       104,   60,   88,   60, 1036,  105,  106,  119,   91,   44,
00840        59,   44,   59,   77,   77,   77,   77,   60,   45,   61,
00841        47,   62,   49,  191,   50,   77,   78,   77,   78,   60,
00842        63,   92,   92,   92,   92,  162,  192,  181,  193,  194,
00843        64,   65,  775,  775,  151,  775,   66,   60,  152, 1035,
00844        67, 1034,  153, 1028,   60,   68,   69,   70, 1100,   60,
00845      1100,   60,   72,   72,   72,   72,   60, 1100,   60, 1100,
00846      1027, 1100,   60, 1100,  100,  195,  179, 1026,  182,   60,
00847        60,  101,  778,  778,  196,  778,   60,  120,  197, 1025,
00848      1017,   60,  198,  235, 1016,  101,   72,   72,   72,   72,
00849 
00850        72,   72,   72,   72,   60,  121,  129,  130,  158,   60,
00851       131, 1015,  132,  133,   60,  134, 1014,  135,  234,  301,
00852       136,  137,   60,  138,  226,  226,  226,  226,  226,  236,
00853       226,  236,   60,   60,   60,  238,   60,  237,  227, 1013,
00854        60,   60,  227, 1005, 1004,  240,  239,  266,  266,  266,
00855       266,   60,   60,  241,   60,   60,   60,   60,   60,   60,
00856       303,  300,  267,  266,  266,  266,  266, 1003,  268,  226,
00857       226,  226,  226,   60,   60,   60, 1002, 1001,  267,  291,
00858       291,  291,  291,  227,  283,  289,  289, 1000,  289,  635,
00859       290,   60,  290,  292,  295,  295,  295,  295,  297,  297,
00860 
00861       297,  297,  226,  236,  226,  236,   60,   60,  296,  738,
00862       304,   60,  298,  998,  996,  307,  227,  989,  291,  302,
00863       291,  302,  988,  987,   60,  295,  305,  295,  305,   60,
00864       986,   60,  292,  985,  297,  306,  297,  306,  454,  296,
00865       308,  308,  308,  308,   60,  984,   60,   60,  298,   60,
00866       342,  342,  342,  342,   60,  309,  315,  315,  315,  315,
00867       792,  382,   60,   60,   60,   60,   60,  319,  319,  319,
00868       319,  316,   60,  332,  332,  332,  332,  317,   60,  380,
00869        60,   60,  320,  980,   60,  310,   60,  977,  333,  574,
00870       339,  339,  339,  339,  266,  266,  266,  266,   60,  965,
00871 
00872       321,  340,  964,  383,   60,  341,   60,   60,  687,  267,
00873       334,  347,  347,  347,  347,  381,  354,  354,  354,  354,
00874       366,  366,  366,  366,   60,   60,  348,  355,  291,  291,
00875       291,  291,  367,  367,  963,  367,  962,  368,   60,  369,
00876       959,  958,  292,  295,  295,  295,  295,  372,  372,  957,
00877       372,  956,  373,  452,  374,  946,   60,  296,  297,  297,
00878       297,  297,  375,  375,  941,  375,  940,  376,  939,  377,
00879       938,  937,  298,  378,  378,  378,  378,  291,  302,  291,
00880       302,  295,  305,  295,  305,  289,  289,  379,  289,   60,
00881       290,  292,  290,  636,   60,  296,   60,  297,  306,  297,
00882 
00883       306,  378,  384,  378,  384,  936,   60,   60,  453,   60,
00884        60,  298,   60,  508,   60,  379,  308,  308,  308,  308,
00885       385,  385,  385,  385,   60,  787,   60,   60,   60,  935,
00886        60,  309,  390,  390,  390,  390,  315,  315,  315,  315,
00887       392,  392,  392,  392,   60,  934,  933,  391,   60,  932,
00888       922,  316,  319,  319,  319,  319,  395,  395,  395,  395,
00889       398,  398,  398,  398,   60,  510,  455,  320,  405,  405,
00890       405,  405,   60,  921,  920,  399,  332,  332,  332,  332,
00891       919,  918,   60,  406,  409,  409,  409,  409,   60,  917,
00892        60,  333,  339,  339,  339,  339,  342,  342,  342,  342,
00893 
00894       916,  628,  915,  340,  914,  913,   60,  341,  417,  417,
00895       417,  417,  347,  347,  347,  347,  912,  449,  449,  418,
00896       449,  911,  450,  419,  451,  910,   60,  348,  354,  354,
00897       354,  354,  433,  433,  433,  433,  899,  898,  679,  355,
00898       366,  366,  366,  366,   60,  897,   60,  419,  378,  378,
00899       378,  378,  378,  384,  378,  384,  385,  385,  385,  385,
00900       896,  895,  379,  630,   60,  894,  379,  390,  390,  390,
00901       390,  460,  460,  460,  460,  392,  392,  392,  392,   60,
00902       631,   60,  391,  461,  461,  461,  461,  395,  395,  395,
00903       395,  398,  398,  398,  398,  893,  632,   60,  462,   60,
00904 
00905       466,  466,  466,  466,  892,   60,  399,  467,  467,  467,
00906       467,  405,  405,  405,  405,  474,  474,  474,  474,  891,
00907       686,  890,  468,   60,  889,  888,  406,  409,  409,  409,
00908       409,  887,  469,  482,  482,  482,  482,  417,  417,  417,
00909       417,  485,  485,  485,  485,   60,  367,  367,  418,  367,
00910       872,  368,  419,  369,  486,  493,  493,  493,  493,  433,
00911       433,  433,  433,   60,  372,  372,  507,  372,   60,  373,
00912       494,  374,  375,  375,  419,  375,   60,  376,  886,  377,
00913       885,  509,  460,  460,  460,  460,  461,  461,  461,  461,
00914       515,  515,  515,  515,   60,  466,  466,  466,  466,  871,
00915 
00916       870,  462,  467,  467,  467,  467,  519,  519,  519,  519,
00917       523,  523,  523,  523,   60,  868,  867,  468,  525,  525,
00918       525,  525,  567,  866,  865,  524,  474,  474,  474,  474,
00919        60,  864,   60,  526,  528,  528,  528,  528,  533,  533,
00920       533,  533,  482,  482,  482,  482,  863,  742,   60,  529,
00921        60,  861,  860,  534,  485,  485,  485,  485,  538,  538,
00922       538,  538,  680,  535,  544,  544,  544,  544,   60,  539,
00923        60,  859,   60,  540,  493,  493,  493,  493,  634,  545,
00924       549,  549,  549,  549,  856,  629,  546,   60,   60,  494,
00925        60,  547,  553,  553,  553,  553,  544,  544,  544,  544,
00926 
00927       556,  556,  556,  556,  559,   60,  846,  540,  560,  855,
00928       561,  545,  562,  563,  557,  564,  853,  848,  554,  449,
00929       449,  835,  449,  555,  450,  834,  451,  556,  566,  556,
00930       566,  833,  577,  577,  577,  577,  515,  515,  515,  515,
00931       830,  557,  825,  581,  581,  581,  581,  578,  519,  519,
00932       519,  519,  523,  523,  523,  523,   60,  579,  582,  591,
00933       591,  591,  591,  586,  586,  586,  586,  524,  592,  592,
00934       592,  592,  824,  821,   60,  568,  820,  819,  587,  569,
00935       818,  570,  817,  571,  572,  588,  573,   60,  815,   60,
00936       589,  525,  525,  525,  525,  528,  528,  528,  528,  594,
00937 
00938       594,  594,  594,  812,  789,   60,  526,   60,  811,  806,
00939       529,  533,  533,  533,  533,  598,  598,  598,  598,  538,
00940       538,  538,  538,  805,  616,  616,  534,  616,  801,  617,
00941       539,  618,  800,  798,  540,  603,  603,  603,  603,  544,
00942       544,  544,  544,  608,  608,  608,  608,  797,  604,  549,
00943       549,  549,  549,  785,  545,  553,  553,  553,  553,  556,
00944       556,  556,  556,  556,  566,  556,  566,   60,  783,  783,
00945       540,  783,   60,  557,  784,   60,  681,  557,  782,  737,
00946       633,  577,  577,  577,  577,   60,  639,  639,  639,  639,
00947        60,   60,   60,   60,  781,  739,  578,  581,  581,  581,
00948 
00949       581,  642,  642,  642,  642,  586,  586,  586,  586,   60,
00950        60,  780,  582,  646,  646,  646,  646,   60,  779,  777,
00951       587,  649,  649,  649,  649,  591,  591,  591,  591,  592,
00952       592,  592,  592,  776,  786,   60,  650,  594,  594,  594,
00953       594,  598,  598,  598,  598,  603,  603,  603,  603,  608,
00954       608,  608,  608,   60,   60,   60,   60,  639,  639,  639,
00955       639,  683,  682,  616,  616,  684,  616,  685,  617,  770,
00956       618,   60,   60,   60,   60,  642,  642,  642,  642,  646,
00957       646,  646,  646,  649,  649,  649,  649,  697,  697,  697,
00958       697,  699,  699,  699,  699,   60,  769,  788,  650,  708,
00959 
00960       708,  708,  708,  766,  772,  772,  700,  772,  762,  773,
00961       709,  774,  761,   60,  710,  714,  714,  714,  714,  715,
00962       715,  715,  715,  717,  717,  717,  717,  758,  775,  775,
00963       710,  775,  877,  716,  757,  755,   60,  718,  721,  721,
00964       721,  721,  727,  727,  727,  727,  715,  731,  715,  731,
00965        60,   60,  722,  790,   60,   60,  728,  752,   60,   60,
00966       716,  751,  734,  744,  744,  744,  744,  793,  719,   60,
00967       836,  723,  750,   60,  791,   60,   60,   60,  745,  729,
00968       747,  746,   60,  748,  748,  748,  748,  753,  753,  753,
00969       753,  743,  730,   60,  717,  732,  717,  732,  749,  838,
00970 
00971        60,  726,  754,  697,  697,  697,  697,  725,  718,  699,
00972       699,  699,  699,  756,  756,  756,  756,  759,  759,  759,
00973       759,  724,  720,   60,  700,  763,  763,  763,  763,  713,
00974       862,  862,  760,  862,  712,  711,  764,   60,  845,  733,
00975       765,   60,  721,  735,  721,  735,  708,  708,  708,  708,
00976       767,  767,  767,  767,  707,   60,  722,  709,   60,   60,
00977       706,  710,  826,  768,  771,  771,  771,  771,  827,  705,
00978       828,   60,  874,  829,  925,  736,   60,   60,   60,  765,
00979       714,  714,  714,  714,  715,  715,  715,  715,  879,   60,
00980       727,  740,  727,  740,   60,  710,   60,  704,  716,  717,
00981 
00982       717,  717,  717,  903,  728,  703,  721,  721,  721,  721,
00983       702,  701,   60,  718,  727,  727,  727,  727,   60,   60,
00984       722,  715,  731,  715,  731,  698,  843,  741,  728,  717,
00985       732,  717,  732,   60,  875,  716,   60,   60,  721,  735,
00986       721,  735,  696,  718,  695,  727,  740,  727,  740,  694,
00987        60,   60,  722,  693,  794,  794,  794,  794,   60,  728,
00988       744,  744,  744,  744,   60,   60,  692,   60,   60,  795,
00989       796,  796,  796,  796,   60,  745,   60,  876,  748,  748,
00990       748,  748,   60,   60,  901,   60,  799,  799,  799,  799,
00991       691,  690,   60,  749,  802,  802,  802,  802,  753,  753,
00992 
00993       753,  753,  804,  804,  804,  804,  689,  778,  778,  803,
00994       778,  688,  678,  754,  756,  756,  756,  756,  807,  807,
00995       807,  807,  759,  759,  759,  759,  677,  772,  772,  808,
00996       772,  676,  773,  809,  774,  675,  674,  760,  810,  810,
00997       810,  810,  763,  763,  763,  763,  813,  813,  813,  813,
00998       673,  869,  869,  764,  869,  783,  783,  765,  783,  814,
00999       767,  767,  767,  767,  816,  816,  816,  816,  771,  771,
01000       771,  771,  822,  822,  822,  822,  672,   60,  671,  809,
01001       670,  862,  862,  765,  862,  873,  823,  831,  831,  831,
01002       831,  822,  837,  822,  837,   60,  839,  847,  847,  847,
01003 
01004       847,  832,  840,   60,  841,  823,  669,  842,   60,   60,
01005       831,  844,  831,  844,  794,  794,  794,  794,  905,  668,
01006        60,   60,  878,  667,  832,  666,   60,   60,  665,  795,
01007       796,  796,  796,  796,  849,  849,  849,  849,   60,   60,
01008       799,  799,  799,  799,  851,  851,  851,  851,  664,  850,
01009       802,  802,  802,  802,  663,  662,  908,   60,  661,  852,
01010       854,  854,  854,  854,   60,  803,  804,  804,  804,  804,
01011       807,  807,  807,  807,  857,  857,  857,  857,  660,  659,
01012       658,  808,   60,  869,  869,  809,  869,  858,  810,  810,
01013       810,  810,  813,  813,  813,  813,  816,  816,  816,  816,
01014 
01015       822,  822,  822,  822,  831,  831,  831,  831,  657,   60,
01016       656,  809,  655,  880,  823,  654,   60,  653,  832,  822,
01017       837,  822,  837,  831,  844,  831,  844,   60,  847,  847,
01018       847,  847,   60,  823,  927,  931,   60,  832,  881,  881,
01019       881,  881,  849,  849,  849,  849,  904,  652,   60,  952,
01020        60,   60,   60,  882,   60,  907,  651,  850,  883,  883,
01021       883,  883,  851,  851,  851,  851,   60,   60,   60,   60,
01022        60,  884,  884,  884,  884,   60,  900,  852,  854,  854,
01023       854,  854,  857,  857,  857,  857,   60,  902,   60,  881,
01024       881,  881,  881,   60,  909,  909,  909,  909,   60,  648,
01025 
01026       906,   60,  924,   60,  882,  926,   60,  883,  883,  883,
01027       883,  884,  884,  884,  884,  923,   60,   60,   60,   60,
01028       647,   60,   60,  645,   60,  928,  909,  909,  909,  909,
01029       942,  942,  942,  942,  929,   60,   60,   60,  930,   60,
01030        60,  947,   60,   60,  943,  944,  944,  944,  944,   60,
01031       644,  950,  643,  948,   60,   60,  949,   60,  641,  945,
01032       951,   60,  942,  953,  942,  953,  640,   60,  944,  954,
01033       944,  954,   60,  638,  955,  637,  943,  992,  960,  960,
01034       960,  960,  945,  627,  942,  942,  942,  942,  626,   60,
01035       625,   60,  961,  966,  966,   60,  966,   60,  943,  944,
01036 
01037       944,  944,  944,  967,  967,  970,  967,   60,   60,   60,
01038        60,   60,  975,  945,   60,   60,  968,  968,  968,  968,
01039       960,  971,  960,  971, 1040,  972,   60,   60,   60,   60,
01040       969,  973,   60,   60,  961,  974,  942,  953,  942,  953,
01041       944,  954,  944,  954,  624,   60,  994,  621,   60,   60,
01042       943,   60,  983,  983,  945,  983,  968,  976,  968,  976,
01043       978,  978,  978,  978, 1041,   60,   60,   60,   60,   60,
01044       969,  990,  990,  620,  990,  979,  981,  981,  981,  981,
01045      1008,  999,  999,   60,  999,   60,   60,   60,   60,  619,
01046       982,  960,  960,  960,  960,  968,  968,  968,  968,  981,
01047 
01048       991,  981,  991,   60,   60,  961, 1048,  966,  966,  969,
01049       966,  615,  993,  982,   60,  960,  971,  960,  971,  614,
01050       967,  967,   60,  967,  995,   60,  613,   60,   60,  961,
01051       612, 1009,   60, 1006,  968,  976,  968,  976,  978,  978,
01052       978,  978,  611,   60,   60,   60,   60,   60,  969,  997,
01053       997,  997,  997,  979,  981,  981,  981,  981,  981,  991,
01054       981,  991,   60,   60,  610,   60, 1007,  609,  982,  607,
01055       606,  605,  982, 1010, 1010, 1010, 1010,  997,  997,  997,
01056       997,   60,  983,  983,   60,  983,   60,   60, 1011,  990,
01057       990,   60,  990, 1020, 1021, 1019, 1018,   60,   60,   60,
01058 
01059       999,  999,   60,  999, 1049,   60,   60,  602,  601,   60,
01060      1010, 1010, 1010, 1010, 1029,   60,   60,   60, 1012, 1022,
01061      1022, 1022, 1022,  600, 1055, 1011, 1023, 1023, 1023, 1023,
01062      1030,  599,   60,   60,   60,   60, 1031, 1032, 1039,  597,
01063       596, 1024, 1022, 1022, 1022, 1022, 1023, 1023, 1023, 1023,
01064        60,   60,   60,   60, 1033, 1033, 1033, 1033, 1038,   60,
01065        60, 1024,  595,   60, 1033, 1033, 1033, 1033,   60,   60,
01066        60,   60, 1046,   60,  593, 1047, 1054,   60,   60, 1056,
01067      1057,   60,   60, 1063,   60,   60,   60,   60,   60, 1062,
01068        60,   60,  590,   60,   60, 1070,  585,  584,  583, 1064,
01069 
01070        60, 1065,   60,   60,   60,  580,  576, 1071,   60, 1072,
01071      1073,   60,   60, 1076, 1076, 1076, 1076, 1078, 1078, 1078,
01072      1078, 1080,   60,   60,  575, 1087, 1087, 1077, 1087,  565,
01073       558, 1079, 1076, 1082, 1076, 1082,  552, 1088, 1088, 1081,
01074      1088,   60, 1078, 1083, 1078, 1083, 1077,   60, 1085, 1085,
01075      1085, 1085, 1076, 1076, 1076, 1076, 1079, 1093, 1093,  551,
01076      1093,   60, 1086, 1089,  550,   60, 1077, 1078, 1078, 1078,
01077      1078,   60, 1085, 1090, 1085, 1090,  548, 1097, 1097,   60,
01078      1097, 1079, 1076, 1082, 1076, 1082, 1086, 1087, 1087,   60,
01079      1087, 1078, 1083, 1078, 1083,  543, 1077, 1088, 1088,  542,
01080 
01081      1088,   60,  541, 1093, 1093, 1079, 1093, 1091, 1091, 1091,
01082      1091,   60, 1085, 1085, 1085, 1085,  537,  536,  532,   60,
01083        60, 1092, 1091, 1096, 1091, 1096, 1086,  531,  530,   60,
01084      1085, 1090, 1085, 1090, 1097, 1097, 1092, 1097,   60, 1091,
01085      1091, 1091, 1091,  527, 1086,  522, 1091, 1096, 1091, 1096,
01086       521,   60,  520, 1092,  518,  517,  516,  514,  513,   60,
01087      1092,  512,  511,  506,  505,  504,  503,  502,  501,   60,
01088       500,  499,  498,  497,  496,   60,  495,   60,  492,  491,
01089       490,  489,  488,  487,  484,  483,  481,  480,  479,  478,
01090       477,  476,  475,   60,   24,   24,   24,   24,   24,   24,
01091 
01092        33,   33,   33,   33,   33,   33,   35,   35,   35,   35,
01093        35,   35,   36,   36,   36,   36,   36,   36,   34,   34,
01094        34,   34,   34,   34,   37,   37,   37,   37,   37,   37,
01095        38,   38,   38,   38,   38,   38,   41,   41,   41,   41,
01096        41,   41,   60,  473,  472,   60,   60,   94,   94,   94,
01097        94,   94,   95,   95,  471,   95,   95,   95,   96,   96,
01098        96,  470,   96,   96,   97,   97,   97,   97,  465,   97,
01099       464,  463,  459,  458,  457,  456,  448,  447,  446,  445,
01100       444,  443,  442,  441,  440,  439,  438,  437,  436,  435,
01101       434,  432,  431,  430,  429,  428,  427,  426,  425,  424,
01102 
01103       423,  422,  421,  420,  416,  415,  414,  413,  412,  411,
01104       410,  408,  407,  404,  403,  402,  401,  400,  397,  396,
01105       394,  393,  389,  388,  387,  386,  371,  370,  365,  364,
01106       363,  362,  361,  360,  359,  358,  357,  356,  353,  352,
01107       351,  350,  349,  346,  345,  344,  343,  338,  337,  336,
01108       335,  331,  328,  327,  326,  325,  324,  323,  322,  318,
01109       314,  313,  312,  311,  299,  294,  293,  288,  287,  285,
01110       284,  282,  281,  280,  277,  276,  275,  274,  273,  272,
01111       271,  270,  269,  265,  264,  263,  262,  261,  258,  257,
01112       256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
01113 
01114       246,  245,  244,  243,  233,  232,  231,  230,  229,  228,
01115       225,  224,  223,  222,  221,  220,  219,  216,  215,  214,
01116       213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
01117       203,  202,  201,  200,  199,  190,  189,  186,  185,  184,
01118       183,  158,  173,  172,  171,  170,  169,  168,  167,  166,
01119       165,  164,  163,  161,  160,  157,  155,  154,  145,  144,
01120       141,  140,  139,  128,  116,  115,  110,  109,  108,  107,
01121        76,   99,   98,   76,   71,   71, 1100,   34,   34,   34,
01122        34,   34,   34,   34,   34,   19, 1100, 1100, 1100, 1100,
01123      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01124 
01125      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01126      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01127      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01128      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100
01129     } ;
01130 
01131 static yyconst flex_int16_t yy_chk[2940] =
01132     {   0,
01133         1,    1,    1,    1,    1,    1,    1,    0,    1,    1,
01134         1,    1,    1,    1,    1,    1,    1,    1,    0,   26,
01135         0,   26,    1,    2,    2,    2,    2,    2,    2,    2,
01136        26,    2,    2,    2,    2,    2,    2,    2,    2,    2,
01137         2,   15,   16,   17,   18,    2,   85,  102,  132,   15,
01138        16,   85,  102,  132,   29,   29,   29,   29,   17,   18,
01139        21,   21,   21,   21,   29,   24,   29,   24,   55,   21,
01140        21,   21,   21,   21,   24,   21,   24,   45,   24,   45,
01141        24,   21,   31,   31,   31,   31,   55,   88,   45, 1034,
01142      1035,   21,   21,   50,   50,   50,   50,   21, 1036,   70,
01143 
01144        88,   21,   88,   88, 1037,   56,   21,   21,   21,   22,
01145        22,   22,   22, 1042,   32, 1043,   32,   70,   22,   22,
01146        22,   22,   22,   32,   22,   32,   56,   32, 1044,   32,
01147        22,   68,   46,   46,   46,   46,   32,  155,  200,   93,
01148        22,   22,  155,  200,   46,  117,   22,   73,   93,   68,
01149        22,   46,   68, 1045,   73,   22,   22,   22,   27,   27,
01150        27,   27,  117,  117,   69,   46,   93,   27,   73,   27,
01151        27,   27,   60,   27,   60,  216,   69,   27, 1050,  216,
01152       223,   60,   69,   60,  223,   60, 1051,   60, 1052, 1053,
01153       182,   27,   30,   62,   62,   62,   62,  101,  101,   30,
01154 
01155        63,  101,   63,   62,   30,   62,   75,   75,  182,   63,
01156        75,   63,  258,   63, 1058,   63,  258, 1059, 1060,   30,
01157        30, 1061,   63,   30,  120,   30,   30,   75,   30, 1066,
01158        30, 1067,  118,   30,   30,  120,   30,   48,   48,   48,
01159        48, 1074,  120, 1087,   64,   75,   64,   48,  118,   48,
01160       118,   89,   65,   64,   65,   64,   48,   64,  123,   64,
01161        89,   65, 1088,   65,   89,   65,  561,   65,   89,  119,
01162        48,   49,  123,   64, 1093,   66,  123,   66,   72,   72,
01163        72,   72,  561,  121,   66,   65,   66,  119,   66,  119,
01164        66,   49,   49, 1097,  121,   49,  127,   49,   49, 1028,
01165 
01166        49,  121,   49,  127, 1027,   49,   49,   66,   49,   59,
01167        59,   59,   59,   77,   77,   77,   77,  127,   59,   59,
01168        59,   59,   59,  135,   59,   78,   78,   78,   78,  124,
01169        59,   92,   92,   92,   92,  105,  135,  124,  135,  135,
01170        59,   59,  718,  718,  105,  718,   59,  124,  105, 1026,
01171        59, 1025,  105, 1017,   78,   59,   59,   59,   67,  156,
01172        67,  122,  100,  100,  100,  100,  156,   67,  125,   67,
01173      1016,   67,   78,   67,  100,  136,  122, 1015,  125,  122,
01174       156,  100,  722,  722,  136,  722,  125,   67,  136, 1014,
01175      1004,  175,  136,  175, 1003,  100,  158,  158,  158,  158,
01176 
01177       164,  164,  164,  164,  235,   67,   80,   80,  158,  175,
01178        80, 1002,   80,   80,  174,   80, 1001,   80,  174,  235,
01179        80,   80,  235,   80,  167,  167,  167,  167,  176,  176,
01180       176,  176,  174,  177,  178,  178,  181,  177,  167,  999,
01181       179,  180,  176,  990,  987,  180,  179,  206,  206,  206,
01182       206,  177,  178,  181,  181,  234,  238,  176,  179,  180,
01183       238,  234,  206,  220,  220,  220,  220,  986,  206,  226,
01184       226,  226,  226,  234,  238,  176,  985,  984,  220,  228,
01185       228,  228,  228,  226,  220,  227,  227,  983,  227,  573,
01186       227,  684,  227,  228,  231,  231,  231,  231,  232,  232,
01187 
01188       232,  232,  236,  236,  236,  236,  239,  573,  231,  684,
01189       239,  242,  232,  980,  977,  242,  236,  967,  237,  237,
01190       237,  237,  966,  965,  239,  240,  240,  240,  240,  242,
01191       964,  236,  237,  963,  241,  241,  241,  241,  382,  240,
01192       243,  243,  243,  243,  382,  962,  303,  237,  241,  236,
01193       267,  267,  267,  267,  240,  243,  248,  248,  248,  248,
01194       741,  303,  382,  241,  303,  237,  300,  250,  250,  250,
01195       250,  248,  240,  260,  260,  260,  260,  248,  741,  300,
01196       510,  241,  250,  958,  300,  243,  304,  956,  260,  510,
01197       265,  265,  265,  265,  266,  266,  266,  266,  510,  941,
01198 
01199       250,  265,  940,  304,  304,  265,  636,  301,  636,  266,
01200       260,  272,  272,  272,  272,  301,  278,  278,  278,  278,
01201       290,  290,  290,  290,  636,  301,  272,  278,  291,  291,
01202       291,  291,  292,  292,  939,  292,  938,  292,  380,  292,
01203       936,  934,  291,  295,  295,  295,  295,  296,  296,  933,
01204       296,  932,  296,  380,  296,  922,  380,  295,  297,  297,
01205       297,  297,  298,  298,  919,  298,  918,  298,  917,  298,
01206       916,  915,  297,  299,  299,  299,  299,  302,  302,  302,
01207       302,  305,  305,  305,  305,  365,  365,  299,  365,  574,
01208       365,  302,  365,  574,  381,  305,  453,  306,  306,  306,
01209 
01210       306,  307,  307,  307,  307,  914,  302,  574,  381,  734,
01211       305,  306,  381,  453,  453,  307,  308,  308,  308,  308,
01212       309,  309,  309,  309,  302,  734,  306,  734,  305,  913,
01213       307,  308,  314,  314,  314,  314,  315,  315,  315,  315,
01214       316,  316,  316,  316,  306,  912,  911,  314,  307,  910,
01215       899,  315,  319,  319,  319,  319,  320,  320,  320,  320,
01216       323,  323,  323,  323,  455,  455,  383,  319,  329,  329,
01217       329,  329,  383,  898,  896,  323,  332,  332,  332,  332,
01218       895,  894,  455,  329,  333,  333,  333,  333,  567,  893,
01219       383,  332,  339,  339,  339,  339,  342,  342,  342,  342,
01220 
01221       892,  567,  891,  339,  889,  888,  567,  339,  343,  343,
01222       343,  343,  347,  347,  347,  347,  887,  379,  379,  343,
01223       379,  886,  379,  343,  379,  885,  628,  347,  354,  354,
01224       354,  354,  360,  360,  360,  360,  871,  870,  628,  354,
01225       366,  366,  366,  366,  628,  869,  569,  360,  378,  378,
01226       378,  378,  384,  384,  384,  384,  385,  385,  385,  385,
01227       868,  867,  378,  569,  569,  866,  384,  390,  390,  390,
01228       390,  391,  391,  391,  391,  392,  392,  392,  392,  570,
01229       570,  384,  390,  393,  393,  393,  393,  395,  395,  395,
01230       395,  398,  398,  398,  398,  865,  570,  570,  393,  384,
01231 
01232       399,  399,  399,  399,  864,  635,  398,  400,  400,  400,
01233       400,  405,  405,  405,  405,  406,  406,  406,  406,  863,
01234       635,  862,  400,  635,  861,  860,  405,  409,  409,  409,
01235       409,  859,  400,  415,  415,  415,  415,  417,  417,  417,
01236       417,  419,  419,  419,  419,  452,  438,  438,  417,  438,
01237       836,  438,  417,  438,  419,  427,  427,  427,  427,  433,
01238       433,  433,  433,  452,  443,  443,  452,  443,  836,  443,
01239       427,  443,  446,  446,  433,  446,  454,  446,  855,  446,
01240       853,  454,  460,  460,  460,  460,  461,  461,  461,  461,
01241       462,  462,  462,  462,  454,  466,  466,  466,  466,  835,
01242 
01243       834,  461,  467,  467,  467,  467,  468,  468,  468,  468,
01244       472,  472,  472,  472,  508,  830,  829,  467,  473,  473,
01245       473,  473,  508,  828,  827,  472,  474,  474,  474,  474,
01246       687,  826,  508,  473,  476,  476,  476,  476,  480,  480,
01247       480,  480,  482,  482,  482,  482,  825,  687,  687,  476,
01248       629,  821,  815,  480,  485,  485,  485,  485,  487,  487,
01249       487,  487,  629,  480,  491,  491,  491,  491,  629,  487,
01250       572,  811,  568,  487,  493,  493,  493,  493,  572,  491,
01251       494,  494,  494,  494,  808,  568,  491,  793,  572,  493,
01252       568,  491,  498,  498,  498,  498,  499,  499,  499,  499,
01253 
01254       500,  500,  500,  500,  502,  793,  793,  498,  502,  805,
01255       502,  499,  502,  502,  500,  502,  801,  797,  499,  504,
01256       504,  785,  504,  499,  504,  784,  504,  507,  507,  507,
01257       507,  783,  513,  513,  513,  513,  515,  515,  515,  515,
01258       781,  507,  779,  516,  516,  516,  516,  513,  519,  519,
01259       519,  519,  523,  523,  523,  523,  507,  513,  516,  524,
01260       524,  524,  524,  521,  521,  521,  521,  523,  526,  526,
01261       526,  526,  778,  776,  507,  509,  775,  774,  521,  509,
01262       773,  509,  772,  509,  509,  521,  509,  509,  769,  737,
01263       521,  525,  525,  525,  525,  528,  528,  528,  528,  529,
01264 
01265       529,  529,  529,  764,  737,  509,  525,  737,  762,  757,
01266       528,  533,  533,  533,  533,  534,  534,  534,  534,  538,
01267       538,  538,  538,  755,  557,  557,  533,  557,  751,  557,
01268       538,  557,  750,  747,  538,  540,  540,  540,  540,  544,
01269       544,  544,  544,  545,  545,  545,  545,  746,  540,  549,
01270       549,  549,  549,  730,  544,  553,  553,  553,  553,  556,
01271       556,  556,  556,  566,  566,  566,  566,  571,  728,  728,
01272       553,  728,  630,  556,  729,  683,  630,  566,  726,  683,
01273       571,  577,  577,  577,  577,  571,  578,  578,  578,  578,
01274       630,  685,  566,  683,  725,  685,  577,  581,  581,  581,
01275 
01276       581,  582,  582,  582,  582,  586,  586,  586,  586,  685,
01277       566,  724,  581,  587,  587,  587,  587,  733,  723,  720,
01278       586,  590,  590,  590,  590,  591,  591,  591,  591,  592,
01279       592,  592,  592,  719,  733,  733,  590,  594,  594,  594,
01280       594,  598,  598,  598,  598,  603,  603,  603,  603,  608,
01281       608,  608,  608,  631,  632,  633,  634,  639,  639,  639,
01282       639,  632,  631,  667,  667,  633,  667,  634,  667,  712,
01283       667,  631,  632,  633,  634,  642,  642,  642,  642,  646,
01284       646,  646,  646,  649,  649,  649,  649,  650,  650,  650,
01285       650,  652,  652,  652,  652,  736,  711,  736,  649,  662,
01286 
01287       662,  662,  662,  709,  716,  716,  652,  716,  706,  716,
01288       662,  716,  705,  736,  662,  666,  666,  666,  666,  670,
01289       670,  670,  670,  671,  671,  671,  671,  703,  820,  820,
01290       666,  820,  842,  670,  702,  698,  738,  671,  673,  673,
01291       673,  673,  677,  677,  677,  677,  679,  679,  679,  679,
01292       842,  681,  673,  738,  738,  786,  677,  695,  739,  742,
01293       679,  694,  681,  689,  689,  689,  689,  742,  671,  681,
01294       786,  673,  693,  786,  739,  679,  739,  742,  689,  677,
01295       691,  690,  788,  692,  692,  692,  692,  696,  696,  696,
01296       696,  688,  678,  679,  680,  680,  680,  680,  692,  788,
01297 
01298       788,  676,  696,  697,  697,  697,  697,  675,  680,  699,
01299       699,  699,  699,  700,  700,  700,  700,  704,  704,  704,
01300       704,  674,  672,  680,  699,  707,  707,  707,  707,  665,
01301       823,  823,  704,  823,  664,  663,  707,  792,  792,  680,
01302       707,  680,  682,  682,  682,  682,  708,  708,  708,  708,
01303       710,  710,  710,  710,  661,  792,  682,  708,  902,  839,
01304       660,  708,  780,  710,  713,  713,  713,  713,  780,  659,
01305       780,  682,  839,  780,  902,  682,  902,  839,  845,  713,
01306       714,  714,  714,  714,  715,  715,  715,  715,  845,  682,
01307       686,  686,  686,  686,  875,  714,  845,  657,  715,  717,
01308 
01309       717,  717,  717,  875,  686,  656,  721,  721,  721,  721,
01310       655,  653,  875,  717,  727,  727,  727,  727,  790,  686,
01311       721,  731,  731,  731,  731,  651,  790,  686,  727,  732,
01312       732,  732,  732,  840,  840,  731,  790,  686,  735,  735,
01313       735,  735,  648,  732,  647,  740,  740,  740,  740,  645,
01314       731,  840,  735,  644,  743,  743,  743,  743,  732,  740,
01315       744,  744,  744,  744,  841,  873,  643,  735,  731,  743,
01316       745,  745,  745,  745,  740,  744,  732,  841,  748,  748,
01317       748,  748,  841,  873,  873,  735,  749,  749,  749,  749,
01318       641,  640,  740,  748,  752,  752,  752,  752,  753,  753,
01319 
01320       753,  753,  754,  754,  754,  754,  638,  824,  824,  752,
01321       824,  637,  627,  753,  756,  756,  756,  756,  758,  758,
01322       758,  758,  759,  759,  759,  759,  626,  817,  817,  758,
01323       817,  625,  817,  758,  817,  624,  623,  759,  760,  760,
01324       760,  760,  763,  763,  763,  763,  765,  765,  765,  765,
01325       622,  832,  832,  763,  832,  833,  833,  763,  833,  765,
01326       767,  767,  767,  767,  770,  770,  770,  770,  771,  771,
01327       771,  771,  777,  777,  777,  777,  621,  838,  620,  770,
01328       619,  890,  890,  771,  890,  838,  777,  782,  782,  782,
01329       782,  787,  787,  787,  787,  838,  789,  795,  795,  795,
01330 
01331       795,  782,  789,  877,  789,  787,  618,  789,  789,  843,
01332       791,  791,  791,  791,  794,  794,  794,  794,  877,  617,
01333       787,  877,  843,  616,  791,  615,  789,  843,  614,  794,
01334       796,  796,  796,  796,  798,  798,  798,  798,  787,  791,
01335       799,  799,  799,  799,  800,  800,  800,  800,  613,  798,
01336       802,  802,  802,  802,  611,  610,  880,  791,  609,  800,
01337       803,  803,  803,  803,  880,  802,  804,  804,  804,  804,
01338       807,  807,  807,  807,  809,  809,  809,  809,  607,  606,
01339       605,  807,  880,  897,  897,  807,  897,  809,  810,  810,
01340       810,  810,  813,  813,  813,  813,  816,  816,  816,  816,
01341 
01342       822,  822,  822,  822,  831,  831,  831,  831,  601,  846,
01343       600,  816,  599,  846,  822,  597,  904,  596,  831,  837,
01344       837,  837,  837,  844,  844,  844,  844,  846,  847,  847,
01345       847,  847,  908,  837,  904,  908,  876,  844,  848,  848,
01346       848,  848,  849,  849,  849,  849,  876,  595,  837,  928,
01347       908,  879,  844,  848,  876,  879,  593,  849,  850,  850,
01348       850,  850,  851,  851,  851,  851,  837,  928,  872,  879,
01349       844,  852,  852,  852,  852,  874,  872,  851,  854,  854,
01350       854,  854,  857,  857,  857,  857,  872,  874,  878,  881,
01351       881,  881,  881,  874,  882,  882,  882,  882,  901,  589,
01352 
01353       878,  903,  901,  900,  881,  903,  878,  883,  883,  883,
01354       883,  884,  884,  884,  884,  900,  901,  905,  906,  903,
01355       588,  900,  907,  585,  923,  905,  909,  909,  909,  909,
01356       920,  920,  920,  920,  906,  905,  906,  924,  907,  925,
01357       907,  923,  923,  927,  920,  921,  921,  921,  921,  926,
01358       584,  926,  583,  924,  931,  924,  925,  925,  580,  921,
01359       927,  927,  929,  929,  929,  929,  579,  926,  930,  930,
01360       930,  930,  931,  576,  931,  575,  929,  972,  937,  937,
01361       937,  937,  930,  565,  942,  942,  942,  942,  564,  947,
01362       563,  929,  937,  943,  943,  972,  943,  930,  942,  944,
01363 
01364       944,  944,  944,  945,  945,  947,  945,  947, 1031,  929,
01365       949,  952,  952,  944,  950,  930,  946,  946,  946,  946,
01366       948,  948,  948,  948, 1031,  949, 1031,  951,  949,  952,
01367       946,  950,  950,  974,  948,  951,  953,  953,  953,  953,
01368       954,  954,  954,  954,  562,  951,  974,  560, 1032,  948,
01369       953,  974,  961,  961,  954,  961,  955,  955,  955,  955,
01370       957,  957,  957,  957, 1032,  953, 1032,  948,  994,  954,
01371       955,  969,  969,  559,  969,  957,  959,  959,  959,  959,
01372       994,  982,  982,  953,  982,  955,  994,  954, 1040,  558,
01373       959,  960,  960,  960,  960,  968,  968,  968,  968,  970,
01374 
01375       970,  970,  970,  955,  973,  960, 1040,  988,  988,  968,
01376       988,  555,  973,  970,  975,  971,  971,  971,  971,  554,
01377       989,  989,  973,  989,  975,  992,  552,  995,  970,  971,
01378       551,  995,  975,  992,  976,  976,  976,  976,  978,  978,
01379       978,  978,  550,  992,  971,  995,  970,  993,  976,  979,
01380       979,  979,  979,  978,  981,  981,  981,  981,  991,  991,
01381       991,  991,  971,  976,  547,  993,  993,  546,  981,  543,
01382       542,  541,  991,  996,  996,  996,  996,  997,  997,  997,
01383       997,  976, 1000, 1000, 1006, 1000, 1041,  991,  996, 1005,
01384      1005, 1007, 1005, 1008, 1009, 1007, 1006, 1018, 1008, 1009,
01385 
01386      1013, 1013, 1006, 1013, 1041,  991, 1047,  539,  537, 1007,
01387      1010, 1010, 1010, 1010, 1018, 1018, 1008, 1009,  996, 1011,
01388      1011, 1011, 1011,  536, 1047, 1010, 1012, 1012, 1012, 1012,
01389      1019,  535, 1020, 1021, 1030, 1019, 1020, 1021, 1030,  532,
01390       531, 1012, 1022, 1022, 1022, 1022, 1023, 1023, 1023, 1023,
01391      1020, 1021, 1030, 1019, 1024, 1024, 1024, 1024, 1029, 1039,
01392      1046, 1023,  530, 1029, 1033, 1033, 1033, 1033, 1038, 1048,
01393      1049, 1054, 1038, 1055,  527, 1039, 1046, 1039, 1046, 1048,
01394      1049, 1029, 1056, 1055, 1057, 1062, 1038, 1048, 1049, 1054,
01395      1063, 1055,  522, 1064, 1065, 1062,  520,  518,  517, 1056,
01396 
01397      1056, 1057, 1057, 1062, 1070,  514,  512, 1063, 1063, 1064,
01398      1065, 1064, 1065, 1068, 1068, 1068, 1068, 1069, 1069, 1069,
01399      1069, 1070, 1070, 1071,  511, 1077, 1077, 1068, 1077,  503,
01400       501, 1069, 1072, 1072, 1072, 1072,  497, 1079, 1079, 1071,
01401      1079, 1071, 1073, 1073, 1073, 1073, 1072, 1080, 1075, 1075,
01402      1075, 1075, 1076, 1076, 1076, 1076, 1073, 1086, 1086,  496,
01403      1086, 1072, 1075, 1080,  495, 1080, 1076, 1078, 1078, 1078,
01404      1078, 1073, 1081, 1081, 1081, 1081,  492, 1092, 1092, 1072,
01405      1092, 1078, 1082, 1082, 1082, 1082, 1081, 1094, 1094, 1073,
01406      1094, 1083, 1083, 1083, 1083,  490, 1082, 1095, 1095,  489,
01407 
01408      1095, 1081,  488, 1098, 1098, 1083, 1098, 1084, 1084, 1084,
01409      1084, 1082, 1085, 1085, 1085, 1085,  483,  481,  479, 1081,
01410      1083, 1084, 1089, 1089, 1089, 1089, 1085,  478,  477, 1082,
01411      1090, 1090, 1090, 1090, 1099, 1099, 1089, 1099, 1083, 1091,
01412      1091, 1091, 1091,  475, 1090,  471, 1096, 1096, 1096, 1096,
01413       470, 1089,  469, 1091,  465,  464,  463,  459,  458, 1090,
01414      1096,  457,  456,  451,  450,  449,  442,  441,  437, 1089,
01415       436,  435,  434,  432,  431, 1096,  429, 1090,  425,  424,
01416       423,  422,  421,  420,  418,  416,  414,  413,  412,  411,
01417       410,  408,  407, 1096, 1101, 1101, 1101, 1101, 1101, 1101,
01418 
01419      1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, 1103, 1103,
01420      1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1105, 1105,
01421      1105, 1105, 1105, 1105, 1106, 1106, 1106, 1106, 1106, 1106,
01422      1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108, 1108, 1108,
01423      1108, 1108, 1109,  404,  403, 1109, 1109, 1110, 1110, 1110,
01424      1110, 1110, 1111, 1111,  402, 1111, 1111, 1111, 1112, 1112,
01425      1112,  401, 1112, 1112, 1113, 1113, 1113, 1113,  397, 1113,
01426       396,  394,  389,  388,  387,  386,  377,  376,  375,  374,
01427       373,  372,  371,  370,  369,  368,  367,  364,  363,  362,
01428       361,  359,  358,  357,  356,  355,  353,  352,  351,  350,
01429 
01430       349,  346,  345,  344,  341,  340,  338,  337,  336,  335,
01431       334,  331,  330,  328,  327,  326,  325,  324,  322,  321,
01432       318,  317,  313,  312,  311,  310,  294,  293,  289,  288,
01433       287,  285,  284,  283,  282,  281,  280,  279,  277,  276,
01434       275,  274,  273,  271,  270,  269,  268,  264,  263,  262,
01435       261,  259,  257,  256,  255,  254,  253,  252,  251,  249,
01436       247,  246,  245,  244,  233,  230,  229,  225,  224,  222,
01437       221,  219,  218,  217,  215,  214,  213,  212,  211,  210,
01438       209,  208,  207,  205,  204,  203,  202,  201,  199,  198,
01439       197,  196,  195,  194,  193,  192,  191,  190,  189,  188,
01440 
01441       187,  186,  185,  184,  173,  172,  171,  170,  169,  168,
01442       166,  165,  163,  162,  161,  160,  159,  154,  153,  152,
01443       151,  150,  149,  148,  147,  146,  145,  144,  143,  142,
01444       141,  140,  139,  138,  137,  134,  133,  131,  130,  129,
01445       128,  126,  116,  115,  114,  113,  112,  111,  110,  109,
01446       108,  107,  106,  104,  103,   98,   91,   90,   87,   86,
01447        84,   83,   82,   79,   58,   57,   54,   53,   52,   51,
01448        47,   43,   40,   28,   25,   23,   19,   14,   13,    8,
01449         7,    6,    5,    4,    3, 1100, 1100, 1100, 1100, 1100,
01450      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01451 
01452      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01453      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01454      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
01455      1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100
01456     } ;
01457 
01458 /* Table of booleans, true if rule could match eol. */
01459 static yyconst flex_int32_t yy_rule_can_match_eol[132] =
01460     {   0,
01461 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01462     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01463     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01464     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01465     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01466     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
01467     0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0,     };
01468 
01469 /* The intent behind this definition is that it'll catch
01470  * any uses of REJECT which flex missed.
01471  */
01472 #define REJECT reject_used_but_not_detected
01473 #define yymore() yymore_used_but_not_detected
01474 #define YY_MORE_ADJ 0
01475 #define YY_RESTORE_YY_MORE_OFFSET
01476 #line 1 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01477 /* $Id: OSParseosrl.cpp 2857 2009-07-31 04:57:11Z kmartin $ */
01492 #line 17 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01493 
01494 #include <iostream>
01495 #include "OSDataStructures.h"
01496 #include "OSMathUtil.h"
01497 #include "OSConfig.h"
01498 
01499 #ifdef HAVE_CSTDIO
01500 # include <cstdio>
01501 #else
01502 # ifdef HAVE_STDIO_H
01503 #  include <stdio.h>
01504 # else
01505 #  error "don't have header file for stdio"
01506 # endif
01507 #endif
01508 
01509 #ifdef HAVE_CSTRING
01510 # include <cstring>
01511 #else
01512 # ifdef HAVE_STRING_H
01513 #  include <string.h>
01514 # else
01515 #  error "don't have header file for string"
01516 # endif
01517 #endif
01518 
01519 #ifdef HAVE_CMATH
01520 # include <cmath>
01521 #else
01522 # ifdef HAVE_MATH_H
01523 #  include <math.h>
01524 # else
01525 #  error "don't have header file for math"
01526 # endif
01527 #endif
01528  
01529 #include <sstream>  
01530 #include "OSrLParserData.h"
01531 #include "OSErrorClass.h"
01532 #include "OSParseosrl.tab.hpp"
01533 #include "OSResult.h"
01534 
01535 
01536 //#define PARSERDEBUG
01537 #ifdef PARSERDEBUG
01538         #define YY_PRINT  printf("%s", yytext);
01539 #else     
01540         #define YY_PRINT ;
01541 #endif
01542 
01543 
01544 #ifdef WIN_
01545   #define YY_NO_UNISTD_H
01546   #include <io.h>
01547   #include <process.h>
01548   #ifdef USE_OLD_UNISTD
01549      #include<sys/unistd.h>  
01550   #endif
01551 #endif
01552 
01553 using std::cout;
01554 using std::endl;
01555 using std::ostringstream;
01556      
01557 
01558 
01559 
01560 
01561 
01562 
01563 
01564 
01565 #line 102 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01566 #define YY_EXTRA_TYPE OSrLParserData*
01567 #line 1568 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.cpp"
01568 
01569 #define INITIAL 0
01570 #define osrlattributetext 1
01571 #define doublequoteattributetext 2
01572 #define singlequoteattributetext 3
01573 #define startelement 4
01574 #define elementtext 5
01575 #define itemtext 6
01576 #define comment 7
01577 #define xmldeclaration 8
01578 
01579 #ifndef YY_NO_UNISTD_H
01580 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01581  * down here because we want the user's section 1 to have been scanned first.
01582  * The user has a chance to override it with an option.
01583  */
01584 #include <unistd.h>
01585 #endif
01586 
01587 #ifndef YY_EXTRA_TYPE
01588 #define YY_EXTRA_TYPE void *
01589 #endif
01590 
01591 /* Holds the entire state of the reentrant scanner. */
01592 struct yyguts_t
01593     {
01594 
01595     /* User-defined. Not touched by flex. */
01596     YY_EXTRA_TYPE yyextra_r;
01597 
01598     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01599     FILE *yyin_r, *yyout_r;
01600     size_t yy_buffer_stack_top; 
01601     size_t yy_buffer_stack_max; 
01602     YY_BUFFER_STATE * yy_buffer_stack; 
01603     char yy_hold_char;
01604     int yy_n_chars;
01605     int yyleng_r;
01606     char *yy_c_buf_p;
01607     int yy_init;
01608     int yy_start;
01609     int yy_did_buffer_switch_on_eof;
01610     int yy_start_stack_ptr;
01611     int yy_start_stack_depth;
01612     int *yy_start_stack;
01613     yy_state_type yy_last_accepting_state;
01614     char* yy_last_accepting_cpos;
01615 
01616     int yylineno_r;
01617     int yy_flex_debug_r;
01618 
01619     char *yytext_r;
01620     int yy_more_flag;
01621     int yy_more_len;
01622 
01623     YYSTYPE * yylval_r;
01624 
01625     YYLTYPE * yylloc_r;
01626 
01627     }; /* end struct yyguts_t */
01628 
01629 static int yy_init_globals (yyscan_t yyscanner );
01630 
01631     /* This must go here because YYSTYPE and YYLTYPE are included
01632      * from bison output in section 1.*/
01633     #    define yylval yyg->yylval_r
01634     
01635     #    define yylloc yyg->yylloc_r
01636     
01637 int osrllex_init (yyscan_t* scanner);
01638 
01639 int osrllex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
01640 
01641 /* Accessor methods to globals.
01642    These are made visible to non-reentrant scanners for convenience. */
01643 
01644 int osrllex_destroy (yyscan_t yyscanner );
01645 
01646 int osrlget_debug (yyscan_t yyscanner );
01647 
01648 void osrlset_debug (int debug_flag ,yyscan_t yyscanner );
01649 
01650 YY_EXTRA_TYPE osrlget_extra (yyscan_t yyscanner );
01651 
01652 void osrlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01653 
01654 FILE *osrlget_in (yyscan_t yyscanner );
01655 
01656 void osrlset_in  (FILE * in_str ,yyscan_t yyscanner );
01657 
01658 FILE *osrlget_out (yyscan_t yyscanner );
01659 
01660 void osrlset_out  (FILE * out_str ,yyscan_t yyscanner );
01661 
01662 int osrlget_leng (yyscan_t yyscanner );
01663 
01664 char *osrlget_text (yyscan_t yyscanner );
01665 
01666 int osrlget_lineno (yyscan_t yyscanner );
01667 
01668 void osrlset_lineno (int line_number ,yyscan_t yyscanner );
01669 
01670 YYSTYPE * osrlget_lval (yyscan_t yyscanner );
01671 
01672 void osrlset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01673 
01674        YYLTYPE *osrlget_lloc (yyscan_t yyscanner );
01675     
01676         void osrlset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01677     
01678 /* Macros after this point can all be overridden by user definitions in
01679  * section 1.
01680  */
01681 
01682 #ifndef YY_SKIP_YYWRAP
01683 #ifdef __cplusplus
01684 extern "C" int osrlwrap (yyscan_t yyscanner );
01685 #else
01686 extern int osrlwrap (yyscan_t yyscanner );
01687 #endif
01688 #endif
01689 
01690     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
01691     
01692 #ifndef yytext_ptr
01693 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01694 #endif
01695 
01696 #ifdef YY_NEED_STRLEN
01697 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01698 #endif
01699 
01700 #ifndef YY_NO_INPUT
01701 
01702 #ifdef __cplusplus
01703 static int yyinput (yyscan_t yyscanner );
01704 #else
01705 static int input (yyscan_t yyscanner );
01706 #endif
01707 
01708 #endif
01709 
01710 /* Amount of stuff to slurp up with each read. */
01711 #ifndef YY_READ_BUF_SIZE
01712 #ifdef __ia64__
01713 /* On IA-64, the buffer size is 16k, not 8k */
01714 #define YY_READ_BUF_SIZE 16384
01715 #else
01716 #define YY_READ_BUF_SIZE 8192
01717 #endif /* __ia64__ */
01718 #endif
01719 
01720 /* Copy whatever the last rule matched to the standard output. */
01721 #ifndef ECHO
01722 /* This used to be an fputs(), but since the string might contain NUL's,
01723  * we now use fwrite().
01724  */
01725 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
01726 #endif
01727 
01728 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01729  * is returned in "result".
01730  */
01731 #ifndef YY_INPUT
01732 #define YY_INPUT(buf,result,max_size) \
01733         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01734                 { \
01735                 int c = '*'; \
01736                 size_t n; \
01737                 for ( n = 0; n < max_size && \
01738                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01739                         buf[n] = (char) c; \
01740                 if ( c == '\n' ) \
01741                         buf[n++] = (char) c; \
01742                 if ( c == EOF && ferror( yyin ) ) \
01743                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01744                 result = n; \
01745                 } \
01746         else \
01747                 { \
01748                 errno=0; \
01749                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01750                         { \
01751                         if( errno != EINTR) \
01752                                 { \
01753                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01754                                 break; \
01755                                 } \
01756                         errno=0; \
01757                         clearerr(yyin); \
01758                         } \
01759                 }\
01760 \
01761 
01762 #endif
01763 
01764 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01765  * we don't want an extra ';' after the "return" because that will cause
01766  * some compilers to complain about unreachable statements.
01767  */
01768 #ifndef yyterminate
01769 #define yyterminate() return YY_NULL
01770 #endif
01771 
01772 /* Number of entries by which start-condition stack grows. */
01773 #ifndef YY_START_STACK_INCR
01774 #define YY_START_STACK_INCR 25
01775 #endif
01776 
01777 /* Report a fatal error. */
01778 #ifndef YY_FATAL_ERROR
01779 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01780 #endif
01781 
01782 /* end tables serialization structures and prototypes */
01783 
01784 /* Default declaration of generated scanner - a define so the user can
01785  * easily add parameters.
01786  */
01787 #ifndef YY_DECL
01788 #define YY_DECL_IS_OURS 1
01789 
01790 extern int osrllex \
01791                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01792 
01793 #define YY_DECL int osrllex \
01794                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01795 #endif /* !YY_DECL */
01796 
01797 /* Code executed at the beginning of each rule, after yytext and yyleng
01798  * have been set up.
01799  */
01800 #ifndef YY_USER_ACTION
01801 #define YY_USER_ACTION
01802 #endif
01803 
01804 /* Code executed at the end of each rule. */
01805 #ifndef YY_BREAK
01806 #define YY_BREAK break;
01807 #endif
01808 
01809 #define YY_RULE_SETUP \
01810         YY_USER_ACTION
01811 
01814 YY_DECL
01815 {
01816         register yy_state_type yy_current_state;
01817         register char *yy_cp, *yy_bp;
01818         register int yy_act;
01819     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01820 
01821 #line 112 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01822 
01823 
01824 
01825 #line 1826 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.cpp"
01826 
01827     yylval = yylval_param;
01828 
01829     yylloc = yylloc_param;
01830 
01831         if ( !yyg->yy_init )
01832                 {
01833                 yyg->yy_init = 1;
01834 
01835 #ifdef YY_USER_INIT
01836                 YY_USER_INIT;
01837 #endif
01838 
01839                 if ( ! yyg->yy_start )
01840                         yyg->yy_start = 1;      /* first start state */
01841 
01842                 if ( ! yyin )
01843                         yyin = stdin;
01844 
01845                 if ( ! yyout )
01846                         yyout = stdout;
01847 
01848                 if ( ! YY_CURRENT_BUFFER ) {
01849                         osrlensure_buffer_stack (yyscanner);
01850                         YY_CURRENT_BUFFER_LVALUE =
01851                                 osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01852                 }
01853 
01854                 osrl_load_buffer_state(yyscanner );
01855                 }
01856 
01857         while ( 1 )             /* loops until end-of-file is reached */
01858                 {
01859                 yy_cp = yyg->yy_c_buf_p;
01860 
01861                 /* Support of yytext. */
01862                 *yy_cp = yyg->yy_hold_char;
01863 
01864                 /* yy_bp points to the position in yy_ch_buf of the start of
01865                  * the current run.
01866                  */
01867                 yy_bp = yy_cp;
01868 
01869                 yy_current_state = yyg->yy_start;
01870 yy_match:
01871                 do
01872                         {
01873                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01874                         if ( yy_accept[yy_current_state] )
01875                                 {
01876                                 yyg->yy_last_accepting_state = yy_current_state;
01877                                 yyg->yy_last_accepting_cpos = yy_cp;
01878                                 }
01879                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01880                                 {
01881                                 yy_current_state = (int) yy_def[yy_current_state];
01882                                 if ( yy_current_state >= 1101 )
01883                                         yy_c = yy_meta[(unsigned int) yy_c];
01884                                 }
01885                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01886                         ++yy_cp;
01887                         }
01888                 while ( yy_base[yy_current_state] != 2886 );
01889 
01890 yy_find_action:
01891                 yy_act = yy_accept[yy_current_state];
01892                 if ( yy_act == 0 )
01893                         { /* have to back up */
01894                         yy_cp = yyg->yy_last_accepting_cpos;
01895                         yy_current_state = yyg->yy_last_accepting_state;
01896                         yy_act = yy_accept[yy_current_state];
01897                         }
01898 
01899                 YY_DO_BEFORE_ACTION;
01900 
01901                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01902                         {
01903                         int yyl;
01904                         for ( yyl = 0; yyl < yyleng; ++yyl )
01905                                 if ( yytext[yyl] == '\n' )
01906                                            
01907     do{ yylineno++;
01908         yycolumn=0;
01909     }while(0)
01910 ;
01911                         }
01912 
01913 do_action:      /* This label is used only to access EOF actions. */
01914 
01915                 switch ( yy_act )
01916         { /* beginning of action switch */
01917                         case 0: /* must back up */
01918                         /* undo the effects of YY_DO_BEFORE_ACTION */
01919                         *yy_cp = yyg->yy_hold_char;
01920                         yy_cp = yyg->yy_last_accepting_cpos;
01921                         yy_current_state = yyg->yy_last_accepting_state;
01922                         goto yy_find_action;
01923 
01924 case 1:
01925 /* rule 1 can match eol */
01926 YY_RULE_SETUP
01927 #line 115 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01928 
01929         YY_BREAK
01930 /* General patterns matched in more than one element */
01931 case 2:
01932 YY_RULE_SETUP
01933 #line 119 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01934 {YY_PRINT;  yylval->sval = yytext; return(QUOTE);}
01935         YY_BREAK
01936 case 3:
01937 YY_RULE_SETUP
01938 #line 120 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01939 {YY_PRINT;  yylval->sval = yytext; return(TWOQUOTES);}
01940         YY_BREAK
01941 case 4:
01942 /* rule 4 can match eol */
01943 YY_RULE_SETUP
01944 #line 121 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01945 { YY_PRINT;     return(GREATERTHAN);}
01946         YY_BREAK
01947 case 5:
01948 /* rule 5 can match eol */
01949 YY_RULE_SETUP
01950 #line 122 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01951 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
01952         YY_BREAK
01953 case 6:
01954 /* rule 6 can match eol */
01955 YY_RULE_SETUP
01956 #line 124 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01957 {YY_PRINT; 
01958 char *yytextEnd;
01959 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
01960         /*
01961         if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
01962                 std::ostringstream outStr;
01963                 outStr << "encountered a spurious character in the lexer" << endl;
01964                 outStr << "The first character is: ";
01965                 outStr <<  yytext;
01966                 outStr << endl;
01967                 outStr << "See line number: " << yylineno << endl;  
01968                 throw ErrorClass( outStr.str());
01969         }
01970         */
01971 return(DOUBLE);}
01972         YY_BREAK
01973 case 7:
01974 /* rule 7 can match eol */
01975 YY_RULE_SETUP
01976 #line 140 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01977 {YY_PRINT;  return(ENDOFELEMENT);}
01978         YY_BREAK
01979 case 8:
01980 /* rule 8 can match eol */
01981 YY_RULE_SETUP
01982 #line 142 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01983 {YY_PRINT; return(NUMBEROFTIMESATT);}
01984         YY_BREAK
01985 case 9:
01986 /* rule 9 can match eol */
01987 YY_RULE_SETUP
01988 #line 143 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01989 {YY_PRINT; return(NUMBEROFSOLUTIONSATT);}
01990         YY_BREAK
01991 case 10:
01992 /* rule 10 can match eol */
01993 YY_RULE_SETUP
01994 #line 144 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
01995 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
01996         YY_BREAK
01997 case 11:
01998 /* rule 11 can match eol */
01999 YY_RULE_SETUP
02000 #line 145 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02001 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
02002         YY_BREAK
02003 case 12:
02004 /* rule 12 can match eol */
02005 YY_RULE_SETUP
02006 #line 146 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02007 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
02008         YY_BREAK
02009 case 13:
02010 /* rule 13 can match eol */
02011 YY_RULE_SETUP
02012 #line 147 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02013 {YY_PRINT; return(NUMBEROFOTHERVARIABLERESULTSATT);}
02014         YY_BREAK
02015 case 14:
02016 /* rule 14 can match eol */
02017 YY_RULE_SETUP
02018 #line 148 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02019 {YY_PRINT; return(NUMBEROFOTHEROBJECTIVERESULTSATT);}
02020         YY_BREAK
02021 case 15:
02022 /* rule 15 can match eol */
02023 YY_RULE_SETUP
02024 #line 149 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02025 {YY_PRINT; return(NUMBEROFOTHERCONSTRAINTRESULTSATT);}
02026         YY_BREAK
02027 case 16:
02028 /* rule 16 can match eol */
02029 YY_RULE_SETUP
02030 #line 150 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02031 {  YY_PRINT; return(NUMBEROFOTHERSOLUTIONRESULTSATT);}
02032         YY_BREAK
02033 case 17:
02034 /* rule 17 can match eol */
02035 YY_RULE_SETUP
02036 #line 151 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02037 {  YY_PRINT;  return(NUMBEROFITEMSATT);}
02038         YY_BREAK
02039 case 18:
02040 /* rule 18 can match eol */
02041 YY_RULE_SETUP
02042 #line 152 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02043 {YY_PRINT; return(NUMBEROFVARATT);}
02044         YY_BREAK
02045 case 19:
02046 /* rule 19 can match eol */
02047 YY_RULE_SETUP
02048 #line 153 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02049 {YY_PRINT; return(NUMBEROFOBJATT);}
02050         YY_BREAK
02051 case 20:
02052 /* rule 20 can match eol */
02053 YY_RULE_SETUP
02054 #line 154 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02055 {YY_PRINT; return(NUMBEROFCONATT);}
02056         YY_BREAK
02057 case 21:
02058 /* rule 21 can match eol */
02059 YY_RULE_SETUP
02060 #line 155 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02061 {YY_PRINT; return(IDXATT);}
02062         YY_BREAK
02063 case 22:
02064 /* rule 22 can match eol */
02065 YY_RULE_SETUP
02066 #line 156 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02067 {YY_PRINT;  return(TARGETOBJECTIVEIDXATT);}
02068         YY_BREAK
02069 case 23:
02070 /* rule 23 can match eol */
02071 YY_RULE_SETUP
02072 #line 158 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02073 {YY_PRINT; return(EMPTYNAMEATT);}
02074         YY_BREAK
02075 case 24:
02076 /* rule 24 can match eol */
02077 YY_RULE_SETUP
02078 #line 159 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02079 {YY_PRINT; return(EMPTYNAMEATT);}
02080         YY_BREAK
02081 case 25:
02082 /* rule 25 can match eol */
02083 YY_RULE_SETUP
02084 #line 160 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02085 {YY_PRINT; BEGIN doublequoteattributetext; return(NAMEATT);}
02086         YY_BREAK
02087 case 26:
02088 /* rule 26 can match eol */
02089 YY_RULE_SETUP
02090 #line 161 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02091 {YY_PRINT; BEGIN singlequoteattributetext; return(NAMEATT);}
02092         YY_BREAK
02093 case 27:
02094 /* rule 27 can match eol */
02095 YY_RULE_SETUP
02096 #line 162 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02097 {YY_PRINT; return(EMPTYTYPEATT);}
02098         YY_BREAK
02099 case 28:
02100 /* rule 28 can match eol */
02101 YY_RULE_SETUP
02102 #line 163 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02103 {YY_PRINT; return(EMPTYTYPEATT);}
02104         YY_BREAK
02105 case 29:
02106 /* rule 29 can match eol */
02107 YY_RULE_SETUP
02108 #line 164 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02109 {YY_PRINT; BEGIN doublequoteattributetext; return(TYPEATT);}
02110         YY_BREAK
02111 case 30:
02112 /* rule 30 can match eol */
02113 YY_RULE_SETUP
02114 #line 165 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02115 {YY_PRINT; BEGIN singlequoteattributetext; return(TYPEATT);}
02116         YY_BREAK
02117 case 31:
02118 /* rule 31 can match eol */
02119 YY_RULE_SETUP
02120 #line 166 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02121 {YY_PRINT; return(EMPTYCATEGORYATT);}
02122         YY_BREAK
02123 case 32:
02124 /* rule 32 can match eol */
02125 YY_RULE_SETUP
02126 #line 167 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02127 {YY_PRINT; return(EMPTYCATEGORYATT);}
02128         YY_BREAK
02129 case 33:
02130 /* rule 33 can match eol */
02131 YY_RULE_SETUP
02132 #line 168 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02133 {YY_PRINT; BEGIN doublequoteattributetext; return(CATEGORYATT);}
02134         YY_BREAK
02135 case 34:
02136 /* rule 34 can match eol */
02137 YY_RULE_SETUP
02138 #line 169 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02139 {YY_PRINT; BEGIN singlequoteattributetext; return(CATEGORYATT);}
02140         YY_BREAK
02141 case 35:
02142 /* rule 35 can match eol */
02143 YY_RULE_SETUP
02144 #line 170 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02145 {YY_PRINT; return(EMPTYUNITATT);}
02146         YY_BREAK
02147 case 36:
02148 /* rule 36 can match eol */
02149 YY_RULE_SETUP
02150 #line 171 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02151 {YY_PRINT; return(EMPTYUNITATT);}
02152         YY_BREAK
02153 case 37:
02154 /* rule 37 can match eol */
02155 YY_RULE_SETUP
02156 #line 172 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02157 {YY_PRINT; BEGIN doublequoteattributetext; return(UNITATT);}
02158         YY_BREAK
02159 case 38:
02160 /* rule 38 can match eol */
02161 YY_RULE_SETUP
02162 #line 173 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02163 {YY_PRINT; BEGIN singlequoteattributetext; return(UNITATT);}
02164         YY_BREAK
02165 case 39:
02166 /* rule 39 can match eol */
02167 YY_RULE_SETUP
02168 #line 174 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02169 {YY_PRINT; return(EMPTYVALUEATT);}
02170         YY_BREAK
02171 case 40:
02172 /* rule 40 can match eol */
02173 YY_RULE_SETUP
02174 #line 175 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02175 {YY_PRINT; return(EMPTYVALUEATT);}
02176         YY_BREAK
02177 case 41:
02178 /* rule 41 can match eol */
02179 YY_RULE_SETUP
02180 #line 176 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02181 {YY_PRINT; BEGIN doublequoteattributetext; return(VALUEATT);}
02182         YY_BREAK
02183 case 42:
02184 /* rule 42 can match eol */
02185 YY_RULE_SETUP
02186 #line 177 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02187 {YY_PRINT; BEGIN singlequoteattributetext; return(VALUEATT);}
02188         YY_BREAK
02189 case 43:
02190 /* rule 43 can match eol */
02191 YY_RULE_SETUP
02192 #line 178 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02193 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
02194         YY_BREAK
02195 case 44:
02196 /* rule 44 can match eol */
02197 YY_RULE_SETUP
02198 #line 179 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02199 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
02200         YY_BREAK
02201 case 45:
02202 /* rule 45 can match eol */
02203 YY_RULE_SETUP
02204 #line 180 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02205 {YY_PRINT; BEGIN doublequoteattributetext; return(DESCRIPTIONATT);}
02206         YY_BREAK
02207 case 46:
02208 /* rule 46 can match eol */
02209 YY_RULE_SETUP
02210 #line 181 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02211 {YY_PRINT; BEGIN singlequoteattributetext; return(DESCRIPTIONATT);}
02212         YY_BREAK
02213 case 47:
02214 /* rule 47 can match eol */
02215 YY_RULE_SETUP
02216 #line 184 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02217 {return(OSRLSTARTEMPTY);}
02218         YY_BREAK
02219 case 48:
02220 /* rule 48 can match eol */
02221 YY_RULE_SETUP
02222 #line 185 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02223 {YY_PRINT; BEGIN osrlattributetext;  return(OSRLSTART);}
02224         YY_BREAK
02225 case 49:
02226 /* rule 49 can match eol */
02227 YY_RULE_SETUP
02228 #line 186 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02229 {YY_PRINT; return(OSRLEND);}
02230         YY_BREAK
02231 case 50:
02232 /* rule 50 can match eol */
02233 YY_RULE_SETUP
02234 #line 187 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02235 {YY_PRINT; return(GENERALSTART);}
02236         YY_BREAK
02237 case 51:
02238 /* rule 51 can match eol */
02239 YY_RULE_SETUP
02240 #line 188 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02241 {YY_PRINT; return(GENERALEND);}
02242         YY_BREAK
02243 case 52:
02244 /* rule 52 can match eol */
02245 YY_RULE_SETUP
02246 #line 189 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02247 {YY_PRINT; return(SYSTEMSTART);}
02248         YY_BREAK
02249 case 53:
02250 /* rule 53 can match eol */
02251 YY_RULE_SETUP
02252 #line 190 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02253 {YY_PRINT; return(SYSTEMEND);}
02254         YY_BREAK
02255 case 54:
02256 /* rule 54 can match eol */
02257 YY_RULE_SETUP
02258 #line 191 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02259 {YY_PRINT; return(SERVICESTART);}
02260         YY_BREAK
02261 case 55:
02262 /* rule 55 can match eol */
02263 YY_RULE_SETUP
02264 #line 192 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02265 {YY_PRINT; return(SERVICEEND);}
02266         YY_BREAK
02267 case 56:
02268 /* rule 56 can match eol */
02269 YY_RULE_SETUP
02270 #line 193 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02271 {YY_PRINT; return(JOBSTART);}
02272         YY_BREAK
02273 case 57:
02274 /* rule 57 can match eol */
02275 YY_RULE_SETUP
02276 #line 194 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02277 {YY_PRINT;  return(JOBEND);}
02278         YY_BREAK
02279 case 58:
02280 /* rule 58 can match eol */
02281 YY_RULE_SETUP
02282 #line 196 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02283 {YY_PRINT;  return(SERVICEURISTART);}
02284         YY_BREAK
02285 case 59:
02286 /* rule 59 can match eol */
02287 YY_RULE_SETUP
02288 #line 197 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02289 {YY_PRINT; unput('<'); return(SERVICEURISTART);}
02290         YY_BREAK
02291 case 60:
02292 /* rule 60 can match eol */
02293 YY_RULE_SETUP
02294 #line 198 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02295 {YY_PRINT;  return(SERVICEURIEND);}
02296         YY_BREAK
02297 case 61:
02298 /* rule 61 can match eol */
02299 YY_RULE_SETUP
02300 #line 199 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02301 {YY_PRINT;  return(SERVICENAMESTART);}
02302         YY_BREAK
02303 case 62:
02304 /* rule 62 can match eol */
02305 YY_RULE_SETUP
02306 #line 200 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02307 {YY_PRINT; unput('<'); return(SERVICENAMESTART);}
02308         YY_BREAK
02309 case 63:
02310 /* rule 63 can match eol */
02311 YY_RULE_SETUP
02312 #line 201 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02313 {YY_PRINT;  return(SERVICENAMEEND);}
02314         YY_BREAK
02315 case 64:
02316 /* rule 64 can match eol */
02317 YY_RULE_SETUP
02318 #line 202 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02319 {YY_PRINT;  return(INSTANCENAMESTART);}
02320         YY_BREAK
02321 case 65:
02322 /* rule 65 can match eol */
02323 YY_RULE_SETUP
02324 #line 203 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02325 {YY_PRINT; unput('<'); return(INSTANCENAMESTART);}
02326         YY_BREAK
02327 case 66:
02328 /* rule 66 can match eol */
02329 YY_RULE_SETUP
02330 #line 204 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02331 {YY_PRINT;  return(INSTANCENAMEEND);}
02332         YY_BREAK
02333 case 67:
02334 /* rule 67 can match eol */
02335 YY_RULE_SETUP
02336 #line 205 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02337 {YY_PRINT;  return(JOBIDSTART);}
02338         YY_BREAK
02339 case 68:
02340 /* rule 68 can match eol */
02341 YY_RULE_SETUP
02342 #line 206 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02343 {YY_PRINT; unput('<'); return(JOBIDSTART);}
02344         YY_BREAK
02345 case 69:
02346 /* rule 69 can match eol */
02347 YY_RULE_SETUP
02348 #line 207 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02349 {YY_PRINT;  return(JOBIDEND);}
02350         YY_BREAK
02351 case 70:
02352 /* rule 70 can match eol */
02353 YY_RULE_SETUP
02354 #line 209 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02355 {YY_PRINT; return(TIMINGINFORMATIONSTART);}
02356         YY_BREAK
02357 case 71:
02358 /* rule 71 can match eol */
02359 YY_RULE_SETUP
02360 #line 210 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02361 {YY_PRINT;  return(TIMINGINFORMATIONEND);}
02362         YY_BREAK
02363 case 72:
02364 /* rule 72 can match eol */
02365 YY_RULE_SETUP
02366 #line 212 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02367 {YY_PRINT;  return(TIMESTART);}
02368         YY_BREAK
02369 case 73:
02370 /* rule 73 can match eol */
02371 YY_RULE_SETUP
02372 #line 213 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02373 {YY_PRINT;  return(TIMEEND);}
02374         YY_BREAK
02375 case 74:
02376 /* rule 74 can match eol */
02377 YY_RULE_SETUP
02378 #line 215 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02379 {YY_PRINT;  return(MESSAGESTART);}
02380         YY_BREAK
02381 case 75:
02382 /* rule 75 can match eol */
02383 YY_RULE_SETUP
02384 #line 216 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02385 {YY_PRINT; unput('<'); return(MESSAGESTART);}
02386         YY_BREAK
02387 case 76:
02388 /* rule 76 can match eol */
02389 YY_RULE_SETUP
02390 #line 217 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02391 {YY_PRINT;  return(MESSAGEEND);}
02392         YY_BREAK
02393 case 77:
02394 /* rule 77 can match eol */
02395 YY_RULE_SETUP
02396 #line 219 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02397 {YY_PRINT; return(GENERALSTATUSSTART);}
02398         YY_BREAK
02399 case 78:
02400 /* rule 78 can match eol */
02401 YY_RULE_SETUP
02402 #line 220 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02403 {YY_PRINT; return(GENERALSTATUSEND);}
02404         YY_BREAK
02405 case 79:
02406 /* rule 79 can match eol */
02407 YY_RULE_SETUP
02408 #line 222 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02409 {YY_PRINT; return(OPTIMIZATIONSTART);}
02410         YY_BREAK
02411 case 80:
02412 /* rule 80 can match eol */
02413 YY_RULE_SETUP
02414 #line 223 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02415 {YY_PRINT; return(OPTIMIZATIONEND);}
02416         YY_BREAK
02417 case 81:
02418 /* rule 81 can match eol */
02419 YY_RULE_SETUP
02420 #line 225 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02421 {YY_PRINT; return(SOLUTIONSTART);}
02422         YY_BREAK
02423 case 82:
02424 /* rule 82 can match eol */
02425 YY_RULE_SETUP
02426 #line 226 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02427 {YY_PRINT; return(SOLUTIONEND);}
02428         YY_BREAK
02429 case 83:
02430 /* rule 83 can match eol */
02431 YY_RULE_SETUP
02432 #line 228 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02433 {YY_PRINT; return(STATUSSTART);}
02434         YY_BREAK
02435 case 84:
02436 /* rule 84 can match eol */
02437 YY_RULE_SETUP
02438 #line 229 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02439 {YY_PRINT; return(STATUSEND);}
02440         YY_BREAK
02441 case 85:
02442 /* rule 85 can match eol */
02443 YY_RULE_SETUP
02444 #line 231 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02445 {YY_PRINT; return(VALUESSTART);}
02446         YY_BREAK
02447 case 86:
02448 /* rule 86 can match eol */
02449 YY_RULE_SETUP
02450 #line 232 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02451 {YY_PRINT; return(VALUESEND);}
02452         YY_BREAK
02453 case 87:
02454 /* rule 87 can match eol */
02455 YY_RULE_SETUP
02456 #line 234 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02457 {YY_PRINT; return(DUALVALUESSTART);}
02458         YY_BREAK
02459 case 88:
02460 /* rule 88 can match eol */
02461 YY_RULE_SETUP
02462 #line 235 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02463 {YY_PRINT; return(DUALVALUESEND);}
02464         YY_BREAK
02465 case 89:
02466 /* rule 89 can match eol */
02467 YY_RULE_SETUP
02468 #line 237 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02469 {YY_PRINT; return(VARSTART);}
02470         YY_BREAK
02471 case 90:
02472 /* rule 90 can match eol */
02473 YY_RULE_SETUP
02474 #line 238 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02475 {YY_PRINT; return(VAREND);}
02476         YY_BREAK
02477 case 91:
02478 /* rule 91 can match eol */
02479 YY_RULE_SETUP
02480 #line 239 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02481 {YY_PRINT; return(VARIABLESSTART);}
02482         YY_BREAK
02483 case 92:
02484 /* rule 92 can match eol */
02485 YY_RULE_SETUP
02486 #line 240 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02487 {YY_PRINT; return(VARIABLESEND);}
02488         YY_BREAK
02489 case 93:
02490 /* rule 93 can match eol */
02491 YY_RULE_SETUP
02492 #line 242 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02493 {YY_PRINT; return(OBJSTART);}
02494         YY_BREAK
02495 case 94:
02496 /* rule 94 can match eol */
02497 YY_RULE_SETUP
02498 #line 243 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02499 {YY_PRINT; return(OBJEND);}
02500         YY_BREAK
02501 case 95:
02502 /* rule 95 can match eol */
02503 YY_RULE_SETUP
02504 #line 244 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02505 {YY_PRINT; return(OBJECTIVESSTART);}
02506         YY_BREAK
02507 case 96:
02508 /* rule 96 can match eol */
02509 YY_RULE_SETUP
02510 #line 245 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02511 {YY_PRINT; return(OBJECTIVESEND);}
02512         YY_BREAK
02513 case 97:
02514 /* rule 97 can match eol */
02515 YY_RULE_SETUP
02516 #line 247 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02517 {YY_PRINT; return(CONSTART);}
02518         YY_BREAK
02519 case 98:
02520 /* rule 98 can match eol */
02521 YY_RULE_SETUP
02522 #line 248 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02523 {YY_PRINT; return(CONEND);}
02524         YY_BREAK
02525 case 99:
02526 /* rule 99 can match eol */
02527 YY_RULE_SETUP
02528 #line 249 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02529 {YY_PRINT; return(CONSTRAINTSSTART);}
02530         YY_BREAK
02531 case 100:
02532 /* rule 100 can match eol */
02533 YY_RULE_SETUP
02534 #line 250 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02535 {YY_PRINT; return(CONSTRAINTSEND);}
02536         YY_BREAK
02537 case 101:
02538 /* rule 101 can match eol */
02539 YY_RULE_SETUP
02540 #line 252 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02541 {YY_PRINT; return(OTHERSTART);}
02542         YY_BREAK
02543 case 102:
02544 /* rule 102 can match eol */
02545 YY_RULE_SETUP
02546 #line 253 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02547 {YY_PRINT; return(OTHEREND);}
02548         YY_BREAK
02549 case 103:
02550 /* rule 103 can match eol */
02551 YY_RULE_SETUP
02552 #line 255 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02553 {YY_PRINT; return(OTHERSOLUTIONRESULTSSTART);}
02554         YY_BREAK
02555 case 104:
02556 /* rule 104 can match eol */
02557 YY_RULE_SETUP
02558 #line 256 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02559 {YY_PRINT; return(OTHERSOLUTIONRESULTSEND);}
02560         YY_BREAK
02561 case 105:
02562 /* rule 105 can match eol */
02563 YY_RULE_SETUP
02564 #line 258 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02565 {YY_PRINT; return(OTHERSOLUTIONRESULTSTART);}
02566         YY_BREAK
02567 case 106:
02568 /* rule 106 can match eol */
02569 YY_RULE_SETUP
02570 #line 259 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02571 {YY_PRINT;  return(OTHERSOLUTIONRESULTEND);}
02572         YY_BREAK
02573 case 107:
02574 /* rule 107 can match eol */
02575 YY_RULE_SETUP
02576 #line 261 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02577 {  YY_PRINT;  return(ITEMEMPTY);}
02578         YY_BREAK
02579 case 108:
02580 /* rule 108 can match eol */
02581 YY_RULE_SETUP
02582 #line 262 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02583 { YY_PRINT; BEGIN itemtext; return(ITEMSTART);}
02584         YY_BREAK
02585 case 109:
02586 /* rule 109 can match eol */
02587 YY_RULE_SETUP
02588 #line 263 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02589 { YY_PRINT; return(ITEMEND);}
02590         YY_BREAK
02591 case 110:
02592 /* rule 110 can match eol */
02593 YY_RULE_SETUP
02594 #line 264 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02595 { YY_PRINT; return(ITEMSTARTANDEND);}
02596         YY_BREAK
02597 case 111:
02598 /* rule 111 can match eol */
02599 YY_RULE_SETUP
02600 #line 265 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02601 {YY_PRINT;  return(SERVICEURISTARTANDEND);}
02602         YY_BREAK
02603 case 112:
02604 /* rule 112 can match eol */
02605 YY_RULE_SETUP
02606 #line 266 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02607 {YY_PRINT;  return(SERVICENAMESTARTANDEND);}
02608         YY_BREAK
02609 case 113:
02610 /* rule 113 can match eol */
02611 YY_RULE_SETUP
02612 #line 267 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02613 {YY_PRINT;  return(INSTANCENAMESTARTANDEND);}
02614         YY_BREAK
02615 case 114:
02616 /* rule 114 can match eol */
02617 YY_RULE_SETUP
02618 #line 268 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02619 {YY_PRINT;  return(JOBIDSTARTANDEND);}
02620         YY_BREAK
02621 case 115:
02622 /* rule 115 can match eol */
02623 YY_RULE_SETUP
02624 #line 269 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02625 {YY_PRINT;  return(TIMESTARTANDEND);}
02626         YY_BREAK
02627 case 116:
02628 /* rule 116 can match eol */
02629 YY_RULE_SETUP
02630 #line 270 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02631 {YY_PRINT;  return(MESSAGESTARTANDEND);}
02632         YY_BREAK
02633 case 117:
02634 /* rule 117 can match eol */
02635 YY_RULE_SETUP
02636 #line 274 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02637 { YY_PRINT;  yylval->sval = strdup( yytext);   yyextra->errorText = yylval->sval;    /*yylval->sval = yytext;*/  return (ELEMENTTEXT); }
02638         YY_BREAK
02639 case 118:
02640 /* rule 118 can match eol */
02641 YY_RULE_SETUP
02642 #line 275 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02643 { YY_PRINT;  yylval->sval = strdup( yytext); BEGIN 0;  yyextra->errorText = yylval->sval;    /*yylval->sval = yytext;*/  return (ITEMTEXT); }
02644         YY_BREAK
02645 case 119:
02646 YY_RULE_SETUP
02647 #line 277 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02648 BEGIN comment;
02649         YY_BREAK
02650 case 120:
02651 #line 279 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02652 case 121:
02653 /* rule 121 can match eol */
02654 YY_RULE_SETUP
02655 #line 279 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02656 ;
02657         YY_BREAK
02658 case 122:
02659 YY_RULE_SETUP
02660 #line 280 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02661 BEGIN 0;
02662         YY_BREAK
02663 case 123:
02664 YY_RULE_SETUP
02665 #line 282 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02666 BEGIN xmldeclaration;
02667         YY_BREAK
02668 case 124:
02669 #line 284 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02670 case 125:
02671 /* rule 125 can match eol */
02672 YY_RULE_SETUP
02673 #line 284 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02674 ;
02675         YY_BREAK
02676 case 126:
02677 YY_RULE_SETUP
02678 #line 285 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02679 BEGIN 0;
02680         YY_BREAK
02681 case 127:
02682 /* rule 127 can match eol */
02683 YY_RULE_SETUP
02684 #line 288 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02685 {YY_PRINT;  BEGIN 0; yylval->sval = strdup(yytext);  /* yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
02686         YY_BREAK
02687 case 128:
02688 /* rule 128 can match eol */
02689 YY_RULE_SETUP
02690 #line 289 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02691 {YY_PRINT;  BEGIN 0; yylval->sval = strdup(yytext);   /*yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
02692         YY_BREAK
02693 case 129:
02694 /* rule 129 can match eol */
02695 YY_RULE_SETUP
02696 #line 290 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02697 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/  yylval->sval = yytext; return(OSRLATTRIBUTETEXT);}
02698         YY_BREAK
02699 case 130:
02700 /* rule 130 can match eol */
02701 YY_RULE_SETUP
02702 #line 293 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02703 { 
02704         std::string error;
02705         std::ostringstream outStr;
02706         outStr << "encountered a spurious character in the lexer" << std::endl;
02707         outStr << "The first character is: ";
02708         outStr <<  yytext;
02709         outStr << std::endl;
02710         outStr << "See line number: " << yylineno << std::endl;  
02711         error = outStr.str();
02712         throw ErrorClass( error);
02713 }
02714         YY_BREAK
02715 case 131:
02716 YY_RULE_SETUP
02717 #line 305 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
02718 ECHO;
02719         YY_BREAK
02720 #line 2721 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.cpp"
02721 case YY_STATE_EOF(INITIAL):
02722 case YY_STATE_EOF(osrlattributetext):
02723 case YY_STATE_EOF(doublequoteattributetext):
02724 case YY_STATE_EOF(singlequoteattributetext):
02725 case YY_STATE_EOF(startelement):
02726 case YY_STATE_EOF(elementtext):
02727 case YY_STATE_EOF(itemtext):
02728 case YY_STATE_EOF(comment):
02729 case YY_STATE_EOF(xmldeclaration):
02730         yyterminate();
02731 
02732         case YY_END_OF_BUFFER:
02733                 {
02734                 /* Amount of text matched not including the EOB char. */
02735                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
02736 
02737                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02738                 *yy_cp = yyg->yy_hold_char;
02739                 YY_RESTORE_YY_MORE_OFFSET
02740 
02741                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02742                         {
02743                         /* We're scanning a new file or input source.  It's
02744                          * possible that this happened because the user
02745                          * just pointed yyin at a new source and called
02746                          * osrllex().  If so, then we have to assure
02747                          * consistency between YY_CURRENT_BUFFER and our
02748                          * globals.  Here is the right place to do so, because
02749                          * this is the first action (other than possibly a
02750                          * back-up) that will match for the new input source.
02751                          */
02752                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02753                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
02754                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02755                         }
02756 
02757                 /* Note that here we test for yy_c_buf_p "<=" to the position
02758                  * of the first EOB in the buffer, since yy_c_buf_p will
02759                  * already have been incremented past the NUL character
02760                  * (since all states make transitions on EOB to the
02761                  * end-of-buffer state).  Contrast this with the test
02762                  * in input().
02763                  */
02764                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02765                         { /* This was really a NUL. */
02766                         yy_state_type yy_next_state;
02767 
02768                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02769 
02770                         yy_current_state = yy_get_previous_state( yyscanner );
02771 
02772                         /* Okay, we're now positioned to make the NUL
02773                          * transition.  We couldn't have
02774                          * yy_get_previous_state() go ahead and do it
02775                          * for us because it doesn't know how to deal
02776                          * with the possibility of jamming (and we don't
02777                          * want to build jamming into it because then it
02778                          * will run more slowly).
02779                          */
02780 
02781                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02782 
02783                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02784 
02785                         if ( yy_next_state )
02786                                 {
02787                                 /* Consume the NUL. */
02788                                 yy_cp = ++yyg->yy_c_buf_p;
02789                                 yy_current_state = yy_next_state;
02790                                 goto yy_match;
02791                                 }
02792 
02793                         else
02794                                 {
02795                                 yy_cp = yyg->yy_c_buf_p;
02796                                 goto yy_find_action;
02797                                 }
02798                         }
02799 
02800                 else switch ( yy_get_next_buffer( yyscanner ) )
02801                         {
02802                         case EOB_ACT_END_OF_FILE:
02803                                 {
02804                                 yyg->yy_did_buffer_switch_on_eof = 0;
02805 
02806                                 if ( osrlwrap(yyscanner ) )
02807                                         {
02808                                         /* Note: because we've taken care in
02809                                          * yy_get_next_buffer() to have set up
02810                                          * yytext, we can now set up
02811                                          * yy_c_buf_p so that if some total
02812                                          * hoser (like flex itself) wants to
02813                                          * call the scanner after we return the
02814                                          * YY_NULL, it'll still work - another
02815                                          * YY_NULL will get returned.
02816                                          */
02817                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02818 
02819                                         yy_act = YY_STATE_EOF(YY_START);
02820                                         goto do_action;
02821                                         }
02822 
02823                                 else
02824                                         {
02825                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02826                                                 YY_NEW_FILE;
02827                                         }
02828                                 break;
02829                                 }
02830 
02831                         case EOB_ACT_CONTINUE_SCAN:
02832                                 yyg->yy_c_buf_p =
02833                                         yyg->yytext_ptr + yy_amount_of_matched_text;
02834 
02835                                 yy_current_state = yy_get_previous_state( yyscanner );
02836 
02837                                 yy_cp = yyg->yy_c_buf_p;
02838                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02839                                 goto yy_match;
02840 
02841                         case EOB_ACT_LAST_MATCH:
02842                                 yyg->yy_c_buf_p =
02843                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02844 
02845                                 yy_current_state = yy_get_previous_state( yyscanner );
02846 
02847                                 yy_cp = yyg->yy_c_buf_p;
02848                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02849                                 goto yy_find_action;
02850                         }
02851                 break;
02852                 }
02853 
02854         default:
02855                 YY_FATAL_ERROR(
02856                         "fatal flex scanner internal error--no action found" );
02857         } /* end of action switch */
02858                 } /* end of scanning one token */
02859 } /* end of osrllex */
02860 
02861 /* yy_get_next_buffer - try to read in a new buffer
02862  *
02863  * Returns a code representing an action:
02864  *      EOB_ACT_LAST_MATCH -
02865  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02866  *      EOB_ACT_END_OF_FILE - end of file
02867  */
02868 static int yy_get_next_buffer (yyscan_t yyscanner)
02869 {
02870     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02871         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02872         register char *source = yyg->yytext_ptr;
02873         register int number_to_move, i;
02874         int ret_val;
02875 
02876         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02877                 YY_FATAL_ERROR(
02878                 "fatal flex scanner internal error--end of buffer missed" );
02879 
02880         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02881                 { /* Don't try to fill the buffer, so this is an EOF. */
02882                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02883                         {
02884                         /* We matched a single character, the EOB, so
02885                          * treat this as a final EOF.
02886                          */
02887                         return EOB_ACT_END_OF_FILE;
02888                         }
02889 
02890                 else
02891                         {
02892                         /* We matched some text prior to the EOB, first
02893                          * process it.
02894                          */
02895                         return EOB_ACT_LAST_MATCH;
02896                         }
02897                 }
02898 
02899         /* Try to read more data. */
02900 
02901         /* First move last chars to start of buffer. */
02902         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02903 
02904         for ( i = 0; i < number_to_move; ++i )
02905                 *(dest++) = *(source++);
02906 
02907         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02908                 /* don't do the read, it's not guaranteed to return an EOF,
02909                  * just force an EOF
02910                  */
02911                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02912 
02913         else
02914                 {
02915                         int num_to_read =
02916                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02917 
02918                 while ( num_to_read <= 0 )
02919                         { /* Not enough room in the buffer - grow it. */
02920 
02921                         /* just a shorter name for the current buffer */
02922                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02923 
02924                         int yy_c_buf_p_offset =
02925                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02926 
02927                         if ( b->yy_is_our_buffer )
02928                                 {
02929                                 int new_size = b->yy_buf_size * 2;
02930 
02931                                 if ( new_size <= 0 )
02932                                         b->yy_buf_size += b->yy_buf_size / 8;
02933                                 else
02934                                         b->yy_buf_size *= 2;
02935 
02936                                 b->yy_ch_buf = (char *)
02937                                         /* Include room in for 2 EOB chars. */
02938                                         osrlrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02939                                 }
02940                         else
02941                                 /* Can't grow it, we don't own it. */
02942                                 b->yy_ch_buf = 0;
02943 
02944                         if ( ! b->yy_ch_buf )
02945                                 YY_FATAL_ERROR(
02946                                 "fatal error - scanner input buffer overflow" );
02947 
02948                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02949 
02950                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02951                                                 number_to_move - 1;
02952 
02953                         }
02954 
02955                 if ( num_to_read > YY_READ_BUF_SIZE )
02956                         num_to_read = YY_READ_BUF_SIZE;
02957 
02958                 /* Read in more data. */
02959                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02960                         yyg->yy_n_chars, (size_t) num_to_read );
02961 
02962                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02963                 }
02964 
02965         if ( yyg->yy_n_chars == 0 )
02966                 {
02967                 if ( number_to_move == YY_MORE_ADJ )
02968                         {
02969                         ret_val = EOB_ACT_END_OF_FILE;
02970                         osrlrestart(yyin  ,yyscanner);
02971                         }
02972 
02973                 else
02974                         {
02975                         ret_val = EOB_ACT_LAST_MATCH;
02976                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02977                                 YY_BUFFER_EOF_PENDING;
02978                         }
02979                 }
02980 
02981         else
02982                 ret_val = EOB_ACT_CONTINUE_SCAN;
02983 
02984         if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02985                 /* Extend the array by 50%, plus the number we really need. */
02986                 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
02987                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osrlrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
02988                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02989                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02990         }
02991 
02992         yyg->yy_n_chars += number_to_move;
02993         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02994         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02995 
02996         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02997 
02998         return ret_val;
02999 }
03000 
03001 /* yy_get_previous_state - get the state just before the EOB char was reached */
03002 
03003     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
03004 {
03005         register yy_state_type yy_current_state;
03006         register char *yy_cp;
03007     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03008 
03009         yy_current_state = yyg->yy_start;
03010 
03011         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
03012                 {
03013                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
03014                 if ( yy_accept[yy_current_state] )
03015                         {
03016                         yyg->yy_last_accepting_state = yy_current_state;
03017                         yyg->yy_last_accepting_cpos = yy_cp;
03018                         }
03019                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
03020                         {
03021                         yy_current_state = (int) yy_def[yy_current_state];
03022                         if ( yy_current_state >= 1101 )
03023                                 yy_c = yy_meta[(unsigned int) yy_c];
03024                         }
03025                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
03026                 }
03027 
03028         return yy_current_state;
03029 }
03030 
03031 /* yy_try_NUL_trans - try to make a transition on the NUL character
03032  *
03033  * synopsis
03034  *      next_state = yy_try_NUL_trans( current_state );
03035  */
03036     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
03037 {
03038         register int yy_is_jam;
03039     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
03040         register char *yy_cp = yyg->yy_c_buf_p;
03041 
03042         register YY_CHAR yy_c = 1;
03043         if ( yy_accept[yy_current_state] )
03044                 {
03045                 yyg->yy_last_accepting_state = yy_current_state;
03046                 yyg->yy_last_accepting_cpos = yy_cp;
03047                 }
03048         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
03049                 {
03050                 yy_current_state = (int) yy_def[yy_current_state];
03051                 if ( yy_current_state >= 1101 )
03052                         yy_c = yy_meta[(unsigned int) yy_c];
03053                 }
03054         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
03055         yy_is_jam = (yy_current_state == 1100);
03056 
03057         return yy_is_jam ? 0 : yy_current_state;
03058 }
03059 
03060     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
03061 {
03062         register char *yy_cp;
03063     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03064 
03065     yy_cp = yyg->yy_c_buf_p;
03066 
03067         /* undo effects of setting up yytext */
03068         *yy_cp = yyg->yy_hold_char;
03069 
03070         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
03071                 { /* need to shift things up to make room */
03072                 /* +2 for EOB chars. */
03073                 register int number_to_move = yyg->yy_n_chars + 2;
03074                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
03075                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
03076                 register char *source =
03077                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
03078 
03079                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
03080                         *--dest = *--source;
03081 
03082                 yy_cp += (int) (dest - source);
03083                 yy_bp += (int) (dest - source);
03084                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
03085                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
03086 
03087                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
03088                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
03089                 }
03090 
03091         *--yy_cp = (char) c;
03092 
03093     if ( c == '\n' ){
03094         --yylineno;
03095     }
03096 
03097         yyg->yytext_ptr = yy_bp;
03098         yyg->yy_hold_char = *yy_cp;
03099         yyg->yy_c_buf_p = yy_cp;
03100 }
03101 
03102 #ifndef YY_NO_INPUT
03103 #ifdef __cplusplus
03104     static int yyinput (yyscan_t yyscanner)
03105 #else
03106     static int input  (yyscan_t yyscanner)
03107 #endif
03108 
03109 {
03110         int c;
03111     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03112 
03113         *yyg->yy_c_buf_p = yyg->yy_hold_char;
03114 
03115         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
03116                 {
03117                 /* yy_c_buf_p now points to the character we want to return.
03118                  * If this occurs *before* the EOB characters, then it's a
03119                  * valid NUL; if not, then we've hit the end of the buffer.
03120                  */
03121                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
03122                         /* This was really a NUL. */
03123                         *yyg->yy_c_buf_p = '\0';
03124 
03125                 else
03126                         { /* need more input */
03127                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
03128                         ++yyg->yy_c_buf_p;
03129 
03130                         switch ( yy_get_next_buffer( yyscanner ) )
03131                                 {
03132                                 case EOB_ACT_LAST_MATCH:
03133                                         /* This happens because yy_g_n_b()
03134                                          * sees that we've accumulated a
03135                                          * token and flags that we need to
03136                                          * try matching the token before
03137                                          * proceeding.  But for input(),
03138                                          * there's no matching to consider.
03139                                          * So convert the EOB_ACT_LAST_MATCH
03140                                          * to EOB_ACT_END_OF_FILE.
03141                                          */
03142 
03143                                         /* Reset buffer status. */
03144                                         osrlrestart(yyin ,yyscanner);
03145 
03146                                         /*FALLTHROUGH*/
03147 
03148                                 case EOB_ACT_END_OF_FILE:
03149                                         {
03150                                         if ( osrlwrap(yyscanner ) )
03151                                                 return EOF;
03152 
03153                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
03154                                                 YY_NEW_FILE;
03155 #ifdef __cplusplus
03156                                         return yyinput(yyscanner);
03157 #else
03158                                         return input(yyscanner);
03159 #endif
03160                                         }
03161 
03162                                 case EOB_ACT_CONTINUE_SCAN:
03163                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
03164                                         break;
03165                                 }
03166                         }
03167                 }
03168 
03169         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
03170         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
03171         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
03172 
03173         if ( c == '\n' )
03174                    
03175     do{ yylineno++;
03176         yycolumn=0;
03177     }while(0)
03178 ;
03179 
03180         return c;
03181 }
03182 #endif  /* ifndef YY_NO_INPUT */
03183 
03189     void osrlrestart  (FILE * input_file , yyscan_t yyscanner)
03190 {
03191     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03192 
03193         if ( ! YY_CURRENT_BUFFER ){
03194         osrlensure_buffer_stack (yyscanner);
03195                 YY_CURRENT_BUFFER_LVALUE =
03196             osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
03197         }
03198 
03199         osrl_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
03200         osrl_load_buffer_state(yyscanner );
03201 }
03202 
03207     void osrl_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
03208 {
03209     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03210 
03211         /* TODO. We should be able to replace this entire function body
03212          * with
03213          *              osrlpop_buffer_state();
03214          *              osrlpush_buffer_state(new_buffer);
03215      */
03216         osrlensure_buffer_stack (yyscanner);
03217         if ( YY_CURRENT_BUFFER == new_buffer )
03218                 return;
03219 
03220         if ( YY_CURRENT_BUFFER )
03221                 {
03222                 /* Flush out information for old buffer. */
03223                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03224                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
03225                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03226                 }
03227 
03228         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03229         osrl_load_buffer_state(yyscanner );
03230 
03231         /* We don't actually know whether we did this switch during
03232          * EOF (osrlwrap()) processing, but the only time this flag
03233          * is looked at is after osrlwrap() is called, so it's safe
03234          * to go ahead and always set it.
03235          */
03236         yyg->yy_did_buffer_switch_on_eof = 1;
03237 }
03238 
03239 static void osrl_load_buffer_state  (yyscan_t yyscanner)
03240 {
03241     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03242         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
03243         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
03244         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
03245         yyg->yy_hold_char = *yyg->yy_c_buf_p;
03246 }
03247 
03254     YY_BUFFER_STATE osrl_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
03255 {
03256         YY_BUFFER_STATE b;
03257     
03258         b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
03259         if ( ! b )
03260                 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
03261 
03262         b->yy_buf_size = size;
03263 
03264         /* yy_ch_buf has to be 2 characters longer than the size given because
03265          * we need to put in 2 end-of-buffer characters.
03266          */
03267         b->yy_ch_buf = (char *) osrlalloc(b->yy_buf_size + 2 ,yyscanner );
03268         if ( ! b->yy_ch_buf )
03269                 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
03270 
03271         b->yy_is_our_buffer = 1;
03272 
03273         osrl_init_buffer(b,file ,yyscanner);
03274 
03275         return b;
03276 }
03277 
03282     void osrl_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03283 {
03284     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03285 
03286         if ( ! b )
03287                 return;
03288 
03289         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
03290                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
03291 
03292         if ( b->yy_is_our_buffer )
03293                 osrlfree((void *) b->yy_ch_buf ,yyscanner );
03294 
03295         osrlfree((void *) b ,yyscanner );
03296 }
03297 
03298 #ifndef __cplusplus
03299 extern int isatty (int );
03300 #endif /* __cplusplus */
03301     
03302 /* Initializes or reinitializes a buffer.
03303  * This function is sometimes called more than once on the same buffer,
03304  * such as during a osrlrestart() or at EOF.
03305  */
03306     static void osrl_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
03307 
03308 {
03309         int oerrno = errno;
03310     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03311 
03312         osrl_flush_buffer(b ,yyscanner);
03313 
03314         b->yy_input_file = file;
03315         b->yy_fill_buffer = 1;
03316 
03317     /* If b is the current buffer, then osrl_init_buffer was _probably_
03318      * called from osrlrestart() or through yy_get_next_buffer.
03319      * In that case, we don't want to reset the lineno or column.
03320      */
03321     if (b != YY_CURRENT_BUFFER){
03322         b->yy_bs_lineno = 1;
03323         b->yy_bs_column = 0;
03324     }
03325 
03326         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
03327     
03328         errno = oerrno;
03329 }
03330 
03335     void osrl_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03336 {
03337     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03338         if ( ! b )
03339                 return;
03340 
03341         b->yy_n_chars = 0;
03342 
03343         /* We always need two end-of-buffer characters.  The first causes
03344          * a transition to the end-of-buffer state.  The second causes
03345          * a jam in that state.
03346          */
03347         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03348         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03349 
03350         b->yy_buf_pos = &b->yy_ch_buf[0];
03351 
03352         b->yy_at_bol = 1;
03353         b->yy_buffer_status = YY_BUFFER_NEW;
03354 
03355         if ( b == YY_CURRENT_BUFFER )
03356                 osrl_load_buffer_state(yyscanner );
03357 }
03358 
03365 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
03366 {
03367     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03368         if (new_buffer == NULL)
03369                 return;
03370 
03371         osrlensure_buffer_stack(yyscanner);
03372 
03373         /* This block is copied from osrl_switch_to_buffer. */
03374         if ( YY_CURRENT_BUFFER )
03375                 {
03376                 /* Flush out information for old buffer. */
03377                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03378                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
03379                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03380                 }
03381 
03382         /* Only push if top exists. Otherwise, replace top. */
03383         if (YY_CURRENT_BUFFER)
03384                 yyg->yy_buffer_stack_top++;
03385         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03386 
03387         /* copied from osrl_switch_to_buffer. */
03388         osrl_load_buffer_state(yyscanner );
03389         yyg->yy_did_buffer_switch_on_eof = 1;
03390 }
03391 
03396 void osrlpop_buffer_state (yyscan_t yyscanner)
03397 {
03398     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03399         if (!YY_CURRENT_BUFFER)
03400                 return;
03401 
03402         osrl_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
03403         YY_CURRENT_BUFFER_LVALUE = NULL;
03404         if (yyg->yy_buffer_stack_top > 0)
03405                 --yyg->yy_buffer_stack_top;
03406 
03407         if (YY_CURRENT_BUFFER) {
03408                 osrl_load_buffer_state(yyscanner );
03409                 yyg->yy_did_buffer_switch_on_eof = 1;
03410         }
03411 }
03412 
03413 /* Allocates the stack if it does not exist.
03414  *  Guarantees space for at least one push.
03415  */
03416 static void osrlensure_buffer_stack (yyscan_t yyscanner)
03417 {
03418         int num_to_alloc;
03419     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03420 
03421         if (!yyg->yy_buffer_stack) {
03422 
03423                 /* First allocation is just for 2 elements, since we don't know if this
03424                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
03425                  * immediate realloc on the next call.
03426          */
03427                 num_to_alloc = 1;
03428                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osrlalloc
03429                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
03430                                                                 , yyscanner);
03431                 if ( ! yyg->yy_buffer_stack )
03432                         YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
03433                                                                   
03434                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
03435                                 
03436                 yyg->yy_buffer_stack_max = num_to_alloc;
03437                 yyg->yy_buffer_stack_top = 0;
03438                 return;
03439         }
03440 
03441         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
03442 
03443                 /* Increase the buffer to prepare for a possible push. */
03444                 int grow_size = 8 /* arbitrary grow size */;
03445 
03446                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
03447                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osrlrealloc
03448                                                                 (yyg->yy_buffer_stack,
03449                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
03450                                                                 , yyscanner);
03451                 if ( ! yyg->yy_buffer_stack )
03452                         YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
03453 
03454                 /* zero only the new slots.*/
03455                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
03456                 yyg->yy_buffer_stack_max = num_to_alloc;
03457         }
03458 }
03459 
03466 YY_BUFFER_STATE osrl_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
03467 {
03468         YY_BUFFER_STATE b;
03469     
03470         if ( size < 2 ||
03471              base[size-2] != YY_END_OF_BUFFER_CHAR ||
03472              base[size-1] != YY_END_OF_BUFFER_CHAR )
03473                 /* They forgot to leave room for the EOB's. */
03474                 return 0;
03475 
03476         b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
03477         if ( ! b )
03478                 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_buffer()" );
03479 
03480         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
03481         b->yy_buf_pos = b->yy_ch_buf = base;
03482         b->yy_is_our_buffer = 0;
03483         b->yy_input_file = 0;
03484         b->yy_n_chars = b->yy_buf_size;
03485         b->yy_is_interactive = 0;
03486         b->yy_at_bol = 1;
03487         b->yy_fill_buffer = 0;
03488         b->yy_buffer_status = YY_BUFFER_NEW;
03489 
03490         osrl_switch_to_buffer(b ,yyscanner );
03491 
03492         return b;
03493 }
03494 
03503 YY_BUFFER_STATE osrl_scan_string (yyconst char * yystr , yyscan_t yyscanner)
03504 {
03505     
03506         return osrl_scan_bytes(yystr,strlen(yystr) ,yyscanner);
03507 }
03508 
03516 YY_BUFFER_STATE osrl_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
03517 {
03518         YY_BUFFER_STATE b;
03519         char *buf;
03520         yy_size_t n;
03521         int i;
03522     
03523         /* Get memory for full buffer, including space for trailing EOB's. */
03524         n = _yybytes_len + 2;
03525         buf = (char *) osrlalloc(n ,yyscanner );
03526         if ( ! buf )
03527                 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_bytes()" );
03528 
03529         for ( i = 0; i < _yybytes_len; ++i )
03530                 buf[i] = yybytes[i];
03531 
03532         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
03533 
03534         b = osrl_scan_buffer(buf,n ,yyscanner);
03535         if ( ! b )
03536                 YY_FATAL_ERROR( "bad buffer in osrl_scan_bytes()" );
03537 
03538         /* It's okay to grow etc. this buffer, and we should throw it
03539          * away when we're done.
03540          */
03541         b->yy_is_our_buffer = 1;
03542 
03543         return b;
03544 }
03545 
03546 #ifndef YY_EXIT_FAILURE
03547 #define YY_EXIT_FAILURE 2
03548 #endif
03549 
03550 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
03551 {
03552         (void) fprintf( stderr, "%s\n", msg );
03553         exit( YY_EXIT_FAILURE );
03554 }
03555 
03556 /* Redefine yyless() so it works in section 3 code. */
03557 
03558 #undef yyless
03559 #define yyless(n) \
03560         do \
03561                 { \
03562                 /* Undo effects of setting up yytext. */ \
03563         int yyless_macro_arg = (n); \
03564         YY_LESS_LINENO(yyless_macro_arg);\
03565                 yytext[yyleng] = yyg->yy_hold_char; \
03566                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
03567                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
03568                 *yyg->yy_c_buf_p = '\0'; \
03569                 yyleng = yyless_macro_arg; \
03570                 } \
03571         while ( 0 )
03572 
03573 /* Accessor  methods (get/set functions) to struct members. */
03574 
03578 YY_EXTRA_TYPE osrlget_extra  (yyscan_t yyscanner)
03579 {
03580     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03581     return yyextra;
03582 }
03583 
03587 int osrlget_lineno  (yyscan_t yyscanner)
03588 {
03589     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03590     
03591         if (! YY_CURRENT_BUFFER)
03592             return 0;
03593     
03594     return yylineno;
03595 }
03596 
03600 int osrlget_column  (yyscan_t yyscanner)
03601 {
03602     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03603     
03604         if (! YY_CURRENT_BUFFER)
03605             return 0;
03606     
03607     return yycolumn;
03608 }
03609 
03613 FILE *osrlget_in  (yyscan_t yyscanner)
03614 {
03615     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03616     return yyin;
03617 }
03618 
03622 FILE *osrlget_out  (yyscan_t yyscanner)
03623 {
03624     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03625     return yyout;
03626 }
03627 
03631 int osrlget_leng  (yyscan_t yyscanner)
03632 {
03633     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03634     return yyleng;
03635 }
03636 
03641 char *osrlget_text  (yyscan_t yyscanner)
03642 {
03643     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03644     return yytext;
03645 }
03646 
03651 void osrlset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
03652 {
03653     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03654     yyextra = user_defined ;
03655 }
03656 
03661 void osrlset_lineno (int  line_number , yyscan_t yyscanner)
03662 {
03663     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03664 
03665         /* lineno is only valid if an input buffer exists. */
03666         if (! YY_CURRENT_BUFFER )
03667            yy_fatal_error( "osrlset_lineno called with no buffer" , yyscanner); 
03668     
03669     yylineno = line_number;
03670 }
03671 
03676 void osrlset_column (int  column_no , yyscan_t yyscanner)
03677 {
03678     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03679 
03680         /* column is only valid if an input buffer exists. */
03681         if (! YY_CURRENT_BUFFER )
03682            yy_fatal_error( "osrlset_column called with no buffer" , yyscanner); 
03683     
03684     yycolumn = column_no;
03685 }
03686 
03693 void osrlset_in (FILE *  in_str , yyscan_t yyscanner)
03694 {
03695     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03696     yyin = in_str ;
03697 }
03698 
03699 void osrlset_out (FILE *  out_str , yyscan_t yyscanner)
03700 {
03701     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03702     yyout = out_str ;
03703 }
03704 
03705 int osrlget_debug  (yyscan_t yyscanner)
03706 {
03707     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03708     return yy_flex_debug;
03709 }
03710 
03711 void osrlset_debug (int  bdebug , yyscan_t yyscanner)
03712 {
03713     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03714     yy_flex_debug = bdebug ;
03715 }
03716 
03717 /* Accessor methods for yylval and yylloc */
03718 
03719 YYSTYPE * osrlget_lval  (yyscan_t yyscanner)
03720 {
03721     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03722     return yylval;
03723 }
03724 
03725 void osrlset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
03726 {
03727     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03728     yylval = yylval_param;
03729 }
03730 
03731 YYLTYPE *osrlget_lloc  (yyscan_t yyscanner)
03732 {
03733     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03734     return yylloc;
03735 }
03736     
03737 void osrlset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
03738 {
03739     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03740     yylloc = yylloc_param;
03741 }
03742     
03743 /* User-visible API */
03744 
03745 /* osrllex_init is special because it creates the scanner itself, so it is
03746  * the ONLY reentrant function that doesn't take the scanner as the last argument.
03747  * That's why we explicitly handle the declaration, instead of using our macros.
03748  */
03749 
03750 int osrllex_init(yyscan_t* ptr_yy_globals)
03751 
03752 {
03753     if (ptr_yy_globals == NULL){
03754         errno = EINVAL;
03755         return 1;
03756     }
03757 
03758     *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), NULL );
03759 
03760     if (*ptr_yy_globals == NULL){
03761         errno = ENOMEM;
03762         return 1;
03763     }
03764 
03765     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
03766     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03767 
03768     return yy_init_globals ( *ptr_yy_globals );
03769 }
03770 
03771 /* osrllex_init_extra has the same functionality as osrllex_init, but follows the
03772  * convention of taking the scanner as the last argument. Note however, that
03773  * this is a *pointer* to a scanner, as it will be allocated by this call (and
03774  * is the reason, too, why this function also must handle its own declaration).
03775  * The user defined value in the first argument will be available to osrlalloc in
03776  * the yyextra field.
03777  */
03778 
03779 int osrllex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
03780 
03781 {
03782     struct yyguts_t dummy_yyguts;
03783 
03784     osrlset_extra (yy_user_defined, &dummy_yyguts);
03785 
03786     if (ptr_yy_globals == NULL){
03787         errno = EINVAL;
03788         return 1;
03789     }
03790         
03791     *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
03792         
03793     if (*ptr_yy_globals == NULL){
03794         errno = ENOMEM;
03795         return 1;
03796     }
03797     
03798     /* By setting to 0xAA, we expose bugs in
03799     yy_init_globals. Leave at 0x00 for releases. */
03800     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03801     
03802     osrlset_extra (yy_user_defined, *ptr_yy_globals);
03803     
03804     return yy_init_globals ( *ptr_yy_globals );
03805 }
03806 
03807 static int yy_init_globals (yyscan_t yyscanner)
03808 {
03809     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03810     /* Initialization is the same as for the non-reentrant scanner.
03811      * This function is called from osrllex_destroy(), so don't allocate here.
03812      */
03813 
03814     yyg->yy_buffer_stack = 0;
03815     yyg->yy_buffer_stack_top = 0;
03816     yyg->yy_buffer_stack_max = 0;
03817     yyg->yy_c_buf_p = (char *) 0;
03818     yyg->yy_init = 0;
03819     yyg->yy_start = 0;
03820 
03821     yyg->yy_start_stack_ptr = 0;
03822     yyg->yy_start_stack_depth = 0;
03823     yyg->yy_start_stack =  NULL;
03824 
03825 /* Defined in main.c */
03826 #ifdef YY_STDINIT
03827     yyin = stdin;
03828     yyout = stdout;
03829 #else
03830     yyin = (FILE *) 0;
03831     yyout = (FILE *) 0;
03832 #endif
03833 
03834     /* For future reference: Set errno on error, since we are called by
03835      * osrllex_init()
03836      */
03837     return 0;
03838 }
03839 
03840 /* osrllex_destroy is for both reentrant and non-reentrant scanners. */
03841 int osrllex_destroy  (yyscan_t yyscanner)
03842 {
03843     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03844 
03845     /* Pop the buffer stack, destroying each element. */
03846         while(YY_CURRENT_BUFFER){
03847                 osrl_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03848                 YY_CURRENT_BUFFER_LVALUE = NULL;
03849                 osrlpop_buffer_state(yyscanner);
03850         }
03851 
03852         /* Destroy the stack itself. */
03853         osrlfree(yyg->yy_buffer_stack ,yyscanner);
03854         yyg->yy_buffer_stack = NULL;
03855 
03856     /* Destroy the start condition stack. */
03857         osrlfree(yyg->yy_start_stack ,yyscanner );
03858         yyg->yy_start_stack = NULL;
03859 
03860     /* Reset the globals. This is important in a non-reentrant scanner so the next time
03861      * osrllex() is called, initialization will occur. */
03862     yy_init_globals( yyscanner);
03863 
03864     /* Destroy the main struct (reentrant only). */
03865     osrlfree ( yyscanner , yyscanner );
03866     yyscanner = NULL;
03867     return 0;
03868 }
03869 
03870 /*
03871  * Internal utility routines.
03872  */
03873 
03874 #ifndef yytext_ptr
03875 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03876 {
03877         register int i;
03878         for ( i = 0; i < n; ++i )
03879                 s1[i] = s2[i];
03880 }
03881 #endif
03882 
03883 #ifdef YY_NEED_STRLEN
03884 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03885 {
03886         register int n;
03887         for ( n = 0; s[n]; ++n )
03888                 ;
03889 
03890         return n;
03891 }
03892 #endif
03893 
03894 void *osrlalloc (yy_size_t  size , yyscan_t yyscanner)
03895 {
03896         return (void *) malloc( size );
03897 }
03898 
03899 void *osrlrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
03900 {
03901         /* The cast to (char *) in the following accommodates both
03902          * implementations that use char* generic pointers, and those
03903          * that use void* generic pointers.  It works with the latter
03904          * because both ANSI C and C++ allow castless assignment from
03905          * any pointer type to void*, and deal with argument conversions
03906          * as though doing an assignment.
03907          */
03908         return (void *) realloc( (char *) ptr, size );
03909 }
03910 
03911 void osrlfree (void * ptr , yyscan_t yyscanner)
03912 {
03913         free( (char *) ptr );   /* see osrlrealloc() for (char *) cast */
03914 }
03915 
03916 #define YYTABLES_NAME "yytables"
03917 
03918 #line 305 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosrl.l"
03919 
03920 
03921 
03922 
03923 

Generated on Thu Oct 8 03:03:00 2009 by  doxygen 1.4.7