/home/coin/SVN-release/OS-2.1.1/OS/v2.0/OSParseosrl.cpp

Go to the documentation of this file.
00001 #line 2 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
00002 
00003 #line 4 "/home/kmartin/coin/oscommon/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 34
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 #endif /* ! C99 */
00058 
00059 /* Limits of integral types. */
00060 #ifndef INT8_MIN
00061 #define INT8_MIN               (-128)
00062 #endif
00063 #ifndef INT16_MIN
00064 #define INT16_MIN              (-32767-1)
00065 #endif
00066 #ifndef INT32_MIN
00067 #define INT32_MIN              (-2147483647-1)
00068 #endif
00069 #ifndef INT8_MAX
00070 #define INT8_MAX               (127)
00071 #endif
00072 #ifndef INT16_MAX
00073 #define INT16_MAX              (32767)
00074 #endif
00075 #ifndef INT32_MAX
00076 #define INT32_MAX              (2147483647)
00077 #endif
00078 #ifndef UINT8_MAX
00079 #define UINT8_MAX              (255U)
00080 #endif
00081 #ifndef UINT16_MAX
00082 #define UINT16_MAX             (65535U)
00083 #endif
00084 #ifndef UINT32_MAX
00085 #define UINT32_MAX             (4294967295U)
00086 #endif
00087 
00088 #endif /* ! FLEXINT_H */
00089 
00090 #ifdef __cplusplus
00091 
00092 /* The "const" storage-class-modifier is valid. */
00093 #define YY_USE_CONST
00094 
00095 #else   /* ! __cplusplus */
00096 
00097 /* C99 requires __STDC__ to be defined as 1. */
00098 #if defined (__STDC__)
00099 
00100 #define YY_USE_CONST
00101 
00102 #endif  /* defined (__STDC__) */
00103 #endif  /* ! __cplusplus */
00104 
00105 #ifdef YY_USE_CONST
00106 #define yyconst const
00107 #else
00108 #define yyconst
00109 #endif
00110 
00111 /* Returned upon end-of-file. */
00112 #define YY_NULL 0
00113 
00114 /* Promotes a possibly negative, possibly signed char to an unsigned
00115  * integer for use as an array index.  If the signed char is negative,
00116  * we want to instead treat it as an 8-bit unsigned char, hence the
00117  * double cast.
00118  */
00119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00120 
00121 /* An opaque pointer. */
00122 #ifndef YY_TYPEDEF_YY_SCANNER_T
00123 #define YY_TYPEDEF_YY_SCANNER_T
00124 typedef void* yyscan_t;
00125 #endif
00126 
00127 /* For convenience, these vars (plus the bison vars far below)
00128    are macros in the reentrant scanner. */
00129 #define yyin yyg->yyin_r
00130 #define yyout yyg->yyout_r
00131 #define yyextra yyg->yyextra_r
00132 #define yyleng yyg->yyleng_r
00133 #define yytext yyg->yytext_r
00134 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00135 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00136 #define yy_flex_debug yyg->yy_flex_debug_r
00137 
00138 /* Enter a start condition.  This macro really ought to take a parameter,
00139  * but we do it the disgusting crufty way forced on us by the ()-less
00140  * definition of BEGIN.
00141  */
00142 #define BEGIN yyg->yy_start = 1 + 2 *
00143 
00144 /* Translate the current start state into a value that can be later handed
00145  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00146  * compatibility.
00147  */
00148 #define YY_START ((yyg->yy_start - 1) / 2)
00149 #define YYSTATE YY_START
00150 
00151 /* Action number for EOF rule of a given start state. */
00152 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00153 
00154 /* Special action meaning "start processing a new file". */
00155 #define YY_NEW_FILE osrlrestart(yyin ,yyscanner )
00156 
00157 #define YY_END_OF_BUFFER_CHAR 0
00158 
00159 /* Size of default input buffer. */
00160 #ifndef YY_BUF_SIZE
00161 #define YY_BUF_SIZE 16384
00162 #endif
00163 
00164 /* The state buf must be large enough to hold one state per character in the main buffer.
00165  */
00166 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00167 
00168 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00169 #define YY_TYPEDEF_YY_BUFFER_STATE
00170 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00171 #endif
00172 
00173 #define EOB_ACT_CONTINUE_SCAN 0
00174 #define EOB_ACT_END_OF_FILE 1
00175 #define EOB_ACT_LAST_MATCH 2
00176 
00177     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00178      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00179      *       existing scanners that call yyless() from OUTSIDE osrllex. 
00180      *       One obvious solution it to make yy_act a global. I tried that, and saw
00181      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00182      *       normally declared as a register variable-- so it is not worth it.
00183      */
00184     #define  YY_LESS_LINENO(n) \
00185             do { \
00186                 int yyl;\
00187                 for ( yyl = n; yyl < yyleng; ++yyl )\
00188                     if ( yytext[yyl] == '\n' )\
00189                         --yylineno;\
00190             }while(0)
00191     
00192 /* Return all but the first "n" matched characters back to the input stream. */
00193 #define yyless(n) \
00194         do \
00195                 { \
00196                 /* Undo effects of setting up yytext. */ \
00197         int yyless_macro_arg = (n); \
00198         YY_LESS_LINENO(yyless_macro_arg);\
00199                 *yy_cp = yyg->yy_hold_char; \
00200                 YY_RESTORE_YY_MORE_OFFSET \
00201                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00202                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00203                 } \
00204         while ( 0 )
00205 
00206 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00207 
00208 /* The following is because we cannot portably get our hands on size_t
00209  * (without autoconf's help, which isn't available because we want
00210  * flex-generated scanners to compile on their own).
00211  * Given that the standard has decreed that size_t exists since 1989,
00212  * I guess we can afford to depend on it. Manoj.
00213  */
00214 
00215 #ifndef YY_TYPEDEF_YY_SIZE_T
00216 #define YY_TYPEDEF_YY_SIZE_T
00217 typedef size_t yy_size_t;
00218 #endif
00219 
00220 #ifndef YY_STRUCT_YY_BUFFER_STATE
00221 #define YY_STRUCT_YY_BUFFER_STATE
00222 struct yy_buffer_state
00223         {
00224         FILE *yy_input_file;
00225 
00226         char *yy_ch_buf;                /* input buffer */
00227         char *yy_buf_pos;               /* current position in input buffer */
00228 
00229         /* Size of input buffer in bytes, not including room for EOB
00230          * characters.
00231          */
00232         yy_size_t yy_buf_size;
00233 
00234         /* Number of characters read into yy_ch_buf, not including EOB
00235          * characters.
00236          */
00237         int yy_n_chars;
00238 
00239         /* Whether we "own" the buffer - i.e., we know we created it,
00240          * and can realloc() it to grow it, and should free() it to
00241          * delete it.
00242          */
00243         int yy_is_our_buffer;
00244 
00245         /* Whether this is an "interactive" input source; if so, and
00246          * if we're using stdio for input, then we want to use getc()
00247          * instead of fread(), to make sure we stop fetching input after
00248          * each newline.
00249          */
00250         int yy_is_interactive;
00251 
00252         /* Whether we're considered to be at the beginning of a line.
00253          * If so, '^' rules will be active on the next match, otherwise
00254          * not.
00255          */
00256         int yy_at_bol;
00257 
00258     int yy_bs_lineno; 
00259     int yy_bs_column; 
00261         /* Whether to try to fill the input buffer when we reach the
00262          * end of it.
00263          */
00264         int yy_fill_buffer;
00265 
00266         int yy_buffer_status;
00267 
00268 #define YY_BUFFER_NEW 0
00269 #define YY_BUFFER_NORMAL 1
00270         /* When an EOF's been seen but there's still some text to process
00271          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00272          * shouldn't try reading from the input source any more.  We might
00273          * still have a bunch of tokens to match, though, because of
00274          * possible backing-up.
00275          *
00276          * When we actually see the EOF, we change the status to "new"
00277          * (via osrlrestart()), so that the user can continue scanning by
00278          * just pointing yyin at a new input file.
00279          */
00280 #define YY_BUFFER_EOF_PENDING 2
00281 
00282         };
00283 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00284 
00285 /* We provide macros for accessing buffer states in case in the
00286  * future we want to put the buffer states in a more general
00287  * "scanner state".
00288  *
00289  * Returns the top of the stack, or NULL.
00290  */
00291 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00292                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00293                           : NULL)
00294 
00295 /* Same as previous macro, but useful when we know that the buffer stack is not
00296  * NULL or when we need an lvalue. For internal use only.
00297  */
00298 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00299 
00300 void osrlrestart (FILE *input_file ,yyscan_t yyscanner );
00301 void osrl_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00302 YY_BUFFER_STATE osrl_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00303 void osrl_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00304 void osrl_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00305 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00306 void osrlpop_buffer_state (yyscan_t yyscanner );
00307 
00308 static void osrlensure_buffer_stack (yyscan_t yyscanner );
00309 static void osrl_load_buffer_state (yyscan_t yyscanner );
00310 static void osrl_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00311 
00312 #define YY_FLUSH_BUFFER osrl_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00313 
00314 YY_BUFFER_STATE osrl_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00315 YY_BUFFER_STATE osrl_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00316 YY_BUFFER_STATE osrl_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00317 
00318 void *osrlalloc (yy_size_t ,yyscan_t yyscanner );
00319 void *osrlrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00320 void osrlfree (void * ,yyscan_t yyscanner );
00321 
00322 #define yy_new_buffer osrl_create_buffer
00323 
00324 #define yy_set_interactive(is_interactive) \
00325         { \
00326         if ( ! YY_CURRENT_BUFFER ){ \
00327         osrlensure_buffer_stack (yyscanner); \
00328                 YY_CURRENT_BUFFER_LVALUE =    \
00329             osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00330         } \
00331         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00332         }
00333 
00334 #define yy_set_bol(at_bol) \
00335         { \
00336         if ( ! YY_CURRENT_BUFFER ){\
00337         osrlensure_buffer_stack (yyscanner); \
00338                 YY_CURRENT_BUFFER_LVALUE =    \
00339             osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00340         } \
00341         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00342         }
00343 
00344 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00345 
00346 /* Begin user sect3 */
00347 
00348 #define osrlwrap(n) 1
00349 #define YY_SKIP_YYWRAP
00350 
00351 typedef unsigned char YY_CHAR;
00352 
00353 typedef int yy_state_type;
00354 
00355 #define yytext_ptr yytext_r
00356 
00357 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00358 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
00359 static int yy_get_next_buffer (yyscan_t yyscanner );
00360 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00361 
00362 /* Done after the current pattern has been matched and before the
00363  * corresponding action - sets up yytext.
00364  */
00365 #define YY_DO_BEFORE_ACTION \
00366         yyg->yytext_ptr = yy_bp; \
00367         yyleng = (size_t) (yy_cp - yy_bp); \
00368         yyg->yy_hold_char = *yy_cp; \
00369         *yy_cp = '\0'; \
00370         yyg->yy_c_buf_p = yy_cp;
00371 
00372 #define YY_NUM_RULES 120
00373 #define YY_END_OF_BUFFER 121
00374 /* This struct is not used in this scanner,
00375    but its presence is necessary. */
00376 struct yy_trans_info
00377         {
00378         flex_int32_t yy_verify;
00379         flex_int32_t yy_nxt;
00380         };
00381 static yyconst flex_int16_t yy_accept[984] =
00382     {   0,
00383         1,    1,  118,  118,  116,  116,  117,  117,    0,    0,
00384         0,    0,    0,    0,    0,    0,  121,  119,    1,    1,
00385         2,  107,    2,  119,    6,  119,    5,  119,    4,  107,
00386       118,  120,  116,  117,  109,  110,  109,  113,  114,  113,
00387         1,    0,    6,    0,    5,    0,    4,    0,    0,    0,
00388         0,    0,    0,    0,    0,    1,  107,    6,    5,  107,
00389       107,  107,  107,  107,  107,  107,  107,    3,    6,  107,
00390         7,    0,    0,  112,    0,    0,    0,    0,    0,    0,
00391         0,    0,    0,    0,    4,  107,  118,  116,  117,    0,
00392       115,    6,    0,    0,    0,    0,    0,    0,    0,    0,
00393 
00394         0,    0,    0,    0,    0,    0,    0,    0,  107,  107,
00395       107,  107,  107,  107,  107,  107,  107,    0,    6,    0,
00396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00397         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00398         0,    0,    0,    0,    0,    0,    6,  111,    6,    0,
00399         0,    0,    0,    0,    6,    0,    0,    0,    0,    0,
00400         0,    0,    0,    0,  107,  107,  107,  107,  107,  107,
00401       107,  107,  107,  108,    0,    0,    0,    0,    0,    0,
00402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00403        95,    0,    0,    0,    0,    0,   91,    0,    0,    0,
00404 
00405         0,    0,    0,    0,    0,    0,   87,    0,    0,    0,
00406         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00407         0,    0,  107,  107,  107,  107,  107,  107,  107,  107,
00408       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00410         0,    0,    0,   54,    0,    0,    0,    0,    0,    0,
00411         0,    0,    0,    0,   70,    0,    0,    0,    0,    0,
00412         0,    0,   70,    0,    0,    0,   19,    0,    0,    0,
00413         0,    0,    0,    0,    0,    0,  107,  107,  107,  107,
00414       107,  107,  107,  107,    0,   96,    0,    0,    0,    0,
00415 
00416         0,   55,    0,    0,    0,   92,    0,    0,    0,    0,
00417         0,    0,    0,    0,    0,    0,    0,    0,   88,    0,
00418         0,    0,    0,    0,   54,    0,    0,    0,    0,   46,
00419        45,   99,    0,    0,    0,    0,    0,    0,    0,    0,
00420         0,    0,    0,    0,    0,    0,    0,    0,   19,    0,
00421        23,   24,    0,    0,    0,   27,   28,    0,   35,   36,
00422         0,    0,  107,  107,  107,  107,  107,   96,    0,    0,
00423         0,    0,   55,    0,    0,   92,    0,    0,    0,   47,
00424         0,    0,    0,    0,    0,    0,   71,    0,    0,   88,
00425         0,    0,    0,    0,    0,    0,    0,   65,    0,    0,
00426 
00427         0,    0,    0,   81,    0,  105,    0,   83,    0,    0,
00428         0,    0,    0,    0,    0,    0,   21,   22,    0,    0,
00429         0,   25,   26,    0,   33,   34,    0,   39,   40,  107,
00430       107,  107,  107,    0,    0,    0,    0,    0,   67,    0,
00431         0,    0,   47,    0,  100,    0,    0,    0,    0,   71,
00432         0,    0,    0,    0,    0,    0,    0,  104,   65,   66,
00433         0,    0,    0,    0,    0,    0,   50,    0,    0,    0,
00434         0,    0,    0,    0,    0,    0,    0,   37,   38,  107,
00435       107,  107,  107,    0,    0,    0,    0,   67,    0,    0,
00436         0,  100,    0,    0,    0,   82,    0,   51,    0,    0,
00437 
00438        84,    0,    0,    0,    0,   48,    0,    0,    0,    0,
00439        72,    0,    0,    0,   52,    0,    0,   79,   50,    0,
00440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00441         0,    0,    0,    0,  107,  107,  107,  107,  107,  107,
00442       107,  107,    0,    0,    0,   49,    0,    0,    0,   74,
00443         0,    0,    0,   53,    0,    0,    0,   82,   51,    0,
00444        84,    0,    0,    0,   48,    0,    0,  106,   72,   73,
00445         0,    0,   52,    0,    0,    0,   89,    0,    0,    0,
00446         0,   31,   32,    0,    0,    0,    0,    0,    0,    0,
00447         0,  107,  107,  107,  107,  107,  107,  107,  107,    0,
00448 
00449         0,   49,    0,    0,   74,    0,    0,   53,    0,    0,
00450         0,   80,    0,    0,    0,   85,    0,    0,   93,    0,
00451         0,    0,    0,    0,    0,    0,    0,   29,   30,    0,
00452         0,    0,    0,    0,    0,    0,    0,  107,  107,  107,
00453       107,  107,  107,  107,  107,    0,    0,    0,    0,    0,
00454         0,    0,    0,   80,    0,    0,   90,   97,    0,    0,
00455         0,    0,    0,    0,   56,    0,    0,    0,    0,    0,
00456         0,    0,   18,    0,    0,   17,    0,    0,    0,    0,
00457         0,   16,    0,    0,  107,  107,  107,  107,  107,  107,
00458       107,  107,  107,  107,  107,    0,    0,   86,    0,    0,
00459 
00460         0,   94,    0,    0,    0,   58,    0,   90,    0,    0,
00461        77,    0,    0,   59,  101,   56,   57,    0,    0,    0,
00462         0,   43,   44,    0,    0,    0,    0,    0,    0,    0,
00463         0,    0,    0,  107,  107,  107,  107,  107,  107,  107,
00464         0,   98,   86,    0,    0,   94,    0,    0,   61,   58,
00465         0,   75,    0,    0,   62,  102,   59,   60,    0,    0,
00466         0,   41,   42,   18,    0,   17,    0,    0,    0,    0,
00467         0,    0,    8,   16,    0,    0,  107,  107,  107,  107,
00468       107,  107,  107,  107,  107,   98,    0,    0,   64,    0,
00469        78,   61,    0,  103,   62,   63,    0,    0,    0,    0,
00470 
00471         0,    0,    0,    0,    0,    0,  107,  107,  107,  107,
00472       107,  107,  107,  107,    0,   76,   64,   78,    0,    0,
00473         0,    0,    0,    0,    0,    0,    8,    0,    0,  107,
00474       107,  107,  107,  107,  107,  107,  107,   76,    0,    0,
00475         0,    0,    0,    0,    0,    0,    0,    0,  107,  107,
00476       107,  107,  107,  107,  107,  107,    0,   68,    0,    0,
00477         0,    0,    0,    0,    9,    0,   10,    0,  107,  107,
00478       107,  107,  107,  107,  107,  107,    0,    0,    0,   11,
00479         0,    0,    0,    0,    0,    0,   20,  107,  107,  107,
00480       107,  107,  107,    0,   69,    0,   12,    0,    0,    0,
00481 
00482         0,    9,   10,    0,  107,  107,  107,  107,   69,    0,
00483        11,    0,    0,    0,   20,  107,  107,  107,   12,    0,
00484         0,    0,  107,  107,  107,    0,    0,    0,  107,  107,
00485       107,    0,    0,    0,  107,  107,  107,    0,    0,    0,
00486       107,  107,  107,    0,    0,    0,  107,  107,  107,    0,
00487         0,    0,  107,  107,  107,    0,    0,    0,  107,  107,
00488       107,    0,    0,    0,   13,  107,  107,  107,    0,    0,
00489        14,    0,  107,  107,    0,   15,    0,   13,  107,    0,
00490        14,   15,    0
00491     } ;
00492 
00493 static yyconst flex_int32_t yy_ec[256] =
00494     {   0,
00495         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00496         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
00497         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00498         1,    5,    6,    7,    8,    8,    1,    1,    9,    1,
00499         1,    8,   10,    1,   11,   12,   13,   14,   14,   14,
00500        14,   14,   14,   14,   14,   14,   14,    8,    1,   15,
00501        16,   17,   18,    8,    8,    8,   19,   20,   21,   22,
00502         8,    8,   23,    8,    8,    8,    8,   24,   25,    8,
00503         8,   26,   27,   28,   29,   30,    8,    8,    8,    8,
00504         1,    1,    1,    1,    8,    1,   31,   32,   33,   34,
00505 
00506        35,   36,   37,   38,   39,   40,    8,   41,   42,   43,
00507        44,   45,    8,   46,   47,   48,   49,   50,    8,   51,
00508        52,   53,    1,    1,    1,    1,    1,    1,    1,    1,
00509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00510         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00511         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00512         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00513         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00514         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00515         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00516 
00517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00521         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00522         1,    1,    1,    1,    1
00523     } ;
00524 
00525 static yyconst flex_int32_t yy_meta[54] =
00526     {   0,
00527         1,    2,    2,    2,    2,    1,    3,    2,    4,    1,
00528         2,    2,    2,    2,    2,    1,    5,    1,    2,    2,
00529         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00530         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00531         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00532         2,    2,    2
00533     } ;
00534 
00535 static yyconst flex_int16_t yy_base[995] =
00536     {   0,
00537         0,   23, 2562, 2561, 2570, 2569, 2566, 2565,    0,    0,
00538         0,    0,   39,   40,   41,   42, 2564, 2669,   59,  108,
00539      2556,   64, 2551,    8,  157, 2542,    7,  187,   50,   64,
00540         0, 2669,    0,    0, 2669, 2669, 2547, 2669, 2669, 2539,
00541         0,   35,   66, 2538,   82,  225,  124, 2530, 2521, 2512,
00542      2503,   34,   17, 2493, 2504,  274,   70,    0,   83,  119,
00543       118,  131,  141,  146,  159,  175,  177, 2669,    0,  193,
00544      2669, 2522,  292, 2669, 2488, 2482, 2494, 2485, 2469, 2477,
00545       137,  171, 2472, 2478,  132,  195,    0,    0,    0, 2491,
00546      2669,  211,  104, 2464, 2461, 2469,  201, 2463, 2479, 2452,
00547 
00548      2443, 2437, 2444, 2443, 2438, 2436, 2441, 2437,  226,  236,
00549       249,  285,  295,  298,  300,  327,  329, 2463,  280, 2465,
00550      2429, 2418, 2431, 2421, 2418, 2426,  154,  204, 2417, 2423,
00551      2407, 2405, 2389, 2384, 2389, 2373, 2379, 2368, 2361, 2366,
00552      2357, 2354, 2363, 2345, 2349,  142,  332, 2669, 2376, 2332,
00553      2343, 2322, 2320, 2323, 2669, 2328, 2320,  239, 2316, 2317,
00554      2311, 2302, 2288, 2273,  333,  338,  372,  337,  364,  366,
00555       369,  370,  381, 2669, 2278, 2289, 2275, 2270, 2274, 2258,
00556      2262, 2253, 2254, 2260, 2251, 2246, 2255, 2237, 2230,  249,
00557      2221, 2226, 2228, 2209,  406, 2204, 2213, 2202, 2199, 2204,
00558 
00559      2187, 2187, 2187, 2185,   51, 2183, 2179, 2169,  410, 2168,
00560      2164,   65, 2175, 2164,  432,  417,  436, 2174, 2160,  440,
00561       455, 2159,  432,  433,  478,  512,  441,  449,  546,  580,
00562       451,  485, 2151, 2151, 2119,  501, 2118,  505, 2113, 2105,
00563      2110, 2094, 2092, 2090, 2089,  109, 2084,  539, 2079, 2095,
00564      2050, 2063,  569,  300, 2073, 2061, 2055, 2038,  585, 2033,
00565      2039, 2002, 2000, 2013,  532, 2003, 2010, 2013, 2003, 2012,
00566      1998, 1989, 2669, 1980, 1983, 2012,  493,  550,  518, 1968,
00567      1964,  595,  556,  601,  605,  616,  595,  556,  638,  610,
00568       612,  672,  706,  740,  632,  659, 1963, 1980, 1962, 1971,
00569 
00570       663,  667, 1962, 1936,  679,  687, 1933, 1922,  695, 1916,
00571      1906, 1894, 1884, 1897,  699, 1887, 1893,  721,  726, 1896,
00572      1876, 1888, 1887, 1874,  730,  745, 1876, 1859, 1866,  761,
00573      2669, 2669, 1853, 1846, 1837, 1840,  766, 1863, 1829, 1818,
00574      1828, 1798,  778, 1803, 1788, 1774, 1772,  620,  782, 1812,
00575      1800, 1779, 1761, 1734, 1754, 1748, 1745, 1747, 1743, 1736,
00576       786,  648,  778,  732,  779,  780,  823,  804, 1689, 1703,
00577      1702, 1684,  814,  818, 1689,  827, 1677, 1680,  838,  843,
00578       847, 1685, 1678, 1652, 1656,  857,  863, 1652, 1632,  867,
00579      1646, 1646, 1634, 1632, 1638,  873, 1642,  877, 1623, 1615,
00580 
00581      1598, 1609, 1596, 2669,  891, 2669, 1616, 2669, 1591, 1588,
00582       895, 1582, 1581, 1563, 1550,  712, 2669, 2669, 1558, 1557,
00583       882, 2669, 2669,  900, 2669, 2669, 1570, 1564, 1561,  890,
00584       892,  738,  896, 1538, 1526, 1505, 1512,  916,  932, 1486,
00585      1476, 1461,  941,  945,  949, 1476, 1461,  953,  961,  969,
00586      1473,  977, 1452, 1448, 1427,  981, 1438, 2669,  985, 2669,
00587       997, 1422, 1429, 1001, 1414, 1017, 1024, 1413, 1419, 1415,
00588      1033, 1037, 1041, 1410, 1028, 1395, 1060, 2669, 2669, 1068,
00589      1060, 1090, 1062, 1395, 1367, 1083, 1380, 1075, 1088, 1361,
00590      1375, 1119, 1124, 1357, 1128, 1132, 1147, 1152, 1356, 1156,
00591 
00592      1163, 1363, 1327, 1332, 1167, 1172, 1294, 1317, 1176, 1297,
00593      1183, 1278, 1258, 1192, 1197, 1274, 1263, 2669, 1201, 1246,
00594      1234, 1250, 1208, 1242, 1246, 1212, 1137, 1213, 1203,   98,
00595      1190, 1194, 1196, 1185, 1227, 1205, 1221, 1223, 1224, 1225,
00596      1249, 1240, 1175, 1173, 1219, 1248, 1159, 1168, 1274, 1283,
00597      1156, 1142, 1290, 1294, 1152, 1156, 1298, 1306, 1314, 1127,
00598      1318, 1115, 1099, 1096, 1322, 1107, 1088, 2669, 1326, 2669,
00599      1065, 1069, 1330, 1065, 1083, 1057, 2669, 1067, 1054, 1071,
00600      1071, 1061, 1055, 1017, 1016, 1012,  995,  991,  989,  978,
00601       990, 1269, 1322, 1323, 1324, 1325, 1326, 1334, 1350,  969,
00602 
00603       969, 1347,  980,  978, 1370,  960,  958, 1374,  954,  968,
00604      1384, 1388,  933, 1392,  929, 2669,  927,  927, 2669,  924,
00605       932, 1400,  915,  918,  924, 1416, 1405, 2669, 2669, 1420,
00606      1424, 1439,  887,  867,  880, 1443,  866, 1481, 1515, 1459,
00607      1416, 1417, 1418, 1465, 1444,  854, 1486,  840,  841, 1496,
00608       829,  828, 1505, 1521,  811, 1530, 1535, 2669,  789,  777,
00609       768, 1539, 1555,  793, 1561,  761,  763, 1575, 1579, 1583,
00610      1546, 1598,  358,  749, 1602,  395,  763,  730,  724,  713,
00611      1606,  472,  726,  716, 1621,  704, 1598, 1625, 1540, 1599,
00612      1617, 1622, 1645, 1639, 1641, 1679, 1683, 1699,  691,  683,
00613 
00614      1703, 1707,  670, 1711, 1719, 1727,  664, 1735,  658, 1739,
00615      2669, 1744,  678, 1760, 2669, 1764, 2669,  663, 1768, 1774,
00616       683,  678,  670,  674,  612,  644,  598,  550,  605, 1778,
00617       634,  596,  563, 1621, 1739, 1765, 1775, 1795, 1787, 1788,
00618      1801, 1822, 1826,  546, 1830, 1841, 1846, 1850, 1854, 1866,
00619       561, 2669, 1870,  562, 1874, 2669, 1888, 2669,  528, 1892,
00620      1588, 2669, 2669,  734,  537,  831,  525,  513,  514,  508,
00621       494, 1896,  851,  921,  490,  495, 1889, 1867, 1890, 1894,
00622      1900, 1902, 1936, 1922, 1930, 1945, 1951, 1956, 1967, 1972,
00623      1976, 1982,  481, 2669, 1988, 2669,  480,  473,  461,  458,
00624 
00625       460,  447,  448,  481,  443,  450, 1974, 1980, 1982, 1983,
00626      1985, 1984, 1986, 2012, 2034, 2038, 2050, 2054,  427,  420,
00627       418,  416,  403,  414,  393,  384,  927,  381,  391, 2046,
00628      2047, 2048, 2049, 2051, 2050, 2052, 2077, 2072,  377,  374,
00629       358,  347,  344,  356,  351, 2098, 2102,  330, 2094, 2096,
00630      2099, 2095, 2105, 2119, 2146, 2118,  336, 2669,  322, 2152,
00631       319,  309,  324, 2156,  936, 2171,  990, 2175, 2149, 2195,
00632      2167, 2168, 2169, 2203, 2218, 2222, 2226, 2242, 2250, 1010,
00633       324,  310,  297,  324,  314, 2257, 1046, 2272, 2276, 2268,
00634      2269, 2250, 2291, 2307, 2311, 2323, 1111,  307,  271,  248,
00635 
00636       261, 1264, 1351,  289, 2327, 2319, 2320, 2150, 2342,  288,
00637      1379,  239,  246,  254, 1475, 2321, 2235, 2336, 1525,  220,
00638       240,  225, 2338, 2346, 2347,  228,  216,  186, 2362, 2363,
00639      2364,  187,  166,  148, 2366, 2375, 2379,  140,  130,  124,
00640      2388, 2391, 2392,  115,  122,  102, 2394, 2403, 2404,   97,
00641        76,   69, 2416, 2420, 2428,   58,   42, 2443, 2439, 2444,
00642      2467,   20, 2490, 2494, 1661, 2468, 2514, 2518, 2522, 2537,
00643      1688,   53, 2541, 2546, 2564, 1692,   52, 1810, 2568,    4,
00644      1834, 1859, 2669, 2615, 2620, 2625, 2630, 2635, 2640, 2645,
00645      2649, 2654, 2658, 2663
00646 
00647     } ;
00648 
00649 static yyconst flex_int16_t yy_def[995] =
00650     {   0,
00651       984,  984,  985,  985,  986,  986,  987,  987,  988,  988,
00652       988,  988,  989,  989,  990,  990,  983,  983,  983,  991,
00653       983,  991,  983,  983,  991,  983,   25,  983,  983,   25,
00654       992,  983,  993,  994,  983,  983,  983,  983,  983,  983,
00655        19,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00656       983,  983,  983,  983,  983,  991,   25,   25,   25,   25,
00657        25,   25,   25,   25,   25,   25,   25,  983,   25,   25,
00658       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00659       983,  983,  983,  983,  983,   25,  992,  993,  994,  983,
00660       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00661 
00662       983,  983,  983,  983,  983,  983,  983,  983,   25,   25,
00663        25,   25,   25,   25,   25,   25,   25,  983,   25,  983,
00664       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00665       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00666       983,  983,  983,  983,  983,  983,   25,  983,  983,  983,
00667       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00668       983,  983,  983,  983,   25,   25,   25,   25,   25,   25,
00669        25,   25,   25,  983,  983,  983,  983,  983,  983,  983,
00670       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00671       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00672 
00673       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00674       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00675       983,  983,   25,   25,   25,   25,   25,   25,   25,   25,
00676        25,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00677       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00678       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00679       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00680       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00681       983,  983,  983,  983,  983,  983,   25,   25,   25,   25,
00682        25,   25,   25,   25,  983,  983,  983,  983,  983,  983,
00683 
00684       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00685       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00686       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00687       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00688       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00689       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00690       983,  983,   25,   25,   25,   25,   25,  983,  983,  983,
00691       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00692       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00693       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00694 
00695       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00696       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00697       983,  983,  983,  983,  983,  983,  983,  983,  983,   25,
00698        25,   25,   25,  983,  983,  983,  983,  983,  983,  983,
00699       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00700       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00701       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00702       983,  983,  983,  983,  983,  983,  983,  983,  983,   25,
00703        25,   25,   25,  983,  983,  983,  983,  983,  983,  983,
00704       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00705 
00706       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00707       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00708       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00709       983,  983,  983,  983,   25,   25,   25,   25,   25,   25,
00710        25,   25,  983,  983,  983,  983,  983,  983,  983,  983,
00711       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00712       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00713       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00714       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00715       983,   25,   25,   25,   25,   25,   25,   25,   25,  983,
00716 
00717       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00718       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00719       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00720       983,  983,  983,  983,  983,  983,  983,   25,   25,  639,
00721        25,   25,   25,  639,   25,  983,  983,  983,  983,  983,
00722       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00723       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00724       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00725       983,  983,  983,  983,  639,  639,   25,  639,   25,   25,
00726        25,   25,  639,   25,   25,  983,  983,  983,  983,  983,
00727 
00728       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00729       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00730       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00731       983,  983,  983,   25,   25,  482,   25,  639,   25,   25,
00732       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00733       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00734       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00735       983,  983,  983,  983,  983,  983,   25,   25,   25,   25,
00736        25,   25,  639,   25,   25,  983,  983,  983,  983,  983,
00737       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
00738 
00739       983,  983,  983,  983,  983,  983,   25,   25,   25,   25,
00740        25,   25,   25,   25,  983,  983,  983,  983,  983,  983,
00741       983,  983,  983,  983,  983,  983,  983,  983,  983,   25,
00742        25,   25,   25,   25,   25,   25,   25,  983,  983,  983,
00743       983,  983,  983,  983,  983,  983,  983,  983,   25,   25,
00744        25,   25,   25,  639,  639,   25,  983,  983,  983,  983,
00745       983,  983,  983,  983,  983,  983,  983,  983,   25,  639,
00746        25,   25,   25,  639,  639,  639,  983,  983,  983,  983,
00747       983,  983,  983,  983,  983,  983,  983,  639,  639,   25,
00748        25,   25,  639,  983,  983,  983,  983,  983,  983,  983,
00749 
00750       983,  983,  983,  983,  639,   25,   25,   25,  983,  983,
00751       983,  983,  983,  983,  983,   25,   25,   25,  983,  983,
00752       983,  983,   25,   25,   25,  983,  983,  983,   25,   25,
00753        25,  983,  983,  983,   25,   25,   25,  983,  983,  983,
00754        25,   25,   25,  983,  983,  983,   25,   25,   25,  983,
00755       983,  983,   25,   25,   25,  983,  983,  983,   25,   25,
00756       639,  983,  983,  983,  983,   25,  639,  639,  983,  983,
00757       983,  983,  639,  639,  983,  983,  983,  983,  639,  983,
00758       983,  983,    0,  983,  983,  983,  983,  983,  983,  983,
00759       983,  983,  983,  983
00760 
00761     } ;
00762 
00763 static yyconst flex_int16_t yy_nxt[2723] =
00764     {   0,
00765        18,   19,   20,   19,   20,   18,   21,  982,   23,   18,
00766        24,   25,   26,   27,   28,   18,   29,   18,   58,   43,
00767        59,   45,   30,   18,   19,   20,   19,   20,   18,   21,
00768        48,   23,   18,   24,   25,   26,   27,   28,   18,   29,
00769        18,   36,   36,   39,   39,   30,   43,  105,   45,   37,
00770        37,   85,   85,   85,   85,  981,  978,   48,   40,   40,
00771        41,   41,   41,   41,  103,  983,  969,  983,  106,   42,
00772        43,   44,   45,   46,  983,   47,  983,   57,  983,   92,
00773       983,   48,  104,   57,   57,  265,   93,   86,  963,  266,
00774        57,   49,   50,   43,   58,   45,   59,   51,   57,  273,
00775 
00776        93,   52,   93,  266,   57,  962,   53,   54,   55,   41,
00777        56,   41,   56,  118,  118,  958,   93,  149,   42,   58,
00778        44,   59,   46,  957,   47,   85,   85,   85,   85,  586,
00779        60,   57,   57,   85,   85,   85,   85,  956,   57,   57,
00780        61,   62,   86,  315,   57,  587,   63,  316,  109,  952,
00781        64,   57,   57,   57,   57,   65,   66,   67,  983,   57,
00782       983,   57,  951,  950,  946,  110,   57,  983,  137,  983,
00783        69,  983,   57,  983,  111,   57,  112,   70,  945,   57,
00784        57,  138,  206,  139,  140,  181,  944,  207,   57,  114,
00785        57,   70,   72,   57,  113,   57,  940,   57,  182,   73,
00786 
00787       183,  184,  118,  118,   74,  141,  119,  117,   57,   57,
00788       115,   57,  939,   57,  142,   57,  147,  116,  143,   75,
00789        76,  938,  144,   77,   92,   78,   79,   57,   80,   57,
00790        81,   93,  934,   82,   83,  153,   84,   73,  185,   57,
00791       215,  215,  215,  215,  142,   93,   57,  186,  143,   57,
00792       933,  187,  144,  932,  216,  188,   57,   75,   76,  928,
00793        57,   77,   57,   94,   95,  927,   96,  926,   81,   57,
00794        57,   97,   98,  165,   84,   41,   56,   41,   56,  922,
00795       921,  920,  166,   57,   42,   58,   44,   59,   46,  247,
00796        47,  919,  915,  119,  248,  914,   60,  913,   57,  167,
00797 
00798        57,  325,  325,  325,  325,   57,   61,   62,   57,  912,
00799       911,   57,   63,   57,   57,   57,   64,  903,   57,   57,
00800        57,   65,   66,   67,  121,  122,  168,  902,  123,   57,
00801       124,  125,   57,  126,   57,  127,  169,  901,  128,  129,
00802        57,  130,   57,  170,  171,   57,   57,   57,  900,   57,
00803        57,   57,   57,   57,  899,  883,  882,   57,   57,  724,
00804       724,   57,  724,   57,  881,  172,   57,  223,  878,  173,
00805       224,  226,   57,  215,  225,  215,  225,   57,  877,   57,
00806       868,  863,   57,   57,   57,   57,   57,  216,  862,   57,
00807        57,  861,   57,  860,   57,  227,  726,  726,   57,  726,
00808 
00809        57,   57,  228,  229,   57,  859,   57,  253,  253,  253,
00810       253,  253,  253,  253,  253,   57,  858,  230,  276,  276,
00811       857,  276,  254,  277,  848,  277,  254,  847,  255,  231,
00812       846,  845,  270,  215,  215,  215,  215,  278,  278,  278,
00813       278,  282,  282,  282,  282,   57,   57,  216,  844,  843,
00814       842,  279,   57,   57,   57,  283,  284,  284,  284,  284,
00815       841,   57,   57,  840,   57,  839,   57,   57,  287,   57,
00816       285,   57,  829,  731,  731,  290,  731,  828,  288,  215,
00817       225,  215,  225,  291,  827,  294,  295,  295,  295,  295,
00818       826,   57,  825,  216,  349,  349,  349,  349,   57,  824,
00819 
00820       823,  296,  301,  301,  301,  301,  305,  305,  305,  305,
00821       822,  821,   57,  278,  289,  278,  289,  302,  820,  350,
00822       350,  306,  350,  303,  351,   57,  352,  279,  819,  806,
00823       805,  297,   57,  337,  337,  337,  337,  803,  802,  307,
00824       318,  318,  318,  318,  338,  801,   57,  282,  292,  282,
00825       292,  278,  278,  278,  278,  319,  800,  355,  355,   57,
00826       355,  283,  356,  799,  357,  279,   57,  798,  768,   57,
00827       253,  253,  253,  253,  769,  797,   57,  320,  794,  770,
00828        57,  284,  293,  284,  293,  254,  330,  330,  330,  330,
00829        57,  793,  787,   57,  364,  285,  282,  282,  282,  282,
00830 
00831        57,  331,  284,  284,  284,  284,  358,  358,   57,  358,
00832       283,  359,  776,  360,   57,   57,  285,  361,  361,  361,
00833       361,  276,  276,   57,  276,   57,  277,  775,  277,   57,
00834        57,  362,   57,  295,  295,  295,  295,  774,  363,  278,
00835       289,  278,  289,  771,   57,  767,   57,  766,  296,  427,
00836       427,   57,  427,  279,  428,  365,  429,  765,   57,  366,
00837       368,  368,  368,  368,  301,  301,  301,  301,  373,  373,
00838       373,  373,   57,  282,  292,  282,  292,  764,  763,  302,
00839       305,  305,  305,  305,  762,   57,  761,  283,  376,  376,
00840       376,  376,   57,  759,  756,  306,  379,  379,  379,  379,
00841 
00842       386,  386,  386,  386,  752,  751,   57,  284,  293,  284,
00843       293,  380,  747,  350,  350,  387,  350,  745,  351,   57,
00844       352,  285,  318,  318,  318,  318,   57,  390,  390,  390,
00845       390,  325,  325,  325,  325,  724,  724,  319,  724,  744,
00846        57,  361,  367,  361,  367,   57,  396,  396,  396,  396,
00847        57,   57,   57,   57,  733,  362,  732,  397,   57,  730,
00848        57,  398,  330,  330,  330,  330,   57,  337,  337,  337,
00849       337,  729,   57,  482,   57,  728,  431,  331,  338,  411,
00850       411,  411,  411,  349,  349,  349,  349,  361,  361,  361,
00851       361,   57,   57,   57,  398,  727,  725,  719,   57,   57,
00852 
00853        57,  362,  718,  432,  433,  368,  368,  368,  368,  715,
00854       711,  710,   57,   57,   57,  373,  373,  373,  373,  438,
00855       438,  438,  438,  430,  361,  367,  361,  367,  376,  376,
00856       376,  376,  726,  726,  439,  726,   57,  709,  362,  379,
00857       379,  379,  379,   57,  443,  443,  443,  443,  444,  444,
00858       444,  444,  804,  804,  380,  804,  707,   57,  386,  386,
00859       386,  386,  704,  445,  450,  450,  450,  450,  390,  390,
00860       390,  390,  703,  387,  396,  396,  396,  396,  459,  459,
00861       459,  459,  700,  355,  355,  397,  355,  699,  356,  398,
00862       357,  460,  466,  466,  466,  466,  411,  411,  411,  411,
00863 
00864       696,  358,  358,   57,  358,   57,  359,  467,  360,   57,
00865        57,  398,   57,  684,  680,  679,   57,  438,  438,  438,
00866       438,  678,  731,  731,   57,  731,   57,  483,  804,  804,
00867        57,  804,  439,  488,  488,  488,  488,  884,  884,  481,
00868       884,  480,  443,  443,  443,  443,  444,  444,  444,  444,
00869       492,  492,  492,  492,  495,  495,  495,  495,  668,  667,
00870       666,  445,  497,  497,  497,  497,  662,  661,  660,  496,
00871       450,  450,  450,  450,  659,  658,  655,  498,  500,  500,
00872       500,  500,  505,  505,  505,  505,  459,  459,  459,  459,
00873       653,  885,  885,  501,  885,  652,  651,  506,  509,  509,
00874 
00875       509,  509,  514,  514,  514,  514,  650,  507,  649,  510,
00876       648,  898,  898,  511,  898,  647,  646,  515,  466,  466,
00877       466,  466,  637,  636,  516,  519,  519,  519,  519,  517,
00878       635,  634,  633,  467,  523,  523,  523,  523,  514,  514,
00879       514,  514,  526,  526,  526,  526,  529,  904,  904,  511,
00880       904,  632,  530,  515,  531,  532,  527,  533,  631,  630,
00881       524,  427,  427,  629,  427,  525,  428,  628,  429,  526,
00882       535,  526,  535,   57,  627,   57,  488,  488,  488,  488,
00883        57,   57,   57,  527,  545,  545,  545,  545,   57,  549,
00884       549,  549,  549,  626,   57,  625,   57,  624,  536,  546,
00885 
00886       623,  542,   57,   57,  550,  622,  621,  620,  537,  547,
00887        57,  619,  910,  910,  538,  910,  539,  540,  618,  541,
00888       492,  492,  492,  492,   57,  553,  553,  553,  553,  495,
00889       495,  495,  495,  558,  558,  558,  558,  617,  581,  581,
00890       554,  581,  616,  582,  496,  583,  615,  555,  497,  497,
00891       497,  497,  556,  559,  559,  559,  559,  500,  500,  500,
00892       500,  614,  613,  498,  561,  561,  561,  561,  505,  505,
00893       505,  505,  501,  565,  565,  565,  565,  509,  509,  509,
00894       509,  610,  609,  506,  569,  569,  569,  569,  510,  607,
00895       606,  604,  511,  514,  514,  514,  514,  570,  573,  573,
00896 
00897       573,  573,  519,  519,  519,  519,  603,  601,  515,  523,
00898       523,  523,  523,  526,  526,  526,  526,  600,   57,  591,
00899       545,  545,  545,  545,  511,   57,  590,  527,  526,  535,
00900       526,  535,  589,  588,   57,  546,   57,   57,   57,   57,
00901        57,   57,  527,   57,   57,   57,  585,   57,  592,  602,
00902       602,  602,  602,   57,  594,   57,  584,   57,   57,   57,
00903        57,   57,   57,  597,  593,  884,  884,  596,  884,   57,
00904       595,  580,  579,  578,  599,  549,  549,  549,  549,  598,
00905       577,  576,   57,   57,  605,  605,  605,  605,  575,   57,
00906       550,  553,  553,  553,  553,  608,  608,  608,  608,  611,
00907 
00908       611,  611,  611,   57,  574,  572,  554,  558,  558,  558,
00909       558,  638,  571,  568,  612,  559,  559,  559,  559,  561,
00910       561,  561,  561,  565,  565,  565,  565,  569,  569,  569,
00911       569,  573,  573,  573,  573,   57,   57,   57,   57,   57,
00912       567,  566,   57,   57,   57,   57,   57,   57,  602,  602,
00913       602,  602,  885,  885,   57,  885,   57,   57,   57,   57,
00914        57,  641,  640,   57,  639,  642,  564,  643,   57,  563,
00915        57,  605,  605,  605,  605,  608,  608,  608,  608,  644,
00916       898,  898,  645,  898,   57,  611,  611,  611,  611,  654,
00917       654,  654,  654,  656,  656,  656,  656,  562,  560,  557,
00918 
00919       612,  663,  663,  663,  663,  552,  581,  581,  657,  581,
00920       551,  582,  664,  583,  548,  544,  665,  669,  669,  669,
00921       669,  670,  670,  670,  670,  672,  672,  672,  672,   57,
00922        57,   57,  665,  543,  534,  671,   57,   57,   57,  673,
00923       675,  675,  675,  675,  681,  681,  681,  681,  528,  522,
00924       690,   57,  692,  521,  676,  520,  518,   57,  682,  513,
00925       675,  688,  675,  688,   57,  691,  681,  693,  681,  693,
00926       674,  512,  508,  677,  676,  504,  904,  904,   57,  904,
00927       682,  683,  670,  685,  670,  685,  503,  697,  697,  697,
00928       697,  695,  502,  689,   57,  499,  671,  701,  701,  701,
00929 
00930       701,   57,  698,  694,  494,   57,  705,  705,  705,  705,
00931       493,   57,  702,  491,  490,   57,  672,  686,  672,  686,
00932       489,  706,  654,  654,  654,  654,  910,  910,   57,  910,
00933       673,  656,  656,  656,  656,   57,  708,  708,  708,  708,
00934       712,  712,  712,  712,  487,  486,  657,  721,  721,   57,
00935       721,  713,  722,   57,  723,  714,  663,  663,  663,  663,
00936        57,  687,  716,  716,  716,  716,  485,  664,  484,  479,
00937       478,  665,  735,  477,   57,  717,  720,  720,  720,  720,
00938       669,  669,  669,  669,  670,  670,  670,  670,  476,  721,
00939       721,  714,  721,  475,  722,  665,  723,  474,  671,  672,
00940 
00941       672,  672,  672,  675,  675,  675,  675,  681,  681,  681,
00942       681,   57,   57,  673,  473,  472,  471,  676,   57,   57,
00943       470,  682,  670,  685,  670,  685,  675,  688,  675,  688,
00944        57,  469,   57,   57,   57,   57,  671,   57,  468,  465,
00945       676,   57,   57,  464,  736,  734,  681,  693,  681,  693,
00946       463,   57,   57,  462,   57,   57,   57,  461,  458,   57,
00947       682,   57,  972,  972,  737,  972,  777,   57,  738,  739,
00948       457,   57,  456,   57,  455,   57,  454,  453,  452,  740,
00949       741,  741,  741,  741,  697,  697,  697,  697,  451,  977,
00950       977,   57,  977,  980,  980,  742,  980,  449,  448,  698,
00951 
00952       743,  743,  743,  743,  701,  701,  701,  701,  746,  746,
00953       746,  746,  748,  748,  748,  748,  447,  446,  442,  702,
00954       705,  705,  705,  705,  441,  440,  437,  749,  750,  750,
00955       750,  750,  436,  435,  434,  706,  708,  708,  708,  708,
00956       753,  753,  753,  753,  426,  712,  712,  712,  712,  425,
00957       424,  754,   57,  423,  422,  755,  713,  421,  420,   57,
00958       714,  757,  757,  757,  757,  716,  716,  716,  716,  760,
00959       760,  760,  760,   57,  758,  720,  720,  720,  720,  772,
00960       772,  772,  772,  779,  755,  419,  778,  418,   57,  780,
00961       714,   57,   57,  773,  781,   57,  772,  783,  772,  783,
00962 
00963        57,   57,  741,  741,  741,  741,  417,   57,   57,   57,
00964       773,  972,  972,  782,  972,  416,  415,  742,  784,  414,
00965       413,   57,   57,  786,  786,  786,  786,  743,  743,  743,
00966       743,  788,  788,  788,  788,  977,  977,  785,  977,  412,
00967       410,   57,  746,  746,  746,  746,  789,  790,  790,  790,
00968       790,  748,  748,  748,  748,  792,  792,  792,  792,  409,
00969       980,  980,  791,  980,  408,  407,  749,  750,  750,  750,
00970       750,  753,  753,  753,  753,  795,  795,  795,  795,  406,
00971        57,  405,  754,  404,  403,  402,  755,   57,  796,  757,
00972       757,  757,  757,  760,  760,  760,  760,  772,  772,  772,
00973 
00974       772,   57,   57,   57,  401,  808,  400,   57,  755,   57,
00975        57,  773,  399,   57,   57,   57,  395,  394,  393,  807,
00976        57,  392,   57,   57,   57,  810,  391,  389,   57,  388,
00977       811,  385,  384,  809,   57,   57,   57,  772,  783,  772,
00978       783,  383,   57,   57,  382,  812,  786,  786,  786,  786,
00979        57,  773,  815,  815,  815,  815,   57,  788,  788,  788,
00980       788,  381,  813,  378,  814,  377,  375,  816,  817,  817,
00981       817,  817,  789,  790,  790,  790,  790,  818,  818,  818,
00982       818,  374,   57,  792,  792,  792,  792,   57,  791,  795,
00983       795,  795,  795,   57,   57,   57,   57,   57,   57,   57,
00984 
00985        57,  372,   57,   57,   57,   57,   57,  371,   57,  370,
00986       369,  354,  830,  353,   57,  348,   57,   57,   57,   57,
00987       836,  347,  833,  346,  832,   57,  835,  345,  344,  831,
00988       834,  343,   57,  342,  837,  815,  815,  815,  815,  838,
00989       838,  838,  838,  341,  340,  339,   57,  336,  335,  334,
00990       816,  817,  817,  817,  817,  818,  818,  818,  818,   57,
00991        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
00992        57,   57,   57,  838,  838,  838,  838,  333,  332,  329,
00993        57,  850,   57,  852,   57,   57,   57,  328,  849,  853,
00994        57,  327,  326,  324,  851,  323,  854,   57,  855,  864,
00995 
00996       864,  864,  864,  866,  866,  866,  866,   57,   57,   57,
00997       856,   57,   57,  865,   57,   57,   57,  867,   57,   57,
00998       864,  874,  864,  874,  322,   57,  321,  872,   57,   57,
00999        57,   57,  317,   57,  865,  873,  314,  313,   57,   57,
01000       312,  869,  870,  311,  310,  309,  871,  866,  875,  866,
01001       875,  308,   57,  879,  879,  879,  879,  864,  864,  864,
01002       864,  867,   57,   57,  304,   57,  300,  880,  876,   57,
01003        57,  865,  866,  866,  866,  866,  886,  886,  886,  886,
01004        57,   57,   57,   57,  918,  299,  867,   57,   57,   57,
01005       887,  298,   57,  286,  281,  888,  879,  889,  879,  889,
01006 
01007       892,   57,   57,   57,  864,  874,  864,  874,  280,  275,
01008       880,  274,  890,  272,  271,  891,  269,  268,  865,  866,
01009       875,  866,  875,  886,  893,  886,  893,  894,  894,  894,
01010       894,  267,  264,  867,  263,  262,  261,  887,  260,  259,
01011       258,   57,  895,  896,  896,  896,  896,  257,   57,   57,
01012       256,  879,  879,  879,  879,   57,  252,  897,  886,  886,
01013       886,  886,  251,   57,   57,  880,  250,  249,   57,  924,
01014        57,  246,  887,  896,  905,  896,  905,  879,  889,  879,
01015       889,   57,   57,  245,   57,  244,  243,  897,   57,   57,
01016       908,  880,  886,  893,  886,  893,  242,  241,  906,  240,
01017 
01018       239,  238,   57,   57,  237,  236,  887,  907,  894,  894,
01019       894,  894,  909,  909,  909,  909,  235,  234,   57,  233,
01020       232,  222,   57,  895,  896,  896,  896,  896,  896,  905,
01021       896,  905,   57,   57,   57,  221,  220,   57,  897,   57,
01022        57,   57,  897,  909,  909,  909,  909,  219,  218,   57,
01023       217,   57,  214,   57,   57,   57,   57,  916,   57,   57,
01024        57,  925,  213,  923,  212,  211,   57,   57,  210,  917,
01025        57,  930,   57,   57,  209,   57,   57,   57,  208,   57,
01026        57,  931,   57,   57,   57,  929,   57,  935,   57,  149,
01027       205,  204,   57,  203,  202,   57,   57,  936,   57,   57,
01028 
01029       941,   57,  201,  200,   57,   57,  199,   57,   57,   57,
01030       937,   57,   57,   57,   57,  198,   57,   57,  197,  196,
01031       195,  942,   57,   57,   57,   57,   57,  943,   57,   57,
01032       194,  193,  949,   57,  947,  192,   57,   57,   57,  948,
01033        57,   57,  953,  954,  964,  964,  964,  964,   57,  191,
01034        57,  955,   57,  190,   57,  189,  959,   57,  965,   57,
01035       180,  179,   57,  178,   57,  177,  176,  960,  964,  968,
01036       964,  968,  175,   57,  961,  174,  149,  164,   57,  163,
01037       162,   57,  965,  161,  160,  159,  966,  158,   57,  157,
01038       967,  970,  970,  970,  970,  964,  964,  964,  964,  156,
01039 
01040       155,  154,   57,  152,  151,  971,  150,  148,  146,  965,
01041       145,  136,  135,   57,  973,  970,  974,  970,  974,  964,
01042       968,  964,  968,  975,  975,  975,  975,  134,  133,  971,
01043       132,  131,  120,  965,  108,  107,  102,  976,  970,  970,
01044       970,  970,  975,  979,  975,  979,  101,  970,  974,  970,
01045       974,  100,  971,   99,   71,   91,  976,   90,   71,   68,
01046        57,  971,   68,  983,   57,  975,  975,  975,  975,  975,
01047       979,  975,  979,   32,   32,   32,   32,   32,   32,  976,
01048       983,  983,  983,  976,  983,  983,  983,   57,  983,  983,
01049       983,  983,   57,  983,  983,  983,  983,  983,  983,  983,
01050 
01051       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01052       983,  983,  983,  983,   57,   22,   22,   22,   22,   22,
01053        31,   31,   31,   31,   31,   33,   33,   33,   33,   33,
01054        34,   34,   34,   34,   34,   32,   32,   32,   32,   32,
01055        35,   35,   35,   35,   35,   38,   38,   38,   38,   38,
01056        57,  983,  983,   57,   87,   87,   87,   87,   88,   88,
01057       983,   88,   88,   89,   89,   89,  983,   89,   17,  983,
01058       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01059       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01060       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01061 
01062       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01063       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01064       983,  983
01065     } ;
01066 
01067 static yyconst flex_int16_t yy_chk[2723] =
01068     {   0,
01069         1,    1,    1,    1,    1,    1,    1,  980,    1,    1,
01070         1,    1,    1,    1,    1,    1,    1,    1,   27,   24,
01071        27,   24,    1,    2,    2,    2,    2,    2,    2,    2,
01072        24,    2,    2,    2,    2,    2,    2,    2,    2,    2,
01073         2,   13,   14,   15,   16,    2,   42,   53,   42,   13,
01074        14,   29,   29,   29,   29,  977,  972,   42,   15,   16,
01075        19,   19,   19,   19,   52,   22,  962,   22,   53,   19,
01076        19,   19,   19,   19,   22,   19,   22,   30,   22,   43,
01077        22,   19,   52,   57,   30,  205,   43,   30,  957,  205,
01078        57,   19,   19,   45,   59,   45,   59,   19,   30,  212,
01079 
01080        43,   19,   45,  212,   57,  956,   19,   19,   19,   20,
01081        20,   20,   20,   93,   93,  952,   45,   93,   20,   20,
01082        20,   20,   20,  951,   20,   47,   47,   47,   47,  530,
01083        20,   61,   60,   85,   85,   85,   85,  950,   61,   60,
01084        20,   20,   60,  246,   62,  530,   20,  246,   61,  946,
01085        20,   62,   61,   60,   63,   20,   20,   20,   25,   64,
01086        25,   63,  945,  944,  940,   62,   64,   25,   81,   25,
01087        25,   25,   65,   25,   63,   63,   64,   25,  939,   65,
01088        64,   81,  146,   81,   81,  127,  938,  146,   66,   65,
01089        67,   25,   28,   65,   64,   66,  934,   67,  127,   28,
01090 
01091       127,  127,   70,   70,   28,   82,   70,   67,   86,   66,
01092        65,   67,  933,   70,   82,   86,   86,   66,   82,   28,
01093        28,  932,   82,   28,   92,   28,   28,   70,   28,   86,
01094        28,   92,  928,   28,   28,   97,   28,   46,  128,  109,
01095       158,  158,  158,  158,   97,   92,  109,  128,   97,  110,
01096       927,  128,   97,  926,  158,  128,  110,   46,   46,  922,
01097       109,   46,  111,   46,   46,  921,   46,  920,   46,  111,
01098       110,   46,   46,  109,   46,   56,   56,   56,   56,  914,
01099       913,  912,  110,  111,   56,   56,   56,   56,   56,  190,
01100        56,  910,  904,  119,  190,  901,   56,  900,  112,  111,
01101 
01102       119,  254,  254,  254,  254,  112,   56,   56,  113,  899,
01103       898,  114,   56,  115,  119,  113,   56,  885,  114,  112,
01104       115,   56,   56,   56,   73,   73,  112,  884,   73,  113,
01105        73,   73,  114,   73,  115,   73,  113,  883,   73,   73,
01106       116,   73,  117,  114,  115,  147,  165,  116,  882,  117,
01107       168,  166,  147,  165,  881,  863,  862,  168,  166,  673,
01108       673,  116,  673,  117,  861,  116,  147,  165,  859,  117,
01109       166,  168,  166,  167,  167,  167,  167,  169,  857,  170,
01110       848,  845,  171,  172,  169,  167,  170,  167,  844,  171,
01111       172,  843,  167,  842,  173,  169,  676,  676,  169,  676,
01112 
01113       170,  173,  170,  171,  172,  841,  167,  195,  195,  195,
01114       195,  209,  209,  209,  209,  173,  840,  172,  216,  216,
01115       839,  216,  195,  216,  829,  216,  209,  828,  195,  173,
01116       826,  825,  209,  215,  215,  215,  215,  217,  217,  217,
01117       217,  220,  220,  220,  220,  223,  224,  215,  824,  823,
01118       822,  217,  223,  224,  227,  220,  221,  221,  221,  221,
01119       821,  227,  228,  820,  231,  819,  223,  224,  223,  228,
01120       221,  231,  806,  682,  682,  227,  682,  805,  224,  225,
01121       225,  225,  225,  228,  804,  231,  232,  232,  232,  232,
01122       803,  225,  802,  225,  277,  277,  277,  277,  225,  801,
01123 
01124       800,  232,  236,  236,  236,  236,  238,  238,  238,  238,
01125       799,  798,  225,  226,  226,  226,  226,  236,  797,  279,
01126       279,  238,  279,  236,  279,  226,  279,  226,  793,  776,
01127       775,  232,  226,  265,  265,  265,  265,  771,  770,  238,
01128       248,  248,  248,  248,  265,  769,  226,  229,  229,  229,
01129       229,  278,  278,  278,  278,  248,  768,  283,  283,  229,
01130       283,  229,  283,  767,  283,  278,  229,  765,  728,  288,
01131       253,  253,  253,  253,  728,  759,  288,  248,  754,  728,
01132       229,  230,  230,  230,  230,  253,  259,  259,  259,  259,
01133       288,  751,  744,  230,  288,  230,  282,  282,  282,  282,
01134 
01135       230,  259,  284,  284,  284,  284,  285,  285,  287,  285,
01136       282,  285,  733,  285,  230,  287,  284,  286,  286,  286,
01137       286,  348,  348,  290,  348,  291,  348,  732,  348,  287,
01138       290,  286,  291,  295,  295,  295,  295,  731,  287,  289,
01139       289,  289,  289,  729,  290,  727,  291,  726,  295,  362,
01140       362,  289,  362,  289,  362,  290,  362,  725,  289,  291,
01141       296,  296,  296,  296,  301,  301,  301,  301,  302,  302,
01142       302,  302,  289,  292,  292,  292,  292,  724,  723,  301,
01143       305,  305,  305,  305,  722,  292,  721,  292,  306,  306,
01144       306,  306,  292,  718,  713,  305,  309,  309,  309,  309,
01145 
01146       315,  315,  315,  315,  709,  707,  292,  293,  293,  293,
01147       293,  309,  703,  416,  416,  315,  416,  700,  416,  293,
01148       416,  293,  318,  318,  318,  318,  293,  319,  319,  319,
01149       319,  325,  325,  325,  325,  764,  764,  318,  764,  699,
01150       293,  294,  294,  294,  294,  364,  326,  326,  326,  326,
01151       686,  432,  364,  294,  684,  294,  683,  326,  432,  680,
01152       294,  326,  330,  330,  330,  330,  364,  337,  337,  337,
01153       337,  679,  432,  432,  294,  678,  364,  330,  337,  343,
01154       343,  343,  343,  349,  349,  349,  349,  361,  361,  361,
01155       361,  363,  365,  366,  343,  677,  674,  667,  363,  365,
01156 
01157       366,  361,  666,  365,  366,  368,  368,  368,  368,  664,
01158       661,  660,  363,  365,  366,  373,  373,  373,  373,  374,
01159       374,  374,  374,  363,  367,  367,  367,  367,  376,  376,
01160       376,  376,  766,  766,  374,  766,  367,  659,  367,  379,
01161       379,  379,  379,  367,  380,  380,  380,  380,  381,  381,
01162       381,  381,  773,  773,  379,  773,  655,  367,  386,  386,
01163       386,  386,  652,  381,  387,  387,  387,  387,  390,  390,
01164       390,  390,  651,  386,  396,  396,  396,  396,  398,  398,
01165       398,  398,  649,  421,  421,  396,  421,  648,  421,  396,
01166       421,  398,  405,  405,  405,  405,  411,  411,  411,  411,
01167 
01168       646,  424,  424,  430,  424,  431,  424,  405,  424,  433,
01169       430,  411,  431,  637,  635,  634,  433,  438,  438,  438,
01170       438,  633,  774,  774,  430,  774,  431,  433,  827,  827,
01171       433,  827,  438,  439,  439,  439,  439,  865,  865,  431,
01172       865,  430,  443,  443,  443,  443,  444,  444,  444,  444,
01173       445,  445,  445,  445,  448,  448,  448,  448,  625,  624,
01174       623,  444,  449,  449,  449,  449,  621,  620,  618,  448,
01175       450,  450,  450,  450,  617,  615,  613,  449,  452,  452,
01176       452,  452,  456,  456,  456,  456,  459,  459,  459,  459,
01177       610,  867,  867,  452,  867,  609,  607,  456,  461,  461,
01178 
01179       461,  461,  464,  464,  464,  464,  606,  456,  604,  461,
01180       603,  880,  880,  461,  880,  601,  600,  464,  466,  466,
01181       466,  466,  591,  590,  464,  467,  467,  467,  467,  464,
01182       589,  588,  587,  466,  471,  471,  471,  471,  472,  472,
01183       472,  472,  473,  473,  473,  473,  475,  887,  887,  471,
01184       887,  586,  475,  472,  475,  475,  473,  475,  585,  584,
01185       472,  477,  477,  583,  477,  472,  477,  582,  477,  480,
01186       480,  480,  480,  481,  581,  483,  488,  488,  488,  488,
01187       481,  480,  483,  480,  486,  486,  486,  486,  480,  489,
01188       489,  489,  489,  580,  481,  579,  483,  578,  481,  486,
01189 
01190       576,  483,  480,  482,  489,  575,  574,  572,  482,  486,
01191       482,  571,  897,  897,  482,  897,  482,  482,  567,  482,
01192       492,  492,  492,  492,  482,  493,  493,  493,  493,  495,
01193       495,  495,  495,  496,  496,  496,  496,  566,  527,  527,
01194       493,  527,  564,  527,  495,  527,  563,  493,  497,  497,
01195       497,  497,  493,  498,  498,  498,  498,  500,  500,  500,
01196       500,  562,  560,  497,  501,  501,  501,  501,  505,  505,
01197       505,  505,  500,  506,  506,  506,  506,  509,  509,  509,
01198       509,  556,  555,  505,  511,  511,  511,  511,  509,  552,
01199       551,  548,  509,  514,  514,  514,  514,  511,  515,  515,
01200 
01201       515,  515,  519,  519,  519,  519,  547,  544,  514,  523,
01202       523,  523,  523,  526,  526,  526,  526,  543,  536,  534,
01203       545,  545,  545,  545,  523,  536,  533,  526,  535,  535,
01204       535,  535,  532,  531,  537,  545,  538,  539,  540,  536,
01205       535,  537,  535,  538,  539,  540,  529,  535,  536,  546,
01206       546,  546,  546,  542,  538,  537,  528,  538,  539,  540,
01207       542,  535,  541,  540,  537,  902,  902,  539,  902,  541,
01208       538,  525,  524,  522,  542,  549,  549,  549,  549,  541,
01209       521,  520,  592,  541,  550,  550,  550,  550,  517,  592,
01210       549,  553,  553,  553,  553,  554,  554,  554,  554,  557,
01211 
01212       557,  557,  557,  592,  516,  513,  553,  558,  558,  558,
01213       558,  592,  512,  510,  557,  559,  559,  559,  559,  561,
01214       561,  561,  561,  565,  565,  565,  565,  569,  569,  569,
01215       569,  573,  573,  573,  573,  593,  594,  595,  596,  597,
01216       508,  507,  593,  594,  595,  596,  597,  598,  602,  602,
01217       602,  602,  903,  903,  598,  903,  593,  594,  595,  596,
01218       597,  595,  594,  599,  593,  596,  504,  597,  598,  503,
01219       599,  605,  605,  605,  605,  608,  608,  608,  608,  598,
01220       911,  911,  599,  911,  599,  611,  611,  611,  611,  612,
01221       612,  612,  612,  614,  614,  614,  614,  502,  499,  494,
01222 
01223       611,  622,  622,  622,  622,  491,  627,  627,  614,  627,
01224       490,  627,  622,  627,  487,  485,  622,  626,  626,  626,
01225       626,  630,  630,  630,  630,  631,  631,  631,  631,  641,
01226       642,  643,  626,  484,  476,  630,  641,  642,  643,  631,
01227       632,  632,  632,  632,  636,  636,  636,  636,  474,  470,
01228       641,  642,  643,  469,  632,  468,  465,  645,  636,  463,
01229       640,  640,  640,  640,  645,  642,  644,  644,  644,  644,
01230       631,  462,  457,  632,  640,  455,  915,  915,  645,  915,
01231       644,  636,  638,  638,  638,  638,  454,  647,  647,  647,
01232       647,  645,  453,  640,  638,  451,  638,  650,  650,  650,
01233 
01234       650,  638,  647,  644,  447,  640,  653,  653,  653,  653,
01235       446,  644,  650,  442,  441,  638,  639,  639,  639,  639,
01236       440,  653,  654,  654,  654,  654,  919,  919,  639,  919,
01237       639,  656,  656,  656,  656,  639,  657,  657,  657,  657,
01238       662,  662,  662,  662,  437,  436,  656,  671,  671,  639,
01239       671,  662,  671,  689,  671,  662,  663,  663,  663,  663,
01240       689,  639,  665,  665,  665,  665,  435,  663,  434,  429,
01241       428,  663,  689,  427,  689,  665,  668,  668,  668,  668,
01242       669,  669,  669,  669,  670,  670,  670,  670,  420,  761,
01243       761,  668,  761,  419,  761,  669,  761,  415,  670,  672,
01244 
01245       672,  672,  672,  675,  675,  675,  675,  681,  681,  681,
01246       681,  687,  690,  672,  414,  413,  412,  675,  687,  690,
01247       410,  681,  685,  685,  685,  685,  688,  688,  688,  688,
01248       691,  409,  687,  690,  734,  692,  685,  691,  407,  403,
01249       688,  734,  692,  402,  690,  687,  693,  693,  693,  693,
01250       401,  691,  694,  400,  695,  734,  692,  399,  397,  694,
01251       693,  695,  965,  965,  691,  965,  734,  685,  692,  694,
01252       395,  688,  394,  694,  393,  695,  392,  391,  389,  695,
01253       696,  696,  696,  696,  697,  697,  697,  697,  388,  971,
01254       971,  693,  971,  976,  976,  696,  976,  385,  384,  697,
01255 
01256       698,  698,  698,  698,  701,  701,  701,  701,  702,  702,
01257       702,  702,  704,  704,  704,  704,  383,  382,  378,  701,
01258       705,  705,  705,  705,  377,  375,  372,  704,  706,  706,
01259       706,  706,  371,  370,  369,  705,  708,  708,  708,  708,
01260       710,  710,  710,  710,  360,  712,  712,  712,  712,  359,
01261       358,  710,  735,  357,  356,  710,  712,  355,  354,  735,
01262       712,  714,  714,  714,  714,  716,  716,  716,  716,  719,
01263       719,  719,  719,  735,  714,  720,  720,  720,  720,  730,
01264       730,  730,  730,  736,  719,  353,  735,  352,  737,  736,
01265       720,  736,  736,  730,  736,  737,  738,  738,  738,  738,
01266 
01267       739,  740,  741,  741,  741,  741,  351,  739,  740,  737,
01268       738,  978,  978,  737,  978,  350,  347,  741,  739,  346,
01269       345,  739,  740,  742,  742,  742,  742,  743,  743,  743,
01270       743,  745,  745,  745,  745,  981,  981,  740,  981,  344,
01271       342,  738,  746,  746,  746,  746,  745,  747,  747,  747,
01272       747,  748,  748,  748,  748,  749,  749,  749,  749,  341,
01273       982,  982,  747,  982,  340,  339,  748,  750,  750,  750,
01274       750,  753,  753,  753,  753,  755,  755,  755,  755,  338,
01275       778,  336,  753,  335,  334,  333,  753,  778,  755,  757,
01276       757,  757,  757,  760,  760,  760,  760,  772,  772,  772,
01277 
01278       772,  778,  777,  779,  329,  778,  328,  780,  760,  777,
01279       779,  772,  327,  781,  780,  782,  324,  323,  322,  777,
01280       781,  321,  782,  777,  779,  780,  320,  317,  780,  316,
01281       781,  314,  313,  779,  781,  784,  782,  783,  783,  783,
01282       783,  312,  784,  785,  311,  782,  786,  786,  786,  786,
01283       785,  783,  787,  787,  787,  787,  784,  788,  788,  788,
01284       788,  310,  784,  308,  785,  307,  304,  787,  789,  789,
01285       789,  789,  788,  790,  790,  790,  790,  791,  791,  791,
01286       791,  303,  783,  792,  792,  792,  792,  807,  790,  795,
01287       795,  795,  795,  808,  807,  809,  810,  812,  811,  813,
01288 
01289       808,  300,  809,  810,  812,  811,  813,  299,  807,  298,
01290       297,  281,  807,  280,  808,  276,  809,  810,  812,  811,
01291       813,  275,  810,  274,  809,  814,  812,  272,  271,  808,
01292       811,  270,  814,  269,  814,  815,  815,  815,  815,  816,
01293       816,  816,  816,  268,  267,  266,  814,  264,  263,  262,
01294       815,  817,  817,  817,  817,  818,  818,  818,  818,  830,
01295       831,  832,  833,  835,  834,  836,  830,  831,  832,  833,
01296       835,  834,  836,  838,  838,  838,  838,  261,  260,  258,
01297       830,  831,  832,  833,  835,  834,  836,  257,  830,  834,
01298       837,  256,  255,  252,  832,  251,  835,  837,  836,  846,
01299 
01300       846,  846,  846,  847,  847,  847,  847,  849,  852,  850,
01301       837,  837,  851,  846,  849,  852,  850,  847,  853,  851,
01302       854,  854,  854,  854,  250,  853,  249,  852,  849,  852,
01303       850,  856,  247,  851,  854,  853,  245,  244,  856,  853,
01304       243,  849,  850,  242,  241,  240,  851,  855,  855,  855,
01305       855,  239,  856,  860,  860,  860,  860,  864,  864,  864,
01306       864,  855,  869,  908,  237,  854,  235,  860,  856,  869,
01307       908,  864,  866,  866,  866,  866,  868,  868,  868,  868,
01308       871,  872,  873,  869,  908,  234,  866,  871,  872,  873,
01309       868,  233,  855,  222,  219,  869,  870,  870,  870,  870,
01310 
01311       873,  871,  872,  873,  874,  874,  874,  874,  218,  214,
01312       870,  213,  871,  211,  210,  872,  208,  207,  874,  875,
01313       875,  875,  875,  876,  876,  876,  876,  877,  877,  877,
01314       877,  206,  204,  875,  203,  202,  201,  876,  200,  199,
01315       198,  870,  877,  878,  878,  878,  878,  197,  917,  874,
01316       196,  879,  879,  879,  879,  917,  194,  878,  886,  886,
01317       886,  886,  193,  892,  875,  879,  192,  191,  876,  917,
01318       892,  189,  886,  888,  888,  888,  888,  889,  889,  889,
01319       889,  890,  891,  188,  892,  187,  186,  888,  890,  891,
01320       892,  889,  893,  893,  893,  893,  185,  184,  890,  183,
01321 
01322       182,  181,  890,  891,  180,  179,  893,  891,  894,  894,
01323       894,  894,  895,  895,  895,  895,  178,  177,  888,  176,
01324       175,  164,  889,  894,  896,  896,  896,  896,  905,  905,
01325       905,  905,  906,  907,  916,  163,  162,  893,  896,  906,
01326       907,  916,  905,  909,  909,  909,  909,  161,  160,  918,
01327       159,  923,  157,  906,  907,  916,  918,  906,  923,  924,
01328       925,  918,  156,  916,  154,  153,  924,  925,  152,  907,
01329       918,  924,  923,  905,  151,  929,  930,  931,  150,  935,
01330       924,  925,  929,  930,  931,  923,  935,  929,  936,  149,
01331       145,  144,  937,  143,  142,  936,  929,  930,  931,  937,
01332 
01333       935,  941,  141,  140,  942,  943,  139,  947,  941,  936,
01334       931,  942,  943,  937,  947,  138,  948,  949,  137,  136,
01335       135,  936,  941,  948,  949,  942,  943,  937,  947,  953,
01336       134,  133,  943,  954,  941,  132,  953,  948,  949,  942,
01337       954,  955,  947,  948,  958,  958,  958,  958,  955,  131,
01338       953,  949,  959,  130,  954,  129,  953,  960,  958,  959,
01339       126,  125,  955,  124,  960,  123,  122,  954,  961,  961,
01340       961,  961,  121,  959,  955,  120,  118,  108,  960,  107,
01341       106,  966,  961,  105,  104,  103,  959,  102,  966,  101,
01342       960,  963,  963,  963,  963,  964,  964,  964,  964,  100,
01343 
01344        99,   98,  966,   96,   95,  963,   94,   90,   84,  964,
01345        83,   80,   79,  961,  966,  967,  967,  967,  967,  968,
01346       968,  968,  968,  969,  969,  969,  969,   78,   77,  967,
01347        76,   75,   72,  968,   55,   54,   51,  969,  970,  970,
01348       970,  970,  973,  973,  973,  973,   50,  974,  974,  974,
01349       974,   49,  970,   48,   44,   40,  973,   37,   26,   23,
01350       967,  974,   21,   17,  968,  975,  975,  975,  975,  979,
01351       979,  979,  979,    8,    7,    6,    5,    4,    3,  975,
01352         0,    0,    0,  979,    0,    0,    0,  973,    0,    0,
01353         0,    0,  974,    0,    0,    0,    0,    0,    0,    0,
01354 
01355         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
01356         0,    0,    0,    0,  979,  984,  984,  984,  984,  984,
01357       985,  985,  985,  985,  985,  986,  986,  986,  986,  986,
01358       987,  987,  987,  987,  987,  988,  988,  988,  988,  988,
01359       989,  989,  989,  989,  989,  990,  990,  990,  990,  990,
01360       991,    0,    0,  991,  992,  992,  992,  992,  993,  993,
01361         0,  993,  993,  994,  994,  994,    0,  994,  983,  983,
01362       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01363       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01364       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01365 
01366       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01367       983,  983,  983,  983,  983,  983,  983,  983,  983,  983,
01368       983,  983
01369     } ;
01370 
01371 /* Table of booleans, true if rule could match eol. */
01372 static yyconst flex_int32_t yy_rule_can_match_eol[121] =
01373     {   0,
01374 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01375     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01376     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01377     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01378     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01379     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 
01380     0,     };
01381 
01382 /* The intent behind this definition is that it'll catch
01383  * any uses of REJECT which flex missed.
01384  */
01385 #define REJECT reject_used_but_not_detected
01386 #define yymore() yymore_used_but_not_detected
01387 #define YY_MORE_ADJ 0
01388 #define YY_RESTORE_YY_MORE_OFFSET
01389 #line 1 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01390 
01404 #line 16 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01405 
01406 #include <iostream>
01407 #include "OSDataStructures.h"
01408 #include "OSMathUtil.h"
01409 #include "OSConfig.h"
01410 
01411 #ifdef HAVE_CSTDIO
01412 # include <cstdio>
01413 #else
01414 # ifdef HAVE_STDIO_H
01415 #  include <stdio.h>
01416 # else
01417 #  error "don't have header file for stdio"
01418 # endif
01419 #endif
01420 
01421 #ifdef HAVE_CSTRING
01422 # include <cstring>
01423 #else
01424 # ifdef HAVE_STRING_H
01425 #  include <string.h>
01426 # else
01427 #  error "don't have header file for string"
01428 # endif
01429 #endif
01430 
01431 #ifdef HAVE_CMATH
01432 # include <cmath>
01433 #else
01434 # ifdef HAVE_MATH_H
01435 #  include <math.h>
01436 # else
01437 #  error "don't have header file for math"
01438 # endif
01439 #endif
01440  
01441 #include <sstream>  
01442 #include "OSrLParserData.h"
01443 #include "OSErrorClass.h"
01444 #include "OSParseosrl.tab.hpp"
01445 #include "OSResult.h"
01446 
01447 
01448 #define PARSERDEBUG
01449 #ifdef PARSERDEBUG
01450         #define YY_PRINT  printf("%s", yytext);
01451 #else     
01452         #define YY_PRINT ;
01453 #endif
01454 
01455 
01456 #ifdef WIN_
01457   #define YY_NO_UNISTD_H
01458   #include <io.h>
01459   #include <process.h>
01460   #ifdef USE_OLD_UNISTD
01461      #include<sys/unistd.h>  
01462   #endif
01463 #endif
01464 
01465 using std::cout;
01466 using std::endl;
01467 using std::ostringstream;
01468      
01469 
01470 
01471 
01472 
01473 
01474 
01475 
01476 #line 100 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01477 #define YY_EXTRA_TYPE OSrLParserData*
01478 #line 1479 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
01479 
01480 #define INITIAL 0
01481 #define osrlattributetext 1
01482 #define doublequoteattributetext 2
01483 #define singlequoteattributetext 3
01484 #define startelement 4
01485 #define elementtext 5
01486 #define comment 6
01487 #define xmldeclaration 7
01488 
01489 #ifndef YY_NO_UNISTD_H
01490 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01491  * down here because we want the user's section 1 to have been scanned first.
01492  * The user has a chance to override it with an option.
01493  */
01494 #include <unistd.h>
01495 #endif
01496 
01497 #ifndef YY_EXTRA_TYPE
01498 #define YY_EXTRA_TYPE void *
01499 #endif
01500 
01501 /* Holds the entire state of the reentrant scanner. */
01502 struct yyguts_t
01503     {
01504 
01505     /* User-defined. Not touched by flex. */
01506     YY_EXTRA_TYPE yyextra_r;
01507 
01508     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01509     FILE *yyin_r, *yyout_r;
01510     size_t yy_buffer_stack_top; 
01511     size_t yy_buffer_stack_max; 
01512     YY_BUFFER_STATE * yy_buffer_stack; 
01513     char yy_hold_char;
01514     int yy_n_chars;
01515     int yyleng_r;
01516     char *yy_c_buf_p;
01517     int yy_init;
01518     int yy_start;
01519     int yy_did_buffer_switch_on_eof;
01520     int yy_start_stack_ptr;
01521     int yy_start_stack_depth;
01522     int *yy_start_stack;
01523     yy_state_type yy_last_accepting_state;
01524     char* yy_last_accepting_cpos;
01525 
01526     int yylineno_r;
01527     int yy_flex_debug_r;
01528 
01529     char *yytext_r;
01530     int yy_more_flag;
01531     int yy_more_len;
01532 
01533     YYSTYPE * yylval_r;
01534 
01535     YYLTYPE * yylloc_r;
01536 
01537     }; /* end struct yyguts_t */
01538 
01539 static int yy_init_globals (yyscan_t yyscanner );
01540 
01541     /* This must go here because YYSTYPE and YYLTYPE are included
01542      * from bison output in section 1.*/
01543     #    define yylval yyg->yylval_r
01544     
01545     #    define yylloc yyg->yylloc_r
01546     
01547 int osrllex_init (yyscan_t* scanner);
01548 
01549 int osrllex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
01550 
01551 /* Accessor methods to globals.
01552    These are made visible to non-reentrant scanners for convenience. */
01553 
01554 int osrllex_destroy (yyscan_t yyscanner );
01555 
01556 int osrlget_debug (yyscan_t yyscanner );
01557 
01558 void osrlset_debug (int debug_flag ,yyscan_t yyscanner );
01559 
01560 YY_EXTRA_TYPE osrlget_extra (yyscan_t yyscanner );
01561 
01562 void osrlset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01563 
01564 FILE *osrlget_in (yyscan_t yyscanner );
01565 
01566 void osrlset_in  (FILE * in_str ,yyscan_t yyscanner );
01567 
01568 FILE *osrlget_out (yyscan_t yyscanner );
01569 
01570 void osrlset_out  (FILE * out_str ,yyscan_t yyscanner );
01571 
01572 int osrlget_leng (yyscan_t yyscanner );
01573 
01574 char *osrlget_text (yyscan_t yyscanner );
01575 
01576 int osrlget_lineno (yyscan_t yyscanner );
01577 
01578 void osrlset_lineno (int line_number ,yyscan_t yyscanner );
01579 
01580 YYSTYPE * osrlget_lval (yyscan_t yyscanner );
01581 
01582 void osrlset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01583 
01584        YYLTYPE *osrlget_lloc (yyscan_t yyscanner );
01585     
01586         void osrlset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01587     
01588 /* Macros after this point can all be overridden by user definitions in
01589  * section 1.
01590  */
01591 
01592 #ifndef YY_SKIP_YYWRAP
01593 #ifdef __cplusplus
01594 extern "C" int osrlwrap (yyscan_t yyscanner );
01595 #else
01596 extern int osrlwrap (yyscan_t yyscanner );
01597 #endif
01598 #endif
01599 
01600     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
01601     
01602 #ifndef yytext_ptr
01603 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01604 #endif
01605 
01606 #ifdef YY_NEED_STRLEN
01607 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01608 #endif
01609 
01610 #ifndef YY_NO_INPUT
01611 
01612 #ifdef __cplusplus
01613 static int yyinput (yyscan_t yyscanner );
01614 #else
01615 static int input (yyscan_t yyscanner );
01616 #endif
01617 
01618 #endif
01619 
01620 /* Amount of stuff to slurp up with each read. */
01621 #ifndef YY_READ_BUF_SIZE
01622 #define YY_READ_BUF_SIZE 8192
01623 #endif
01624 
01625 /* Copy whatever the last rule matched to the standard output. */
01626 #ifndef ECHO
01627 /* This used to be an fputs(), but since the string might contain NUL's,
01628  * we now use fwrite().
01629  */
01630 #define ECHO fwrite( yytext, yyleng, 1, yyout )
01631 #endif
01632 
01633 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01634  * is returned in "result".
01635  */
01636 #ifndef YY_INPUT
01637 #define YY_INPUT(buf,result,max_size) \
01638         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01639                 { \
01640                 int c = '*'; \
01641                 int n; \
01642                 for ( n = 0; n < max_size && \
01643                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01644                         buf[n] = (char) c; \
01645                 if ( c == '\n' ) \
01646                         buf[n++] = (char) c; \
01647                 if ( c == EOF && ferror( yyin ) ) \
01648                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01649                 result = n; \
01650                 } \
01651         else \
01652                 { \
01653                 errno=0; \
01654                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01655                         { \
01656                         if( errno != EINTR) \
01657                                 { \
01658                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01659                                 break; \
01660                                 } \
01661                         errno=0; \
01662                         clearerr(yyin); \
01663                         } \
01664                 }\
01665 \
01666 
01667 #endif
01668 
01669 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01670  * we don't want an extra ';' after the "return" because that will cause
01671  * some compilers to complain about unreachable statements.
01672  */
01673 #ifndef yyterminate
01674 #define yyterminate() return YY_NULL
01675 #endif
01676 
01677 /* Number of entries by which start-condition stack grows. */
01678 #ifndef YY_START_STACK_INCR
01679 #define YY_START_STACK_INCR 25
01680 #endif
01681 
01682 /* Report a fatal error. */
01683 #ifndef YY_FATAL_ERROR
01684 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01685 #endif
01686 
01687 /* end tables serialization structures and prototypes */
01688 
01689 /* Default declaration of generated scanner - a define so the user can
01690  * easily add parameters.
01691  */
01692 #ifndef YY_DECL
01693 #define YY_DECL_IS_OURS 1
01694 
01695 extern int osrllex \
01696                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01697 
01698 #define YY_DECL int osrllex \
01699                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01700 #endif /* !YY_DECL */
01701 
01702 /* Code executed at the beginning of each rule, after yytext and yyleng
01703  * have been set up.
01704  */
01705 #ifndef YY_USER_ACTION
01706 #define YY_USER_ACTION
01707 #endif
01708 
01709 /* Code executed at the end of each rule. */
01710 #ifndef YY_BREAK
01711 #define YY_BREAK break;
01712 #endif
01713 
01714 #define YY_RULE_SETUP \
01715         YY_USER_ACTION
01716 
01719 YY_DECL
01720 {
01721         register yy_state_type yy_current_state;
01722         register char *yy_cp, *yy_bp;
01723         register int yy_act;
01724     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01725 
01726 #line 110 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01727 
01728 
01729 
01730 #line 1731 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
01731 
01732     yylval = yylval_param;
01733 
01734     yylloc = yylloc_param;
01735 
01736         if ( !yyg->yy_init )
01737                 {
01738                 yyg->yy_init = 1;
01739 
01740 #ifdef YY_USER_INIT
01741                 YY_USER_INIT;
01742 #endif
01743 
01744                 if ( ! yyg->yy_start )
01745                         yyg->yy_start = 1;      /* first start state */
01746 
01747                 if ( ! yyin )
01748                         yyin = stdin;
01749 
01750                 if ( ! yyout )
01751                         yyout = stdout;
01752 
01753                 if ( ! YY_CURRENT_BUFFER ) {
01754                         osrlensure_buffer_stack (yyscanner);
01755                         YY_CURRENT_BUFFER_LVALUE =
01756                                 osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01757                 }
01758 
01759                 osrl_load_buffer_state(yyscanner );
01760                 }
01761 
01762         while ( 1 )             /* loops until end-of-file is reached */
01763                 {
01764                 yy_cp = yyg->yy_c_buf_p;
01765 
01766                 /* Support of yytext. */
01767                 *yy_cp = yyg->yy_hold_char;
01768 
01769                 /* yy_bp points to the position in yy_ch_buf of the start of
01770                  * the current run.
01771                  */
01772                 yy_bp = yy_cp;
01773 
01774                 yy_current_state = yyg->yy_start;
01775 yy_match:
01776                 do
01777                         {
01778                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01779                         if ( yy_accept[yy_current_state] )
01780                                 {
01781                                 yyg->yy_last_accepting_state = yy_current_state;
01782                                 yyg->yy_last_accepting_cpos = yy_cp;
01783                                 }
01784                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01785                                 {
01786                                 yy_current_state = (int) yy_def[yy_current_state];
01787                                 if ( yy_current_state >= 984 )
01788                                         yy_c = yy_meta[(unsigned int) yy_c];
01789                                 }
01790                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01791                         ++yy_cp;
01792                         }
01793                 while ( yy_base[yy_current_state] != 2669 );
01794 
01795 yy_find_action:
01796                 yy_act = yy_accept[yy_current_state];
01797                 if ( yy_act == 0 )
01798                         { /* have to back up */
01799                         yy_cp = yyg->yy_last_accepting_cpos;
01800                         yy_current_state = yyg->yy_last_accepting_state;
01801                         yy_act = yy_accept[yy_current_state];
01802                         }
01803 
01804                 YY_DO_BEFORE_ACTION;
01805 
01806                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01807                         {
01808                         int yyl;
01809                         for ( yyl = 0; yyl < yyleng; ++yyl )
01810                                 if ( yytext[yyl] == '\n' )
01811                                            
01812     do{ yylineno++;
01813         yycolumn=0;
01814     }while(0)
01815 ;
01816                         }
01817 
01818 do_action:      /* This label is used only to access EOF actions. */
01819 
01820                 switch ( yy_act )
01821         { /* beginning of action switch */
01822                         case 0: /* must back up */
01823                         /* undo the effects of YY_DO_BEFORE_ACTION */
01824                         *yy_cp = yyg->yy_hold_char;
01825                         yy_cp = yyg->yy_last_accepting_cpos;
01826                         yy_current_state = yyg->yy_last_accepting_state;
01827                         goto yy_find_action;
01828 
01829 case 1:
01830 /* rule 1 can match eol */
01831 YY_RULE_SETUP
01832 #line 113 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01833 
01834         YY_BREAK
01835 /* General patterns matched in more than one element */
01836 case 2:
01837 YY_RULE_SETUP
01838 #line 117 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01839 {YY_PRINT;  yylval->sval = yytext; return(QUOTE);}
01840         YY_BREAK
01841 case 3:
01842 YY_RULE_SETUP
01843 #line 118 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01844 {YY_PRINT;  yylval->sval = yytext; return(TWOQUOTES);}
01845         YY_BREAK
01846 case 4:
01847 /* rule 4 can match eol */
01848 YY_RULE_SETUP
01849 #line 119 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01850 {YY_PRINT;     return(GREATERTHAN);}
01851         YY_BREAK
01852 case 5:
01853 /* rule 5 can match eol */
01854 YY_RULE_SETUP
01855 #line 120 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01856 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
01857         YY_BREAK
01858 case 6:
01859 /* rule 6 can match eol */
01860 YY_RULE_SETUP
01861 #line 122 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01862 {YY_PRINT; 
01863 char *yytextEnd;
01864 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
01865         if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
01866                 std::ostringstream outStr;
01867                 outStr << "encountered a spurious character in the lexer" << endl;
01868                 outStr << "The first character is: ";
01869                 outStr <<  yytext;
01870                 outStr << endl;
01871                 outStr << "See line number: " << yylineno << endl;  
01872                 throw ErrorClass( outStr.str());
01873         }
01874 return(DOUBLE);}
01875         YY_BREAK
01876 case 7:
01877 /* rule 7 can match eol */
01878 YY_RULE_SETUP
01879 #line 136 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01880 {YY_PRINT;  return(ENDOFELEMENT);}
01881         YY_BREAK
01882 case 8:
01883 /* rule 8 can match eol */
01884 YY_RULE_SETUP
01885 #line 138 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01886 {YY_PRINT; return(NUMBEROFTIMESATT);}
01887         YY_BREAK
01888 case 9:
01889 /* rule 9 can match eol */
01890 YY_RULE_SETUP
01891 #line 139 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01892 {YY_PRINT; return(NUMBEROFSOLUTIONSATT);}
01893         YY_BREAK
01894 case 10:
01895 /* rule 10 can match eol */
01896 YY_RULE_SETUP
01897 #line 140 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01898 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
01899         YY_BREAK
01900 case 11:
01901 /* rule 11 can match eol */
01902 YY_RULE_SETUP
01903 #line 141 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01904 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
01905         YY_BREAK
01906 case 12:
01907 /* rule 12 can match eol */
01908 YY_RULE_SETUP
01909 #line 142 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01910 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
01911         YY_BREAK
01912 case 13:
01913 /* rule 13 can match eol */
01914 YY_RULE_SETUP
01915 #line 143 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01916 {YY_PRINT; return(NUMBEROFOTHERVARIABLERESULTSATT);}
01917         YY_BREAK
01918 case 14:
01919 /* rule 14 can match eol */
01920 YY_RULE_SETUP
01921 #line 144 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01922 {YY_PRINT; return(NUMBEROFOTHEROBJECTIVERESULTSATT);}
01923         YY_BREAK
01924 case 15:
01925 /* rule 15 can match eol */
01926 YY_RULE_SETUP
01927 #line 145 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01928 {YY_PRINT; return(NUMBEROFOTHERCONSTRAINTRESULTSATT);}
01929         YY_BREAK
01930 case 16:
01931 /* rule 16 can match eol */
01932 YY_RULE_SETUP
01933 #line 146 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01934 {YY_PRINT; return(NUMBEROFVARATT);}
01935         YY_BREAK
01936 case 17:
01937 /* rule 17 can match eol */
01938 YY_RULE_SETUP
01939 #line 147 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01940 {YY_PRINT; return(NUMBEROFOBJATT);}
01941         YY_BREAK
01942 case 18:
01943 /* rule 18 can match eol */
01944 YY_RULE_SETUP
01945 #line 148 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01946 {YY_PRINT; return(NUMBEROFCONATT);}
01947         YY_BREAK
01948 case 19:
01949 /* rule 19 can match eol */
01950 YY_RULE_SETUP
01951 #line 149 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01952 {YY_PRINT; return(IDXATT);}
01953         YY_BREAK
01954 case 20:
01955 /* rule 20 can match eol */
01956 YY_RULE_SETUP
01957 #line 150 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01958 {YY_PRINT;  return(TARGETOBJECTIVEIDXATT);}
01959         YY_BREAK
01960 case 21:
01961 /* rule 21 can match eol */
01962 YY_RULE_SETUP
01963 #line 152 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01964 {YY_PRINT; return(EMPTYNAMEATT);}
01965         YY_BREAK
01966 case 22:
01967 /* rule 22 can match eol */
01968 YY_RULE_SETUP
01969 #line 153 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01970 {YY_PRINT; return(EMPTYNAMEATT);}
01971         YY_BREAK
01972 case 23:
01973 /* rule 23 can match eol */
01974 YY_RULE_SETUP
01975 #line 154 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01976 {YY_PRINT; BEGIN doublequoteattributetext; return(NAMEATT);}
01977         YY_BREAK
01978 case 24:
01979 /* rule 24 can match eol */
01980 YY_RULE_SETUP
01981 #line 155 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01982 {YY_PRINT; BEGIN singlequoteattributetext; return(NAMEATT);}
01983         YY_BREAK
01984 case 25:
01985 /* rule 25 can match eol */
01986 YY_RULE_SETUP
01987 #line 156 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01988 {YY_PRINT; return(EMPTYTYPEATT);}
01989         YY_BREAK
01990 case 26:
01991 /* rule 26 can match eol */
01992 YY_RULE_SETUP
01993 #line 157 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
01994 {YY_PRINT; return(EMPTYTYPEATT);}
01995         YY_BREAK
01996 case 27:
01997 /* rule 27 can match eol */
01998 YY_RULE_SETUP
01999 #line 158 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02000 {YY_PRINT; BEGIN doublequoteattributetext; return(TYPEATT);}
02001         YY_BREAK
02002 case 28:
02003 /* rule 28 can match eol */
02004 YY_RULE_SETUP
02005 #line 159 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02006 {YY_PRINT; BEGIN singlequoteattributetext; return(TYPEATT);}
02007         YY_BREAK
02008 case 29:
02009 /* rule 29 can match eol */
02010 YY_RULE_SETUP
02011 #line 160 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02012 {YY_PRINT; return(EMPTYCATEGORYATT);}
02013         YY_BREAK
02014 case 30:
02015 /* rule 30 can match eol */
02016 YY_RULE_SETUP
02017 #line 161 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02018 {YY_PRINT; return(EMPTYCATEGORYATT);}
02019         YY_BREAK
02020 case 31:
02021 /* rule 31 can match eol */
02022 YY_RULE_SETUP
02023 #line 162 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02024 {YY_PRINT; BEGIN doublequoteattributetext; return(CATEGORYATT);}
02025         YY_BREAK
02026 case 32:
02027 /* rule 32 can match eol */
02028 YY_RULE_SETUP
02029 #line 163 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02030 {YY_PRINT; BEGIN singlequoteattributetext; return(CATEGORYATT);}
02031         YY_BREAK
02032 case 33:
02033 /* rule 33 can match eol */
02034 YY_RULE_SETUP
02035 #line 164 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02036 {YY_PRINT; return(EMPTYUNITATT);}
02037         YY_BREAK
02038 case 34:
02039 /* rule 34 can match eol */
02040 YY_RULE_SETUP
02041 #line 165 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02042 {YY_PRINT; return(EMPTYUNITATT);}
02043         YY_BREAK
02044 case 35:
02045 /* rule 35 can match eol */
02046 YY_RULE_SETUP
02047 #line 166 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02048 {YY_PRINT; BEGIN doublequoteattributetext; return(UNITATT);}
02049         YY_BREAK
02050 case 36:
02051 /* rule 36 can match eol */
02052 YY_RULE_SETUP
02053 #line 167 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02054 {YY_PRINT; BEGIN singlequoteattributetext; return(UNITATT);}
02055         YY_BREAK
02056 case 37:
02057 /* rule 37 can match eol */
02058 YY_RULE_SETUP
02059 #line 168 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02060 {YY_PRINT; return(EMPTYVALUEATT);}
02061         YY_BREAK
02062 case 38:
02063 /* rule 38 can match eol */
02064 YY_RULE_SETUP
02065 #line 169 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02066 {YY_PRINT; return(EMPTYVALUEATT);}
02067         YY_BREAK
02068 case 39:
02069 /* rule 39 can match eol */
02070 YY_RULE_SETUP
02071 #line 170 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02072 {YY_PRINT; BEGIN doublequoteattributetext; return(VALUEATT);}
02073         YY_BREAK
02074 case 40:
02075 /* rule 40 can match eol */
02076 YY_RULE_SETUP
02077 #line 171 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02078 {YY_PRINT; BEGIN singlequoteattributetext; return(VALUEATT);}
02079         YY_BREAK
02080 case 41:
02081 /* rule 41 can match eol */
02082 YY_RULE_SETUP
02083 #line 172 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02084 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
02085         YY_BREAK
02086 case 42:
02087 /* rule 42 can match eol */
02088 YY_RULE_SETUP
02089 #line 173 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02090 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
02091         YY_BREAK
02092 case 43:
02093 /* rule 43 can match eol */
02094 YY_RULE_SETUP
02095 #line 174 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02096 {YY_PRINT; BEGIN doublequoteattributetext; return(DESCRIPTIONATT);}
02097         YY_BREAK
02098 case 44:
02099 /* rule 44 can match eol */
02100 YY_RULE_SETUP
02101 #line 175 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02102 {YY_PRINT; BEGIN singlequoteattributetext; return(DESCRIPTIONATT);}
02103         YY_BREAK
02104 case 45:
02105 /* rule 45 can match eol */
02106 YY_RULE_SETUP
02107 #line 178 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02108 {return(OSRLSTARTEMPTY);}
02109         YY_BREAK
02110 case 46:
02111 /* rule 46 can match eol */
02112 YY_RULE_SETUP
02113 #line 179 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02114 {YY_PRINT; BEGIN osrlattributetext;  return(OSRLSTART);}
02115         YY_BREAK
02116 case 47:
02117 /* rule 47 can match eol */
02118 YY_RULE_SETUP
02119 #line 180 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02120 {YY_PRINT; return(OSRLEND);}
02121         YY_BREAK
02122 case 48:
02123 /* rule 48 can match eol */
02124 YY_RULE_SETUP
02125 #line 181 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02126 {YY_PRINT; return(GENERALSTART);}
02127         YY_BREAK
02128 case 49:
02129 /* rule 49 can match eol */
02130 YY_RULE_SETUP
02131 #line 182 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02132 {YY_PRINT; return(GENERALEND);}
02133         YY_BREAK
02134 case 50:
02135 /* rule 50 can match eol */
02136 YY_RULE_SETUP
02137 #line 183 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02138 {YY_PRINT; return(SYSTEMSTART);}
02139         YY_BREAK
02140 case 51:
02141 /* rule 51 can match eol */
02142 YY_RULE_SETUP
02143 #line 184 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02144 {YY_PRINT; return(SYSTEMEND);}
02145         YY_BREAK
02146 case 52:
02147 /* rule 52 can match eol */
02148 YY_RULE_SETUP
02149 #line 185 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02150 {YY_PRINT; return(SERVICESTART);}
02151         YY_BREAK
02152 case 53:
02153 /* rule 53 can match eol */
02154 YY_RULE_SETUP
02155 #line 186 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02156 {YY_PRINT; return(SERVICEEND);}
02157         YY_BREAK
02158 case 54:
02159 /* rule 54 can match eol */
02160 YY_RULE_SETUP
02161 #line 187 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02162 {YY_PRINT; return(JOBSTART);}
02163         YY_BREAK
02164 case 55:
02165 /* rule 55 can match eol */
02166 YY_RULE_SETUP
02167 #line 188 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02168 {YY_PRINT;  return(JOBEND);}
02169         YY_BREAK
02170 case 56:
02171 /* rule 56 can match eol */
02172 YY_RULE_SETUP
02173 #line 190 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02174 {YY_PRINT;  return(SERVICEURISTART);}
02175         YY_BREAK
02176 case 57:
02177 /* rule 57 can match eol */
02178 YY_RULE_SETUP
02179 #line 191 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02180 {YY_PRINT; unput('<'); return(SERVICEURISTART);}
02181         YY_BREAK
02182 case 58:
02183 /* rule 58 can match eol */
02184 YY_RULE_SETUP
02185 #line 192 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02186 {YY_PRINT;  return(SERVICEURIEND);}
02187         YY_BREAK
02188 case 59:
02189 /* rule 59 can match eol */
02190 YY_RULE_SETUP
02191 #line 193 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02192 {YY_PRINT;  return(SERVICENAMESTART);}
02193         YY_BREAK
02194 case 60:
02195 /* rule 60 can match eol */
02196 YY_RULE_SETUP
02197 #line 194 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02198 {YY_PRINT; unput('<'); return(SERVICENAMESTART);}
02199         YY_BREAK
02200 case 61:
02201 /* rule 61 can match eol */
02202 YY_RULE_SETUP
02203 #line 195 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02204 {YY_PRINT;  return(SERVICENAMEEND);}
02205         YY_BREAK
02206 case 62:
02207 /* rule 62 can match eol */
02208 YY_RULE_SETUP
02209 #line 196 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02210 {YY_PRINT;  return(INSTANCENAMESTART);}
02211         YY_BREAK
02212 case 63:
02213 /* rule 63 can match eol */
02214 YY_RULE_SETUP
02215 #line 197 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02216 {YY_PRINT; unput('<'); return(INSTANCENAMESTART);}
02217         YY_BREAK
02218 case 64:
02219 /* rule 64 can match eol */
02220 YY_RULE_SETUP
02221 #line 198 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02222 {YY_PRINT;  return(INSTANCENAMEEND);}
02223         YY_BREAK
02224 case 65:
02225 /* rule 65 can match eol */
02226 YY_RULE_SETUP
02227 #line 199 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02228 {YY_PRINT;  return(JOBIDSTART);}
02229         YY_BREAK
02230 case 66:
02231 /* rule 66 can match eol */
02232 YY_RULE_SETUP
02233 #line 200 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02234 {YY_PRINT; unput('<'); return(JOBIDSTART);}
02235         YY_BREAK
02236 case 67:
02237 /* rule 67 can match eol */
02238 YY_RULE_SETUP
02239 #line 201 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02240 {YY_PRINT;  return(JOBIDEND);}
02241         YY_BREAK
02242 case 68:
02243 /* rule 68 can match eol */
02244 YY_RULE_SETUP
02245 #line 203 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02246 {YY_PRINT; return(TIMINGINFORMATIONSTART);}
02247         YY_BREAK
02248 case 69:
02249 /* rule 69 can match eol */
02250 YY_RULE_SETUP
02251 #line 204 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02252 {YY_PRINT;  return(TIMINGINFORMATIONEND);}
02253         YY_BREAK
02254 case 70:
02255 /* rule 70 can match eol */
02256 YY_RULE_SETUP
02257 #line 206 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02258 {YY_PRINT;  return(TIMESTART);}
02259         YY_BREAK
02260 case 71:
02261 /* rule 71 can match eol */
02262 YY_RULE_SETUP
02263 #line 207 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02264 {YY_PRINT;  return(TIMEEND);}
02265         YY_BREAK
02266 case 72:
02267 /* rule 72 can match eol */
02268 YY_RULE_SETUP
02269 #line 209 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02270 {YY_PRINT;  return(MESSAGESTART);}
02271         YY_BREAK
02272 case 73:
02273 /* rule 73 can match eol */
02274 YY_RULE_SETUP
02275 #line 210 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02276 {YY_PRINT; unput('<'); return(MESSAGESTART);}
02277         YY_BREAK
02278 case 74:
02279 /* rule 74 can match eol */
02280 YY_RULE_SETUP
02281 #line 211 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02282 {YY_PRINT;  return(MESSAGEEND);}
02283         YY_BREAK
02284 case 75:
02285 /* rule 75 can match eol */
02286 YY_RULE_SETUP
02287 #line 213 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02288 {YY_PRINT; return(GENERALSTATUSSTART);}
02289         YY_BREAK
02290 case 76:
02291 /* rule 76 can match eol */
02292 YY_RULE_SETUP
02293 #line 214 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02294 {YY_PRINT; return(GENERALSTATUSEND);}
02295         YY_BREAK
02296 case 77:
02297 /* rule 77 can match eol */
02298 YY_RULE_SETUP
02299 #line 216 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02300 {YY_PRINT; return(OPTIMIZATIONSTART);}
02301         YY_BREAK
02302 case 78:
02303 /* rule 78 can match eol */
02304 YY_RULE_SETUP
02305 #line 217 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02306 {YY_PRINT; return(OPTIMIZATIONEND);}
02307         YY_BREAK
02308 case 79:
02309 /* rule 79 can match eol */
02310 YY_RULE_SETUP
02311 #line 219 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02312 {YY_PRINT; return(SOLUTIONSTART);}
02313         YY_BREAK
02314 case 80:
02315 /* rule 80 can match eol */
02316 YY_RULE_SETUP
02317 #line 220 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02318 {YY_PRINT; return(SOLUTIONEND);}
02319         YY_BREAK
02320 case 81:
02321 /* rule 81 can match eol */
02322 YY_RULE_SETUP
02323 #line 222 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02324 {YY_PRINT; return(STATUSSTART);}
02325         YY_BREAK
02326 case 82:
02327 /* rule 82 can match eol */
02328 YY_RULE_SETUP
02329 #line 223 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02330 {YY_PRINT; return(STATUSEND);}
02331         YY_BREAK
02332 case 83:
02333 /* rule 83 can match eol */
02334 YY_RULE_SETUP
02335 #line 225 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02336 {YY_PRINT; return(VALUESSTART);}
02337         YY_BREAK
02338 case 84:
02339 /* rule 84 can match eol */
02340 YY_RULE_SETUP
02341 #line 226 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02342 {YY_PRINT; return(VALUESEND);}
02343         YY_BREAK
02344 case 85:
02345 /* rule 85 can match eol */
02346 YY_RULE_SETUP
02347 #line 228 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02348 {YY_PRINT; return(DUALVALUESSTART);}
02349         YY_BREAK
02350 case 86:
02351 /* rule 86 can match eol */
02352 YY_RULE_SETUP
02353 #line 229 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02354 {YY_PRINT; return(DUALVALUESEND);}
02355         YY_BREAK
02356 case 87:
02357 /* rule 87 can match eol */
02358 YY_RULE_SETUP
02359 #line 231 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02360 {YY_PRINT; return(VARSTART);}
02361         YY_BREAK
02362 case 88:
02363 /* rule 88 can match eol */
02364 YY_RULE_SETUP
02365 #line 232 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02366 {YY_PRINT; return(VAREND);}
02367         YY_BREAK
02368 case 89:
02369 /* rule 89 can match eol */
02370 YY_RULE_SETUP
02371 #line 233 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02372 {YY_PRINT; return(VARIABLESSTART);}
02373         YY_BREAK
02374 case 90:
02375 /* rule 90 can match eol */
02376 YY_RULE_SETUP
02377 #line 234 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02378 {YY_PRINT; return(VARIABLESEND);}
02379         YY_BREAK
02380 case 91:
02381 /* rule 91 can match eol */
02382 YY_RULE_SETUP
02383 #line 236 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02384 {YY_PRINT; return(OBJSTART);}
02385         YY_BREAK
02386 case 92:
02387 /* rule 92 can match eol */
02388 YY_RULE_SETUP
02389 #line 237 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02390 {YY_PRINT; return(OBJEND);}
02391         YY_BREAK
02392 case 93:
02393 /* rule 93 can match eol */
02394 YY_RULE_SETUP
02395 #line 238 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02396 {YY_PRINT; return(OBJECTIVESSTART);}
02397         YY_BREAK
02398 case 94:
02399 /* rule 94 can match eol */
02400 YY_RULE_SETUP
02401 #line 239 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02402 {YY_PRINT; return(OBJECTIVESEND);}
02403         YY_BREAK
02404 case 95:
02405 /* rule 95 can match eol */
02406 YY_RULE_SETUP
02407 #line 241 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02408 {YY_PRINT; return(CONSTART);}
02409         YY_BREAK
02410 case 96:
02411 /* rule 96 can match eol */
02412 YY_RULE_SETUP
02413 #line 242 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02414 {YY_PRINT; return(CONEND);}
02415         YY_BREAK
02416 case 97:
02417 /* rule 97 can match eol */
02418 YY_RULE_SETUP
02419 #line 243 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02420 {YY_PRINT; return(CONSTRAINTSSTART);}
02421         YY_BREAK
02422 case 98:
02423 /* rule 98 can match eol */
02424 YY_RULE_SETUP
02425 #line 244 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02426 {YY_PRINT; return(CONSTRAINTSEND);}
02427         YY_BREAK
02428 case 99:
02429 /* rule 99 can match eol */
02430 YY_RULE_SETUP
02431 #line 247 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02432 {YY_PRINT; return(OTHERSTART);}
02433         YY_BREAK
02434 case 100:
02435 /* rule 100 can match eol */
02436 YY_RULE_SETUP
02437 #line 248 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02438 {YY_PRINT; return(OTHEREND);}
02439         YY_BREAK
02440 case 101:
02441 /* rule 101 can match eol */
02442 YY_RULE_SETUP
02443 #line 250 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02444 {YY_PRINT;  return(SERVICEURISTARTANDEND);}
02445         YY_BREAK
02446 case 102:
02447 /* rule 102 can match eol */
02448 YY_RULE_SETUP
02449 #line 251 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02450 {YY_PRINT;  return(SERVICENAMESTARTANDEND);}
02451         YY_BREAK
02452 case 103:
02453 /* rule 103 can match eol */
02454 YY_RULE_SETUP
02455 #line 252 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02456 {YY_PRINT;  return(INSTANCENAMESTARTANDEND);}
02457         YY_BREAK
02458 case 104:
02459 /* rule 104 can match eol */
02460 YY_RULE_SETUP
02461 #line 253 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02462 {YY_PRINT;  return(JOBIDSTARTANDEND);}
02463         YY_BREAK
02464 case 105:
02465 /* rule 105 can match eol */
02466 YY_RULE_SETUP
02467 #line 254 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02468 {YY_PRINT;  return(TIMESTARTANDEND);}
02469         YY_BREAK
02470 case 106:
02471 /* rule 106 can match eol */
02472 YY_RULE_SETUP
02473 #line 255 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02474 {YY_PRINT;  return(MESSAGESTARTANDEND);}
02475         YY_BREAK
02476 case 107:
02477 /* rule 107 can match eol */
02478 YY_RULE_SETUP
02479 #line 260 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02480 { YY_PRINT;  yylval->sval = strdup( yytext);   yyextra->errorText = yylval->sval;    /*yylval->sval = yytext;*/  return (ELEMENTTEXT); }
02481         YY_BREAK
02482 case 108:
02483 YY_RULE_SETUP
02484 #line 262 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02485 BEGIN comment;
02486         YY_BREAK
02487 case 109:
02488 #line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02489 case 110:
02490 /* rule 110 can match eol */
02491 YY_RULE_SETUP
02492 #line 264 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02493 ;
02494         YY_BREAK
02495 case 111:
02496 YY_RULE_SETUP
02497 #line 265 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02498 BEGIN 0;
02499         YY_BREAK
02500 case 112:
02501 YY_RULE_SETUP
02502 #line 267 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02503 BEGIN xmldeclaration;
02504         YY_BREAK
02505 case 113:
02506 #line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02507 case 114:
02508 /* rule 114 can match eol */
02509 YY_RULE_SETUP
02510 #line 269 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02511 ;
02512         YY_BREAK
02513 case 115:
02514 YY_RULE_SETUP
02515 #line 270 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02516 BEGIN 0;
02517         YY_BREAK
02518 case 116:
02519 /* rule 116 can match eol */
02520 YY_RULE_SETUP
02521 #line 273 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02522 {YY_PRINT;  BEGIN 0; yylval->sval = strdup(yytext);  /* yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
02523         YY_BREAK
02524 case 117:
02525 /* rule 117 can match eol */
02526 YY_RULE_SETUP
02527 #line 274 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02528 {YY_PRINT;  BEGIN 0; yylval->sval = strdup(yytext);   /*yylval->sval = yytext;*/ return(ATTRIBUTETEXT);}
02529         YY_BREAK
02530 case 118:
02531 /* rule 118 can match eol */
02532 YY_RULE_SETUP
02533 #line 275 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02534 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/  yylval->sval = yytext; return(OSRLATTRIBUTETEXT);}
02535         YY_BREAK
02536 case 119:
02537 /* rule 119 can match eol */
02538 YY_RULE_SETUP
02539 #line 278 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02540 { 
02541         std::string error;
02542         std::ostringstream outStr;
02543         outStr << "encountered a spurious character in the lexer" << std::endl;
02544         outStr << "The first character is: ";
02545         outStr <<  yytext;
02546         outStr << std::endl;
02547         outStr << "See line number: " << yylineno << std::endl;  
02548         error = outStr.str();
02549         throw ErrorClass( error);
02550 }
02551         YY_BREAK
02552 case 120:
02553 YY_RULE_SETUP
02554 #line 290 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
02555 ECHO;
02556         YY_BREAK
02557 #line 2558 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.cpp"
02558 case YY_STATE_EOF(INITIAL):
02559 case YY_STATE_EOF(osrlattributetext):
02560 case YY_STATE_EOF(doublequoteattributetext):
02561 case YY_STATE_EOF(singlequoteattributetext):
02562 case YY_STATE_EOF(startelement):
02563 case YY_STATE_EOF(elementtext):
02564 case YY_STATE_EOF(comment):
02565 case YY_STATE_EOF(xmldeclaration):
02566         yyterminate();
02567 
02568         case YY_END_OF_BUFFER:
02569                 {
02570                 /* Amount of text matched not including the EOB char. */
02571                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
02572 
02573                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02574                 *yy_cp = yyg->yy_hold_char;
02575                 YY_RESTORE_YY_MORE_OFFSET
02576 
02577                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02578                         {
02579                         /* We're scanning a new file or input source.  It's
02580                          * possible that this happened because the user
02581                          * just pointed yyin at a new source and called
02582                          * osrllex().  If so, then we have to assure
02583                          * consistency between YY_CURRENT_BUFFER and our
02584                          * globals.  Here is the right place to do so, because
02585                          * this is the first action (other than possibly a
02586                          * back-up) that will match for the new input source.
02587                          */
02588                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02589                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
02590                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02591                         }
02592 
02593                 /* Note that here we test for yy_c_buf_p "<=" to the position
02594                  * of the first EOB in the buffer, since yy_c_buf_p will
02595                  * already have been incremented past the NUL character
02596                  * (since all states make transitions on EOB to the
02597                  * end-of-buffer state).  Contrast this with the test
02598                  * in input().
02599                  */
02600                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02601                         { /* This was really a NUL. */
02602                         yy_state_type yy_next_state;
02603 
02604                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02605 
02606                         yy_current_state = yy_get_previous_state( yyscanner );
02607 
02608                         /* Okay, we're now positioned to make the NUL
02609                          * transition.  We couldn't have
02610                          * yy_get_previous_state() go ahead and do it
02611                          * for us because it doesn't know how to deal
02612                          * with the possibility of jamming (and we don't
02613                          * want to build jamming into it because then it
02614                          * will run more slowly).
02615                          */
02616 
02617                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02618 
02619                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02620 
02621                         if ( yy_next_state )
02622                                 {
02623                                 /* Consume the NUL. */
02624                                 yy_cp = ++yyg->yy_c_buf_p;
02625                                 yy_current_state = yy_next_state;
02626                                 goto yy_match;
02627                                 }
02628 
02629                         else
02630                                 {
02631                                 yy_cp = yyg->yy_c_buf_p;
02632                                 goto yy_find_action;
02633                                 }
02634                         }
02635 
02636                 else switch ( yy_get_next_buffer( yyscanner ) )
02637                         {
02638                         case EOB_ACT_END_OF_FILE:
02639                                 {
02640                                 yyg->yy_did_buffer_switch_on_eof = 0;
02641 
02642                                 if ( osrlwrap(yyscanner ) )
02643                                         {
02644                                         /* Note: because we've taken care in
02645                                          * yy_get_next_buffer() to have set up
02646                                          * yytext, we can now set up
02647                                          * yy_c_buf_p so that if some total
02648                                          * hoser (like flex itself) wants to
02649                                          * call the scanner after we return the
02650                                          * YY_NULL, it'll still work - another
02651                                          * YY_NULL will get returned.
02652                                          */
02653                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02654 
02655                                         yy_act = YY_STATE_EOF(YY_START);
02656                                         goto do_action;
02657                                         }
02658 
02659                                 else
02660                                         {
02661                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02662                                                 YY_NEW_FILE;
02663                                         }
02664                                 break;
02665                                 }
02666 
02667                         case EOB_ACT_CONTINUE_SCAN:
02668                                 yyg->yy_c_buf_p =
02669                                         yyg->yytext_ptr + yy_amount_of_matched_text;
02670 
02671                                 yy_current_state = yy_get_previous_state( yyscanner );
02672 
02673                                 yy_cp = yyg->yy_c_buf_p;
02674                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02675                                 goto yy_match;
02676 
02677                         case EOB_ACT_LAST_MATCH:
02678                                 yyg->yy_c_buf_p =
02679                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02680 
02681                                 yy_current_state = yy_get_previous_state( yyscanner );
02682 
02683                                 yy_cp = yyg->yy_c_buf_p;
02684                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02685                                 goto yy_find_action;
02686                         }
02687                 break;
02688                 }
02689 
02690         default:
02691                 YY_FATAL_ERROR(
02692                         "fatal flex scanner internal error--no action found" );
02693         } /* end of action switch */
02694                 } /* end of scanning one token */
02695 } /* end of osrllex */
02696 
02697 /* yy_get_next_buffer - try to read in a new buffer
02698  *
02699  * Returns a code representing an action:
02700  *      EOB_ACT_LAST_MATCH -
02701  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02702  *      EOB_ACT_END_OF_FILE - end of file
02703  */
02704 static int yy_get_next_buffer (yyscan_t yyscanner)
02705 {
02706     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02707         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02708         register char *source = yyg->yytext_ptr;
02709         register int number_to_move, i;
02710         int ret_val;
02711 
02712         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02713                 YY_FATAL_ERROR(
02714                 "fatal flex scanner internal error--end of buffer missed" );
02715 
02716         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02717                 { /* Don't try to fill the buffer, so this is an EOF. */
02718                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02719                         {
02720                         /* We matched a single character, the EOB, so
02721                          * treat this as a final EOF.
02722                          */
02723                         return EOB_ACT_END_OF_FILE;
02724                         }
02725 
02726                 else
02727                         {
02728                         /* We matched some text prior to the EOB, first
02729                          * process it.
02730                          */
02731                         return EOB_ACT_LAST_MATCH;
02732                         }
02733                 }
02734 
02735         /* Try to read more data. */
02736 
02737         /* First move last chars to start of buffer. */
02738         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02739 
02740         for ( i = 0; i < number_to_move; ++i )
02741                 *(dest++) = *(source++);
02742 
02743         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02744                 /* don't do the read, it's not guaranteed to return an EOF,
02745                  * just force an EOF
02746                  */
02747                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02748 
02749         else
02750                 {
02751                         int num_to_read =
02752                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02753 
02754                 while ( num_to_read <= 0 )
02755                         { /* Not enough room in the buffer - grow it. */
02756 
02757                         /* just a shorter name for the current buffer */
02758                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02759 
02760                         int yy_c_buf_p_offset =
02761                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02762 
02763                         if ( b->yy_is_our_buffer )
02764                                 {
02765                                 int new_size = b->yy_buf_size * 2;
02766 
02767                                 if ( new_size <= 0 )
02768                                         b->yy_buf_size += b->yy_buf_size / 8;
02769                                 else
02770                                         b->yy_buf_size *= 2;
02771 
02772                                 b->yy_ch_buf = (char *)
02773                                         /* Include room in for 2 EOB chars. */
02774                                         osrlrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02775                                 }
02776                         else
02777                                 /* Can't grow it, we don't own it. */
02778                                 b->yy_ch_buf = 0;
02779 
02780                         if ( ! b->yy_ch_buf )
02781                                 YY_FATAL_ERROR(
02782                                 "fatal error - scanner input buffer overflow" );
02783 
02784                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02785 
02786                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02787                                                 number_to_move - 1;
02788 
02789                         }
02790 
02791                 if ( num_to_read > YY_READ_BUF_SIZE )
02792                         num_to_read = YY_READ_BUF_SIZE;
02793 
02794                 /* Read in more data. */
02795                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02796                         yyg->yy_n_chars, (size_t) num_to_read );
02797 
02798                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02799                 }
02800 
02801         if ( yyg->yy_n_chars == 0 )
02802                 {
02803                 if ( number_to_move == YY_MORE_ADJ )
02804                         {
02805                         ret_val = EOB_ACT_END_OF_FILE;
02806                         osrlrestart(yyin  ,yyscanner);
02807                         }
02808 
02809                 else
02810                         {
02811                         ret_val = EOB_ACT_LAST_MATCH;
02812                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02813                                 YY_BUFFER_EOF_PENDING;
02814                         }
02815                 }
02816 
02817         else
02818                 ret_val = EOB_ACT_CONTINUE_SCAN;
02819 
02820         if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02821                 /* Extend the array by 50%, plus the number we really need. */
02822                 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
02823                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osrlrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
02824                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02825                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02826         }
02827 
02828         yyg->yy_n_chars += number_to_move;
02829         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02830         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02831 
02832         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02833 
02834         return ret_val;
02835 }
02836 
02837 /* yy_get_previous_state - get the state just before the EOB char was reached */
02838 
02839     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02840 {
02841         register yy_state_type yy_current_state;
02842         register char *yy_cp;
02843     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02844 
02845         yy_current_state = yyg->yy_start;
02846 
02847         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02848                 {
02849                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02850                 if ( yy_accept[yy_current_state] )
02851                         {
02852                         yyg->yy_last_accepting_state = yy_current_state;
02853                         yyg->yy_last_accepting_cpos = yy_cp;
02854                         }
02855                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02856                         {
02857                         yy_current_state = (int) yy_def[yy_current_state];
02858                         if ( yy_current_state >= 984 )
02859                                 yy_c = yy_meta[(unsigned int) yy_c];
02860                         }
02861                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02862                 }
02863 
02864         return yy_current_state;
02865 }
02866 
02867 /* yy_try_NUL_trans - try to make a transition on the NUL character
02868  *
02869  * synopsis
02870  *      next_state = yy_try_NUL_trans( current_state );
02871  */
02872     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
02873 {
02874         register int yy_is_jam;
02875     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
02876         register char *yy_cp = yyg->yy_c_buf_p;
02877 
02878         register YY_CHAR yy_c = 1;
02879         if ( yy_accept[yy_current_state] )
02880                 {
02881                 yyg->yy_last_accepting_state = yy_current_state;
02882                 yyg->yy_last_accepting_cpos = yy_cp;
02883                 }
02884         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02885                 {
02886                 yy_current_state = (int) yy_def[yy_current_state];
02887                 if ( yy_current_state >= 984 )
02888                         yy_c = yy_meta[(unsigned int) yy_c];
02889                 }
02890         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02891         yy_is_jam = (yy_current_state == 983);
02892 
02893         return yy_is_jam ? 0 : yy_current_state;
02894 }
02895 
02896     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
02897 {
02898         register char *yy_cp;
02899     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02900 
02901     yy_cp = yyg->yy_c_buf_p;
02902 
02903         /* undo effects of setting up yytext */
02904         *yy_cp = yyg->yy_hold_char;
02905 
02906         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02907                 { /* need to shift things up to make room */
02908                 /* +2 for EOB chars. */
02909                 register int number_to_move = yyg->yy_n_chars + 2;
02910                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02911                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02912                 register char *source =
02913                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02914 
02915                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02916                         *--dest = *--source;
02917 
02918                 yy_cp += (int) (dest - source);
02919                 yy_bp += (int) (dest - source);
02920                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02921                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02922 
02923                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02924                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
02925                 }
02926 
02927         *--yy_cp = (char) c;
02928 
02929     if ( c == '\n' ){
02930         --yylineno;
02931     }
02932 
02933         yyg->yytext_ptr = yy_bp;
02934         yyg->yy_hold_char = *yy_cp;
02935         yyg->yy_c_buf_p = yy_cp;
02936 }
02937 
02938 #ifndef YY_NO_INPUT
02939 #ifdef __cplusplus
02940     static int yyinput (yyscan_t yyscanner)
02941 #else
02942     static int input  (yyscan_t yyscanner)
02943 #endif
02944 
02945 {
02946         int c;
02947     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02948 
02949         *yyg->yy_c_buf_p = yyg->yy_hold_char;
02950 
02951         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02952                 {
02953                 /* yy_c_buf_p now points to the character we want to return.
02954                  * If this occurs *before* the EOB characters, then it's a
02955                  * valid NUL; if not, then we've hit the end of the buffer.
02956                  */
02957                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02958                         /* This was really a NUL. */
02959                         *yyg->yy_c_buf_p = '\0';
02960 
02961                 else
02962                         { /* need more input */
02963                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02964                         ++yyg->yy_c_buf_p;
02965 
02966                         switch ( yy_get_next_buffer( yyscanner ) )
02967                                 {
02968                                 case EOB_ACT_LAST_MATCH:
02969                                         /* This happens because yy_g_n_b()
02970                                          * sees that we've accumulated a
02971                                          * token and flags that we need to
02972                                          * try matching the token before
02973                                          * proceeding.  But for input(),
02974                                          * there's no matching to consider.
02975                                          * So convert the EOB_ACT_LAST_MATCH
02976                                          * to EOB_ACT_END_OF_FILE.
02977                                          */
02978 
02979                                         /* Reset buffer status. */
02980                                         osrlrestart(yyin ,yyscanner);
02981 
02982                                         /*FALLTHROUGH*/
02983 
02984                                 case EOB_ACT_END_OF_FILE:
02985                                         {
02986                                         if ( osrlwrap(yyscanner ) )
02987                                                 return EOF;
02988 
02989                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02990                                                 YY_NEW_FILE;
02991 #ifdef __cplusplus
02992                                         return yyinput(yyscanner);
02993 #else
02994                                         return input(yyscanner);
02995 #endif
02996                                         }
02997 
02998                                 case EOB_ACT_CONTINUE_SCAN:
02999                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
03000                                         break;
03001                                 }
03002                         }
03003                 }
03004 
03005         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
03006         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
03007         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
03008 
03009         if ( c == '\n' )
03010                    
03011     do{ yylineno++;
03012         yycolumn=0;
03013     }while(0)
03014 ;
03015 
03016         return c;
03017 }
03018 #endif  /* ifndef YY_NO_INPUT */
03019 
03025     void osrlrestart  (FILE * input_file , yyscan_t yyscanner)
03026 {
03027     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03028 
03029         if ( ! YY_CURRENT_BUFFER ){
03030         osrlensure_buffer_stack (yyscanner);
03031                 YY_CURRENT_BUFFER_LVALUE =
03032             osrl_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
03033         }
03034 
03035         osrl_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
03036         osrl_load_buffer_state(yyscanner );
03037 }
03038 
03043     void osrl_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
03044 {
03045     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03046 
03047         /* TODO. We should be able to replace this entire function body
03048          * with
03049          *              osrlpop_buffer_state();
03050          *              osrlpush_buffer_state(new_buffer);
03051      */
03052         osrlensure_buffer_stack (yyscanner);
03053         if ( YY_CURRENT_BUFFER == new_buffer )
03054                 return;
03055 
03056         if ( YY_CURRENT_BUFFER )
03057                 {
03058                 /* Flush out information for old buffer. */
03059                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03060                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
03061                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03062                 }
03063 
03064         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03065         osrl_load_buffer_state(yyscanner );
03066 
03067         /* We don't actually know whether we did this switch during
03068          * EOF (osrlwrap()) processing, but the only time this flag
03069          * is looked at is after osrlwrap() is called, so it's safe
03070          * to go ahead and always set it.
03071          */
03072         yyg->yy_did_buffer_switch_on_eof = 1;
03073 }
03074 
03075 static void osrl_load_buffer_state  (yyscan_t yyscanner)
03076 {
03077     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03078         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
03079         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
03080         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
03081         yyg->yy_hold_char = *yyg->yy_c_buf_p;
03082 }
03083 
03090     YY_BUFFER_STATE osrl_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
03091 {
03092         YY_BUFFER_STATE b;
03093     
03094         b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
03095         if ( ! b )
03096                 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
03097 
03098         b->yy_buf_size = size;
03099 
03100         /* yy_ch_buf has to be 2 characters longer than the size given because
03101          * we need to put in 2 end-of-buffer characters.
03102          */
03103         b->yy_ch_buf = (char *) osrlalloc(b->yy_buf_size + 2 ,yyscanner );
03104         if ( ! b->yy_ch_buf )
03105                 YY_FATAL_ERROR( "out of dynamic memory in osrl_create_buffer()" );
03106 
03107         b->yy_is_our_buffer = 1;
03108 
03109         osrl_init_buffer(b,file ,yyscanner);
03110 
03111         return b;
03112 }
03113 
03118     void osrl_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03119 {
03120     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03121 
03122         if ( ! b )
03123                 return;
03124 
03125         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
03126                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
03127 
03128         if ( b->yy_is_our_buffer )
03129                 osrlfree((void *) b->yy_ch_buf ,yyscanner );
03130 
03131         osrlfree((void *) b ,yyscanner );
03132 }
03133 
03134 #ifndef __cplusplus
03135 extern int isatty (int );
03136 #endif /* __cplusplus */
03137     
03138 /* Initializes or reinitializes a buffer.
03139  * This function is sometimes called more than once on the same buffer,
03140  * such as during a osrlrestart() or at EOF.
03141  */
03142     static void osrl_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
03143 
03144 {
03145         int oerrno = errno;
03146     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03147 
03148         osrl_flush_buffer(b ,yyscanner);
03149 
03150         b->yy_input_file = file;
03151         b->yy_fill_buffer = 1;
03152 
03153     /* If b is the current buffer, then osrl_init_buffer was _probably_
03154      * called from osrlrestart() or through yy_get_next_buffer.
03155      * In that case, we don't want to reset the lineno or column.
03156      */
03157     if (b != YY_CURRENT_BUFFER){
03158         b->yy_bs_lineno = 1;
03159         b->yy_bs_column = 0;
03160     }
03161 
03162         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
03163     
03164         errno = oerrno;
03165 }
03166 
03171     void osrl_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
03172 {
03173     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03174         if ( ! b )
03175                 return;
03176 
03177         b->yy_n_chars = 0;
03178 
03179         /* We always need two end-of-buffer characters.  The first causes
03180          * a transition to the end-of-buffer state.  The second causes
03181          * a jam in that state.
03182          */
03183         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
03184         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
03185 
03186         b->yy_buf_pos = &b->yy_ch_buf[0];
03187 
03188         b->yy_at_bol = 1;
03189         b->yy_buffer_status = YY_BUFFER_NEW;
03190 
03191         if ( b == YY_CURRENT_BUFFER )
03192                 osrl_load_buffer_state(yyscanner );
03193 }
03194 
03201 void osrlpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
03202 {
03203     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03204         if (new_buffer == NULL)
03205                 return;
03206 
03207         osrlensure_buffer_stack(yyscanner);
03208 
03209         /* This block is copied from osrl_switch_to_buffer. */
03210         if ( YY_CURRENT_BUFFER )
03211                 {
03212                 /* Flush out information for old buffer. */
03213                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
03214                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
03215                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
03216                 }
03217 
03218         /* Only push if top exists. Otherwise, replace top. */
03219         if (YY_CURRENT_BUFFER)
03220                 yyg->yy_buffer_stack_top++;
03221         YY_CURRENT_BUFFER_LVALUE = new_buffer;
03222 
03223         /* copied from osrl_switch_to_buffer. */
03224         osrl_load_buffer_state(yyscanner );
03225         yyg->yy_did_buffer_switch_on_eof = 1;
03226 }
03227 
03232 void osrlpop_buffer_state (yyscan_t yyscanner)
03233 {
03234     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03235         if (!YY_CURRENT_BUFFER)
03236                 return;
03237 
03238         osrl_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
03239         YY_CURRENT_BUFFER_LVALUE = NULL;
03240         if (yyg->yy_buffer_stack_top > 0)
03241                 --yyg->yy_buffer_stack_top;
03242 
03243         if (YY_CURRENT_BUFFER) {
03244                 osrl_load_buffer_state(yyscanner );
03245                 yyg->yy_did_buffer_switch_on_eof = 1;
03246         }
03247 }
03248 
03249 /* Allocates the stack if it does not exist.
03250  *  Guarantees space for at least one push.
03251  */
03252 static void osrlensure_buffer_stack (yyscan_t yyscanner)
03253 {
03254         int num_to_alloc;
03255     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03256 
03257         if (!yyg->yy_buffer_stack) {
03258 
03259                 /* First allocation is just for 2 elements, since we don't know if this
03260                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
03261                  * immediate realloc on the next call.
03262          */
03263                 num_to_alloc = 1;
03264                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osrlalloc
03265                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
03266                                                                 , yyscanner);
03267                 if ( ! yyg->yy_buffer_stack )
03268                         YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
03269                                                                   
03270                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
03271                                 
03272                 yyg->yy_buffer_stack_max = num_to_alloc;
03273                 yyg->yy_buffer_stack_top = 0;
03274                 return;
03275         }
03276 
03277         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
03278 
03279                 /* Increase the buffer to prepare for a possible push. */
03280                 int grow_size = 8 /* arbitrary grow size */;
03281 
03282                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
03283                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osrlrealloc
03284                                                                 (yyg->yy_buffer_stack,
03285                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
03286                                                                 , yyscanner);
03287                 if ( ! yyg->yy_buffer_stack )
03288                         YY_FATAL_ERROR( "out of dynamic memory in osrlensure_buffer_stack()" );
03289 
03290                 /* zero only the new slots.*/
03291                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
03292                 yyg->yy_buffer_stack_max = num_to_alloc;
03293         }
03294 }
03295 
03302 YY_BUFFER_STATE osrl_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
03303 {
03304         YY_BUFFER_STATE b;
03305     
03306         if ( size < 2 ||
03307              base[size-2] != YY_END_OF_BUFFER_CHAR ||
03308              base[size-1] != YY_END_OF_BUFFER_CHAR )
03309                 /* They forgot to leave room for the EOB's. */
03310                 return 0;
03311 
03312         b = (YY_BUFFER_STATE) osrlalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
03313         if ( ! b )
03314                 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_buffer()" );
03315 
03316         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
03317         b->yy_buf_pos = b->yy_ch_buf = base;
03318         b->yy_is_our_buffer = 0;
03319         b->yy_input_file = 0;
03320         b->yy_n_chars = b->yy_buf_size;
03321         b->yy_is_interactive = 0;
03322         b->yy_at_bol = 1;
03323         b->yy_fill_buffer = 0;
03324         b->yy_buffer_status = YY_BUFFER_NEW;
03325 
03326         osrl_switch_to_buffer(b ,yyscanner );
03327 
03328         return b;
03329 }
03330 
03339 YY_BUFFER_STATE osrl_scan_string (yyconst char * yystr , yyscan_t yyscanner)
03340 {
03341     
03342         return osrl_scan_bytes(yystr,strlen(yystr) ,yyscanner);
03343 }
03344 
03352 YY_BUFFER_STATE osrl_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
03353 {
03354         YY_BUFFER_STATE b;
03355         char *buf;
03356         yy_size_t n;
03357         int i;
03358     
03359         /* Get memory for full buffer, including space for trailing EOB's. */
03360         n = _yybytes_len + 2;
03361         buf = (char *) osrlalloc(n ,yyscanner );
03362         if ( ! buf )
03363                 YY_FATAL_ERROR( "out of dynamic memory in osrl_scan_bytes()" );
03364 
03365         for ( i = 0; i < _yybytes_len; ++i )
03366                 buf[i] = yybytes[i];
03367 
03368         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
03369 
03370         b = osrl_scan_buffer(buf,n ,yyscanner);
03371         if ( ! b )
03372                 YY_FATAL_ERROR( "bad buffer in osrl_scan_bytes()" );
03373 
03374         /* It's okay to grow etc. this buffer, and we should throw it
03375          * away when we're done.
03376          */
03377         b->yy_is_our_buffer = 1;
03378 
03379         return b;
03380 }
03381 
03382 #ifndef YY_EXIT_FAILURE
03383 #define YY_EXIT_FAILURE 2
03384 #endif
03385 
03386 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
03387 {
03388         (void) fprintf( stderr, "%s\n", msg );
03389         exit( YY_EXIT_FAILURE );
03390 }
03391 
03392 /* Redefine yyless() so it works in section 3 code. */
03393 
03394 #undef yyless
03395 #define yyless(n) \
03396         do \
03397                 { \
03398                 /* Undo effects of setting up yytext. */ \
03399         int yyless_macro_arg = (n); \
03400         YY_LESS_LINENO(yyless_macro_arg);\
03401                 yytext[yyleng] = yyg->yy_hold_char; \
03402                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
03403                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
03404                 *yyg->yy_c_buf_p = '\0'; \
03405                 yyleng = yyless_macro_arg; \
03406                 } \
03407         while ( 0 )
03408 
03409 /* Accessor  methods (get/set functions) to struct members. */
03410 
03414 YY_EXTRA_TYPE osrlget_extra  (yyscan_t yyscanner)
03415 {
03416     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03417     return yyextra;
03418 }
03419 
03423 int osrlget_lineno  (yyscan_t yyscanner)
03424 {
03425     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03426     
03427         if (! YY_CURRENT_BUFFER)
03428             return 0;
03429     
03430     return yylineno;
03431 }
03432 
03436 int osrlget_column  (yyscan_t yyscanner)
03437 {
03438     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03439     
03440         if (! YY_CURRENT_BUFFER)
03441             return 0;
03442     
03443     return yycolumn;
03444 }
03445 
03449 FILE *osrlget_in  (yyscan_t yyscanner)
03450 {
03451     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03452     return yyin;
03453 }
03454 
03458 FILE *osrlget_out  (yyscan_t yyscanner)
03459 {
03460     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03461     return yyout;
03462 }
03463 
03467 int osrlget_leng  (yyscan_t yyscanner)
03468 {
03469     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03470     return yyleng;
03471 }
03472 
03477 char *osrlget_text  (yyscan_t yyscanner)
03478 {
03479     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03480     return yytext;
03481 }
03482 
03487 void osrlset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
03488 {
03489     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03490     yyextra = user_defined ;
03491 }
03492 
03497 void osrlset_lineno (int  line_number , yyscan_t yyscanner)
03498 {
03499     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03500 
03501         /* lineno is only valid if an input buffer exists. */
03502         if (! YY_CURRENT_BUFFER )
03503            yy_fatal_error( "osrlset_lineno called with no buffer" , yyscanner); 
03504     
03505     yylineno = line_number;
03506 }
03507 
03512 void osrlset_column (int  column_no , yyscan_t yyscanner)
03513 {
03514     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03515 
03516         /* column is only valid if an input buffer exists. */
03517         if (! YY_CURRENT_BUFFER )
03518            yy_fatal_error( "osrlset_column called with no buffer" , yyscanner); 
03519     
03520     yycolumn = column_no;
03521 }
03522 
03529 void osrlset_in (FILE *  in_str , yyscan_t yyscanner)
03530 {
03531     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03532     yyin = in_str ;
03533 }
03534 
03535 void osrlset_out (FILE *  out_str , yyscan_t yyscanner)
03536 {
03537     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03538     yyout = out_str ;
03539 }
03540 
03541 int osrlget_debug  (yyscan_t yyscanner)
03542 {
03543     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03544     return yy_flex_debug;
03545 }
03546 
03547 void osrlset_debug (int  bdebug , yyscan_t yyscanner)
03548 {
03549     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03550     yy_flex_debug = bdebug ;
03551 }
03552 
03553 /* Accessor methods for yylval and yylloc */
03554 
03555 YYSTYPE * osrlget_lval  (yyscan_t yyscanner)
03556 {
03557     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03558     return yylval;
03559 }
03560 
03561 void osrlset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
03562 {
03563     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03564     yylval = yylval_param;
03565 }
03566 
03567 YYLTYPE *osrlget_lloc  (yyscan_t yyscanner)
03568 {
03569     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03570     return yylloc;
03571 }
03572     
03573 void osrlset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
03574 {
03575     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03576     yylloc = yylloc_param;
03577 }
03578     
03579 /* User-visible API */
03580 
03581 /* osrllex_init is special because it creates the scanner itself, so it is
03582  * the ONLY reentrant function that doesn't take the scanner as the last argument.
03583  * That's why we explicitly handle the declaration, instead of using our macros.
03584  */
03585 
03586 int osrllex_init(yyscan_t* ptr_yy_globals)
03587 
03588 {
03589     if (ptr_yy_globals == NULL){
03590         errno = EINVAL;
03591         return 1;
03592     }
03593 
03594     *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), NULL );
03595 
03596     if (*ptr_yy_globals == NULL){
03597         errno = ENOMEM;
03598         return 1;
03599     }
03600 
03601     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
03602     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03603 
03604     return yy_init_globals ( *ptr_yy_globals );
03605 }
03606 
03607 /* osrllex_init_extra has the same functionality as osrllex_init, but follows the
03608  * convention of taking the scanner as the last argument. Note however, that
03609  * this is a *pointer* to a scanner, as it will be allocated by this call (and
03610  * is the reason, too, why this function also must handle its own declaration).
03611  * The user defined value in the first argument will be available to osrlalloc in
03612  * the yyextra field.
03613  */
03614 
03615 int osrllex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
03616 
03617 {
03618     struct yyguts_t dummy_yyguts;
03619 
03620     osrlset_extra (yy_user_defined, &dummy_yyguts);
03621 
03622     if (ptr_yy_globals == NULL){
03623         errno = EINVAL;
03624         return 1;
03625     }
03626         
03627     *ptr_yy_globals = (yyscan_t) osrlalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
03628         
03629     if (*ptr_yy_globals == NULL){
03630         errno = ENOMEM;
03631         return 1;
03632     }
03633     
03634     /* By setting to 0xAA, we expose bugs in
03635     yy_init_globals. Leave at 0x00 for releases. */
03636     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03637     
03638     osrlset_extra (yy_user_defined, *ptr_yy_globals);
03639     
03640     return yy_init_globals ( *ptr_yy_globals );
03641 }
03642 
03643 static int yy_init_globals (yyscan_t yyscanner)
03644 {
03645     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03646     /* Initialization is the same as for the non-reentrant scanner.
03647      * This function is called from osrllex_destroy(), so don't allocate here.
03648      */
03649 
03650     yyg->yy_buffer_stack = 0;
03651     yyg->yy_buffer_stack_top = 0;
03652     yyg->yy_buffer_stack_max = 0;
03653     yyg->yy_c_buf_p = (char *) 0;
03654     yyg->yy_init = 0;
03655     yyg->yy_start = 0;
03656 
03657     yyg->yy_start_stack_ptr = 0;
03658     yyg->yy_start_stack_depth = 0;
03659     yyg->yy_start_stack =  NULL;
03660 
03661 /* Defined in main.c */
03662 #ifdef YY_STDINIT
03663     yyin = stdin;
03664     yyout = stdout;
03665 #else
03666     yyin = (FILE *) 0;
03667     yyout = (FILE *) 0;
03668 #endif
03669 
03670     /* For future reference: Set errno on error, since we are called by
03671      * osrllex_init()
03672      */
03673     return 0;
03674 }
03675 
03676 /* osrllex_destroy is for both reentrant and non-reentrant scanners. */
03677 int osrllex_destroy  (yyscan_t yyscanner)
03678 {
03679     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03680 
03681     /* Pop the buffer stack, destroying each element. */
03682         while(YY_CURRENT_BUFFER){
03683                 osrl_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03684                 YY_CURRENT_BUFFER_LVALUE = NULL;
03685                 osrlpop_buffer_state(yyscanner);
03686         }
03687 
03688         /* Destroy the stack itself. */
03689         osrlfree(yyg->yy_buffer_stack ,yyscanner);
03690         yyg->yy_buffer_stack = NULL;
03691 
03692     /* Destroy the start condition stack. */
03693         osrlfree(yyg->yy_start_stack ,yyscanner );
03694         yyg->yy_start_stack = NULL;
03695 
03696     /* Reset the globals. This is important in a non-reentrant scanner so the next time
03697      * osrllex() is called, initialization will occur. */
03698     yy_init_globals( yyscanner);
03699 
03700     /* Destroy the main struct (reentrant only). */
03701     osrlfree ( yyscanner , yyscanner );
03702     yyscanner = NULL;
03703     return 0;
03704 }
03705 
03706 /*
03707  * Internal utility routines.
03708  */
03709 
03710 #ifndef yytext_ptr
03711 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03712 {
03713         register int i;
03714         for ( i = 0; i < n; ++i )
03715                 s1[i] = s2[i];
03716 }
03717 #endif
03718 
03719 #ifdef YY_NEED_STRLEN
03720 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03721 {
03722         register int n;
03723         for ( n = 0; s[n]; ++n )
03724                 ;
03725 
03726         return n;
03727 }
03728 #endif
03729 
03730 void *osrlalloc (yy_size_t  size , yyscan_t yyscanner)
03731 {
03732         return (void *) malloc( size );
03733 }
03734 
03735 void *osrlrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
03736 {
03737         /* The cast to (char *) in the following accommodates both
03738          * implementations that use char* generic pointers, and those
03739          * that use void* generic pointers.  It works with the latter
03740          * because both ANSI C and C++ allow castless assignment from
03741          * any pointer type to void*, and deal with argument conversions
03742          * as though doing an assignment.
03743          */
03744         return (void *) realloc( (char *) ptr, size );
03745 }
03746 
03747 void osrlfree (void * ptr , yyscan_t yyscanner)
03748 {
03749         free( (char *) ptr );   /* see osrlrealloc() for (char *) cast */
03750 }
03751 
03752 #define YYTABLES_NAME "yytables"
03753 
03754 #line 290 "/home/kmartin/coin/oscommon/OS/src/OSParsers/OSParseosrl.l"
03755 
03756 
03757 
03758 
03759 

Generated on Mon May 3 03:05:29 2010 by  doxygen 1.4.7