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

Go to the documentation of this file.
00001 #line 2 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.cpp"
00002 
00003 #line 4 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 35
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 
00058 /* Limits of integral types. */
00059 #ifndef INT8_MIN
00060 #define INT8_MIN               (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN              (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN              (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX               (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX              (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX              (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX              (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX             (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX             (4294967295U)
00085 #endif
00086 
00087 #endif /* ! C99 */
00088 
00089 #endif /* ! FLEXINT_H */
00090 
00091 #ifdef __cplusplus
00092 
00093 /* The "const" storage-class-modifier is valid. */
00094 #define YY_USE_CONST
00095 
00096 #else   /* ! __cplusplus */
00097 
00098 /* C99 requires __STDC__ to be defined as 1. */
00099 #if defined (__STDC__)
00100 
00101 #define YY_USE_CONST
00102 
00103 #endif  /* defined (__STDC__) */
00104 #endif  /* ! __cplusplus */
00105 
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111 
00112 /* Returned upon end-of-file. */
00113 #define YY_NULL 0
00114 
00115 /* Promotes a possibly negative, possibly signed char to an unsigned
00116  * integer for use as an array index.  If the signed char is negative,
00117  * we want to instead treat it as an 8-bit unsigned char, hence the
00118  * double cast.
00119  */
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121 
00122 /* An opaque pointer. */
00123 #ifndef YY_TYPEDEF_YY_SCANNER_T
00124 #define YY_TYPEDEF_YY_SCANNER_T
00125 typedef void* yyscan_t;
00126 #endif
00127 
00128 /* For convenience, these vars (plus the bison vars far below)
00129    are macros in the reentrant scanner. */
00130 #define yyin yyg->yyin_r
00131 #define yyout yyg->yyout_r
00132 #define yyextra yyg->yyextra_r
00133 #define yyleng yyg->yyleng_r
00134 #define yytext yyg->yytext_r
00135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00137 #define yy_flex_debug yyg->yy_flex_debug_r
00138 
00139 /* Enter a start condition.  This macro really ought to take a parameter,
00140  * but we do it the disgusting crufty way forced on us by the ()-less
00141  * definition of BEGIN.
00142  */
00143 #define BEGIN yyg->yy_start = 1 + 2 *
00144 
00145 /* Translate the current start state into a value that can be later handed
00146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00147  * compatibility.
00148  */
00149 #define YY_START ((yyg->yy_start - 1) / 2)
00150 #define YYSTATE YY_START
00151 
00152 /* Action number for EOF rule of a given start state. */
00153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00154 
00155 /* Special action meaning "start processing a new file". */
00156 #define YY_NEW_FILE osilrestart(yyin ,yyscanner )
00157 
00158 #define YY_END_OF_BUFFER_CHAR 0
00159 
00160 /* Size of default input buffer. */
00161 #ifndef YY_BUF_SIZE
00162 #ifdef __ia64__
00163 /* On IA-64, the buffer size is 16k, not 8k.
00164  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
00165  * Ditto for the __ia64__ case accordingly.
00166  */
00167 #define YY_BUF_SIZE 32768
00168 #else
00169 #define YY_BUF_SIZE 16384
00170 #endif /* __ia64__ */
00171 #endif
00172 
00173 /* The state buf must be large enough to hold one state per character in the main buffer.
00174  */
00175 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00176 
00177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00178 #define YY_TYPEDEF_YY_BUFFER_STATE
00179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00180 #endif
00181 
00182 #define EOB_ACT_CONTINUE_SCAN 0
00183 #define EOB_ACT_END_OF_FILE 1
00184 #define EOB_ACT_LAST_MATCH 2
00185 
00186     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00187      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00188      *       existing scanners that call yyless() from OUTSIDE osillex. 
00189      *       One obvious solution it to make yy_act a global. I tried that, and saw
00190      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00191      *       normally declared as a register variable-- so it is not worth it.
00192      */
00193     #define  YY_LESS_LINENO(n) \
00194             do { \
00195                 int yyl;\
00196                 for ( yyl = n; yyl < yyleng; ++yyl )\
00197                     if ( yytext[yyl] == '\n' )\
00198                         --yylineno;\
00199             }while(0)
00200     
00201 /* Return all but the first "n" matched characters back to the input stream. */
00202 #define yyless(n) \
00203         do \
00204                 { \
00205                 /* Undo effects of setting up yytext. */ \
00206         int yyless_macro_arg = (n); \
00207         YY_LESS_LINENO(yyless_macro_arg);\
00208                 *yy_cp = yyg->yy_hold_char; \
00209                 YY_RESTORE_YY_MORE_OFFSET \
00210                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00211                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00212                 } \
00213         while ( 0 )
00214 
00215 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00216 
00217 #ifndef YY_TYPEDEF_YY_SIZE_T
00218 #define YY_TYPEDEF_YY_SIZE_T
00219 typedef size_t yy_size_t;
00220 #endif
00221 
00222 #ifndef YY_STRUCT_YY_BUFFER_STATE
00223 #define YY_STRUCT_YY_BUFFER_STATE
00224 struct yy_buffer_state
00225         {
00226         FILE *yy_input_file;
00227 
00228         char *yy_ch_buf;                /* input buffer */
00229         char *yy_buf_pos;               /* current position in input buffer */
00230 
00231         /* Size of input buffer in bytes, not including room for EOB
00232          * characters.
00233          */
00234         yy_size_t yy_buf_size;
00235 
00236         /* Number of characters read into yy_ch_buf, not including EOB
00237          * characters.
00238          */
00239         int yy_n_chars;
00240 
00241         /* Whether we "own" the buffer - i.e., we know we created it,
00242          * and can realloc() it to grow it, and should free() it to
00243          * delete it.
00244          */
00245         int yy_is_our_buffer;
00246 
00247         /* Whether this is an "interactive" input source; if so, and
00248          * if we're using stdio for input, then we want to use getc()
00249          * instead of fread(), to make sure we stop fetching input after
00250          * each newline.
00251          */
00252         int yy_is_interactive;
00253 
00254         /* Whether we're considered to be at the beginning of a line.
00255          * If so, '^' rules will be active on the next match, otherwise
00256          * not.
00257          */
00258         int yy_at_bol;
00259 
00260     int yy_bs_lineno; 
00261     int yy_bs_column; 
00263         /* Whether to try to fill the input buffer when we reach the
00264          * end of it.
00265          */
00266         int yy_fill_buffer;
00267 
00268         int yy_buffer_status;
00269 
00270 #define YY_BUFFER_NEW 0
00271 #define YY_BUFFER_NORMAL 1
00272         /* When an EOF's been seen but there's still some text to process
00273          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00274          * shouldn't try reading from the input source any more.  We might
00275          * still have a bunch of tokens to match, though, because of
00276          * possible backing-up.
00277          *
00278          * When we actually see the EOF, we change the status to "new"
00279          * (via osilrestart()), so that the user can continue scanning by
00280          * just pointing yyin at a new input file.
00281          */
00282 #define YY_BUFFER_EOF_PENDING 2
00283 
00284         };
00285 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00286 
00287 /* We provide macros for accessing buffer states in case in the
00288  * future we want to put the buffer states in a more general
00289  * "scanner state".
00290  *
00291  * Returns the top of the stack, or NULL.
00292  */
00293 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00294                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00295                           : NULL)
00296 
00297 /* Same as previous macro, but useful when we know that the buffer stack is not
00298  * NULL or when we need an lvalue. For internal use only.
00299  */
00300 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00301 
00302 void osilrestart (FILE *input_file ,yyscan_t yyscanner );
00303 void osil_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00304 YY_BUFFER_STATE osil_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00305 void osil_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00306 void osil_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00307 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00308 void osilpop_buffer_state (yyscan_t yyscanner );
00309 
00310 static void osilensure_buffer_stack (yyscan_t yyscanner );
00311 static void osil_load_buffer_state (yyscan_t yyscanner );
00312 static void osil_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00313 
00314 #define YY_FLUSH_BUFFER osil_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00315 
00316 YY_BUFFER_STATE osil_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00317 YY_BUFFER_STATE osil_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00318 YY_BUFFER_STATE osil_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00319 
00320 void *osilalloc (yy_size_t ,yyscan_t yyscanner );
00321 void *osilrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00322 void osilfree (void * ,yyscan_t yyscanner );
00323 
00324 #define yy_new_buffer osil_create_buffer
00325 
00326 #define yy_set_interactive(is_interactive) \
00327         { \
00328         if ( ! YY_CURRENT_BUFFER ){ \
00329         osilensure_buffer_stack (yyscanner); \
00330                 YY_CURRENT_BUFFER_LVALUE =    \
00331             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00332         } \
00333         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00334         }
00335 
00336 #define yy_set_bol(at_bol) \
00337         { \
00338         if ( ! YY_CURRENT_BUFFER ){\
00339         osilensure_buffer_stack (yyscanner); \
00340                 YY_CURRENT_BUFFER_LVALUE =    \
00341             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00342         } \
00343         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00344         }
00345 
00346 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00347 
00348 /* Begin user sect3 */
00349 
00350 #define osilwrap(n) 1
00351 #define YY_SKIP_YYWRAP
00352 
00353 typedef unsigned char YY_CHAR;
00354 
00355 typedef int yy_state_type;
00356 
00357 #define yytext_ptr yytext_r
00358 
00359 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00360 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
00361 static int yy_get_next_buffer (yyscan_t yyscanner );
00362 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00363 
00364 /* Done after the current pattern has been matched and before the
00365  * corresponding action - sets up yytext.
00366  */
00367 #define YY_DO_BEFORE_ACTION \
00368         yyg->yytext_ptr = yy_bp; \
00369         yyleng = (size_t) (yy_cp - yy_bp); \
00370         yyg->yy_hold_char = *yy_cp; \
00371         *yy_cp = '\0'; \
00372         yyg->yy_c_buf_p = yy_cp;
00373 
00374 #define YY_NUM_RULES 116
00375 #define YY_END_OF_BUFFER 117
00376 /* This struct is not used in this scanner,
00377    but its presence is necessary. */
00378 struct yy_trans_info
00379         {
00380         flex_int32_t yy_verify;
00381         flex_int32_t yy_nxt;
00382         };
00383 static yyconst flex_int16_t yy_accept[776] =
00384     {   0,
00385         0,    0,  113,  113,  114,  114,    0,    0,    0,    0,
00386         0,    0,    0,    0,    0,    0,  117,  115,    1,    1,
00387         1,    2,  115,    5,  115,    4,  115,    3,  115,  113,
00388       116,  114,  106,  107,  106,  110,  111,  110,    0,    0,
00389         0,    3,    0,    0,    0,    0,    0,    0,    0,    5,
00390         4,    0,    5,    0,    6,    0,    0,  109,   79,    0,
00391         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00392         0,    0,    0,    0,    0,  113,  114,    0,  112,    0,
00393         0,    0,    0,    0,    0,    0,    0,    0,    5,    0,
00394         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00395 
00396         0,    0,    0,    0,    0,    0,   81,    0,    0,    0,
00397         0,    0,    0,    0,    0,    0,    0,    0,    0,   35,
00398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00399         0,    0,    0,    0,    5,  108,    0,    0,    0,    0,
00400         0,    0,    0,    0,    0,    0,  105,    0,   80,    0,
00401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00403         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00404        99,    0,    0,    0,    0,    0,   65,    0,    0,   49,
00405         0,    0,    0,    0,    0,  101,    0,    0,    0,    0,
00406 
00407         0,    0,    0,    0,    0,    0,   97,    0,    0,    0,
00408        21,   22,    0,   13,    0,    0,    0,    0,    0,    0,
00409         0,   80,    0,   82,    0,    0,    0,    0,    0,    0,
00410         0,    0,   66,    0,    0,    0,   50,    0,    0,    0,
00411         0,   36,    0,    0,    0,    0,    0,    0,    0,    0,
00412         0,    0,    0,    0,    0,    0,    0,    0,   61,    0,
00413         0,    0,   57,    0,    0,   63,    0,   59,   65,    0,
00414        49,    0,   67,    0,   69,    0,    0,    0,    0,    0,
00415         0,    0,    0,    0,    0,    0,   55,    0,    0,    0,
00416        71,    0,    0,    0,   16,    0,   13,    0,    0,    0,
00417 
00418         0,    0,    0,    0,    0,    0,   82,    0,   62,    0,
00419         0,  100,    0,    0,   58,    0,    0,   64,    0,   60,
00420        66,    0,    0,   50,    0,   68,    0,   70,    0,    0,
00421        36,    0,    0,    0,  102,    0,    0,    0,    0,    0,
00422         0,    0,    0,   56,    0,    0,    0,   72,    0,    0,
00423        98,    0,   61,    0,    0,   57,    0,   63,   59,    0,
00424        67,   69,    0,    0,    0,    0,    0,    0,   41,    0,
00425         0,   31,    0,   55,    0,   89,   71,    0,    0,    0,
00426        16,    0,    0,    0,    0,   25,   26,    0,    0,   20,
00427         0,    0,   23,   24,    0,   17,   62,    0,  100,    0,
00428 
00429        58,    0,   64,   60,    0,    0,   68,   70,    0,    0,
00430         0,    0,  102,    0,    0,   27,    0,   42,    0,    0,
00431         0,    0,   56,    0,    0,   72,    0,    0,   98,    0,
00432         0,    0,    0,    0,    0,   43,    0,    0,   77,    0,
00433        41,    0,   47,    0,    0,    0,   87,    0,    0,   37,
00434         0,    0,    0,   14,    0,   15,    0,   20,    0,   17,
00435         0,    0,    0,    0,    0,    0,   44,    0,    0,    0,
00436         0,   27,   42,    0,   48,    0,    0,   32,    0,    0,
00437         0,   90,    0,    0,    0,   38,    0,    0,    0,    0,
00438        39,    0,   43,    0,   45,    0,    0,   47,    0,    0,
00439 
00440         0,   53,    0,    0,   37,    0,    0,   19,   14,   15,
00441         0,    0,    0,    0,    0,   40,    0,    0,   44,    0,
00442        46,    0,    0,   78,    0,   48,    0,   32,    0,    0,
00443        54,    0,   90,    0,   88,    0,   38,    0,    0,   73,
00444         0,   39,  103,   45,    0,    0,    0,   75,    0,   53,
00445         0,    0,   83,   19,    0,    0,    0,    0,    0,    0,
00446         0,   18,    0,   74,    0,   40,    0,    0,   46,    0,
00447        78,    0,    0,   76,    0,   54,    0,   88,    0,    0,
00448        73,    0,    0,    0,   75,    0,    0,    0,   91,    0,
00449         0,    0,    0,    0,    0,   18,   74,    0,    0,    0,
00450 
00451       104,    0,    0,   76,    0,    0,    0,    0,   84,    0,
00452         0,    0,   95,    0,    0,   85,    0,    0,    0,    0,
00453         0,    0,    0,    0,  104,    0,    0,    0,    0,    0,
00454        84,    0,   92,   93,    0,    0,    0,   51,    0,    0,
00455         0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
00456         0,   52,    0,   86,   92,    0,    0,   51,    0,    0,
00457         0,    0,    0,    0,    0,   94,    0,    0,   96,    0,
00458        52,   86,    0,    0,    0,    0,    0,    0,    0,    0,
00459        94,    0,   28,    0,    0,    0,    0,    0,    0,    0,
00460         0,    0,   12,    0,   28,    0,    0,    0,    0,    0,
00461 
00462         0,    0,    0,   12,    0,    0,    0,    0,    0,    0,
00463         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00464         0,    0,    0,    7,    0,    0,    0,    0,    0,    0,
00465         0,    9,    0,    7,    0,    0,    0,    0,    0,    8,
00466         0,    9,    0,    0,    0,   33,    0,    8,    0,    0,
00467         0,    0,   29,    0,    0,    0,   34,    0,    0,    0,
00468        10,   34,    0,   30,    0,   10,   30,    0,    0,    0,
00469         0,    0,   11,   11,    0
00470     } ;
00471 
00472 static yyconst flex_int32_t yy_ec[256] =
00473     {   0,
00474         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00475         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00476         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00477         1,    4,    5,    6,    1,    1,    1,    1,    7,    1,
00478         1,    1,    8,    1,    9,   10,   11,   12,   12,   12,
00479        12,   12,   12,   12,   12,   12,   12,    1,    1,   13,
00480        14,   15,   16,    1,    1,    1,   17,   18,   19,   20,
00481         1,    1,   21,    1,    1,    1,    1,   22,   23,   24,
00482        25,   26,   27,   28,    1,   29,    1,    1,    1,    1,
00483         1,    1,    1,    1,    1,    1,   30,   31,   32,   33,
00484 
00485        34,   35,   36,   37,   38,   39,    1,   40,   41,   42,
00486        43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
00487        53,   54,    1,   55,    1,    1,    1,    1,    1,    1,
00488         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00489         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00490         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00491         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00492         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00493         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00495 
00496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00497         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00498         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00499         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00500         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00501         1,    1,    1,    1,    1
00502     } ;
00503 
00504 static yyconst flex_int32_t yy_meta[56] =
00505     {   0,
00506         1,    1,    1,    1,    1,    2,    3,    1,    1,    1,
00507         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00508         1,    1,    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
00512     } ;
00513 
00514 static yyconst flex_int16_t yy_base[784] =
00515     {   0,
00516         0,   54, 1668, 1667, 1665, 1664,    0,    0,    0,    0,
00517         0,    0,    5,   13,    2,   14, 1670, 1675,  108,    0,
00518         0, 1675,   13,    7, 1654,   17,  154, 1675, 1646,    0,
00519      1675,    0, 1675, 1675, 1658, 1675, 1675, 1651,    0, 1650,
00520        15, 1675, 1621, 1620, 1629,    3, 1613, 1607, 1629,   16,
00521        28, 1636,   20,   34, 1675, 1648,  186, 1675, 1675, 1635,
00522        13, 1612, 1616,   22,   35, 1611,    7,   38, 1621,   33,
00523        31,   44, 1613, 1620, 1629,    0,    0, 1633, 1675, 1613,
00524      1600,   81, 1604, 1603, 1613, 1598, 1601, 1628, 1627, 1629,
00525        98, 1616,   57, 1593, 1597,   44,   56, 1592,   56,   65,
00526 
00527        73,   82,   75,   89, 1595, 1602, 1675, 1584, 1590,   84,
00528      1579, 1593, 1583,  114, 1578,  139, 1573, 1582, 1587, 1675,
00529      1580, 1580, 1581, 1570, 1567, 1574, 1582, 1585, 1572, 1564,
00530      1582, 1570, 1569, 1563, 1675, 1675, 1573, 1569,  149,  165,
00531       209, 1572, 1574, 1558, 1569, 1553, 1675,  145,  172,  178,
00532      1554, 1560,   88, 1549, 1563, 1553,  236,    1,  239, 1544,
00533      1553, 1558,  242, 1551, 1551, 1552, 1552, 1540, 1537, 1544,
00534      1552, 1555, 1542, 1534, 1552, 1540, 1539, 1533,  245, 1560,
00535      1530,  259, 1538,  262,  265,  268,  187, 1541,  282,  204,
00536       285,  288, 1544, 1533, 1541, 1537, 1523, 1535, 1535, 1521,
00537 
00538      1533,  291, 1535, 1528,  305, 1529, 1524,  308, 1507,  311,
00539      1675, 1675,  321,  324, 1518, 1508,  327, 1524, 1509,  330,
00540      1522,  336,  343,  346,  349, 1537,  352,  357, 1516,  366,
00541       371,  374,  380, 1505, 1518,  388,  391,  394,  398, 1521,
00542       402,  408, 1510, 1518,  412, 1508, 1500, 1512, 1512, 1498,
00543      1510,  416, 1512, 1505,  419, 1506,  422,  426,  436, 1501,
00544      1490,  440,  446, 1504,  449,  454,  459,  463,  466, 1490,
00545       469,  473,  476,  479,  482, 1488, 1486, 1495, 1498, 1499,
00546       487, 1484, 1480, 1487, 1481,  493,  496, 1480, 1491,  501,
00547       507,   89, 1494,  510,  515, 1480,  518, 1488, 1478,  523,
00548 
00549       526, 1474,  532,  536,  541,  552,  555,  558,  561, 1481,
00550       565,  568, 1470,  572,  575, 1484,  579,  582,  586,  589,
00551       593, 1486, 1469,  596,  600,  603,  606,  609, 1467, 1465,
00552       614, 1474, 1477,  620,  623, 1478,  626,  629, 1463, 1459,
00553      1466, 1460,  634,  643, 1459, 1470,  648,  651,   97,  654,
00554       657, 1473,  662, 1467, 1452,  668, 1443,  671,  674, 1426,
00555       677,  680,  683, 1427, 1405, 1400, 1382,  686,  689,  692,
00556      1396, 1675, 1371,  700, 1366, 1338,  706, 1341,  709, 1351,
00557       712, 1339,  715,  718,  724, 1675, 1675, 1340,  731,  734,
00558      1329,  737, 1675, 1675,  744,  747,  750, 1299,  753, 1287,
00559 
00560       757, 1294,  760,  763, 1269, 1260,  766,  769,  772, 1268,
00561      1252, 1247,  775, 1240,  778,  781,  786,  792,  795, 1248,
00562       800, 1249,  803, 1240,  809,  814, 1217,  817,  823, 1228,
00563      1222, 1226,  826, 1224,  831,  834,  840, 1206, 1675, 1201,
00564       845,  848,  855, 1186, 1184,  858, 1675, 1190,  862,  865,
00565      1186,  868,  872,  876,  885,  888, 1190,  891, 1165,  894,
00566      1165, 1116,  898, 1097, 1098,  901,  904,  907, 1086,  915,
00567      1068,  921,  924,  929,  932, 1057,  935,  938, 1052,  943,
00568       949,  952,  957, 1045,  963,  971, 1045,  977, 1042,  980,
00569       983, 1026,  986,  994,  997, 1035, 1013, 1000, 1003, 1010,
00570 
00571      1008, 1011, 1003, 1014, 1017, 1007, 1022, 1025, 1028, 1031,
00572      1020, 1036, 1049,  984, 1052, 1055,  983,  976, 1058, 1066,
00573      1069,  978, 1072, 1075,  944, 1080, 1086, 1089,  955, 1092,
00574      1095,  948, 1100, 1106, 1109,  947, 1112,  942, 1115, 1120,
00575       929, 1123, 1675, 1129,  924,  934, 1132, 1135,  931, 1138,
00576       919,  919,  902, 1141,  905,  900,  898,  872,  872,  885,
00577      1146, 1149, 1152, 1155,  872, 1159,  894, 1162, 1166,  839,
00578      1169,  849, 1172, 1176,  849, 1179,  811, 1182,  815, 1186,
00579      1189,  797,  821,  792, 1192,  814,  775,  780, 1675,  772,
00580       767,  769,  770,  762,  745, 1195, 1200,  738,  712, 1203,
00581 
00582      1206,  706,  676, 1209,  689,  657,  658, 1212, 1217, 1220,
00583       652,  645, 1675,  625, 1226, 1675,  620,  622,  614,  610,
00584       606,  602,  592,  586, 1234,  568, 1240,  576, 1243, 1246,
00585      1249, 1260, 1263, 1675,  570,  518, 1266, 1269,  503,  511,
00586       510,  495,  497,  493, 1274,  485,  463, 1280, 1283,  472,
00587      1288, 1294, 1297, 1302, 1305,  455,  458, 1311,  446,  445,
00588       411,  424,  398,  405, 1314, 1317, 1320,  389, 1323,  398,
00589      1328, 1334,  398,  373,  377,  354,  349,  337, 1337,  340,
00590      1340, 1343, 1346,  345,  336,  319,  327,  325,  332,  307,
00591       305, 1350, 1353,  308, 1357,  289,  283,  272,  284,  263,
00592 
00593       258,  268,  269, 1363,  252,  251,  264,  244,  243,  231,
00594       259,  229,  247, 1366,  235,  221,  215,  222,  208,  201,
00595      1369,  218, 1372, 1375,  207,  201,  183,  180, 1385,  177,
00596      1388, 1391,  171, 1394,  173,  172,  162,  155, 1401, 1404,
00597       154, 1407,  144,  136,  131, 1675,  130, 1410,  132,  117,
00598      1414,  115, 1675,  114, 1417, 1420, 1423, 1430,  110, 1434,
00599      1437, 1440, 1447, 1450,  101, 1453, 1456,   89,   64,   24,
00600      1461, 1464, 1467, 1470, 1675, 1478, 1481, 1484, 1487, 1490,
00601      1493, 1496, 1499
00602     } ;
00603 
00604 static yyconst flex_int16_t yy_def[784] =
00605     {   0,
00606       776,  776,  777,  777,  778,  778,  779,  779,  779,  779,
00607       779,  779,  780,  780,  781,  781,  775,  775,  775,   19,
00608        19,  775,  775,  775,  775,  775,  775,  775,  775,  782,
00609       775,  783,  775,  775,  775,  775,  775,  775,   19,  775,
00610        27,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00611       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00612       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00613       775,  775,  775,  775,  775,  782,  783,  775,  775,  775,
00614       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00615       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00616 
00617       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00618       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00619       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00620       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00621       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00622       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00623       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00624       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00625       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00626       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00627 
00628       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00629       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00630       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00631       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00632       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00633       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00634       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00635       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00636       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00637       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00638 
00639       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00640       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00641       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00642       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00643       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00644       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00645       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00646       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00647       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00648       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00649 
00650       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00651       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00652       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00653       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00654       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00655       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00656       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00657       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00658       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00659       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00660 
00661       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00662       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00663       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00664       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00665       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00666       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00667       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00668       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00669       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00670       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00671 
00672       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00673       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00674       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00675       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00676       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00677       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00678       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00679       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00680       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00681       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00682 
00683       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00684       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00685       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00686       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00687       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00688       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00689       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00690       775,  775,  775,  775,    0,  775,  775,  775,  775,  775,
00691       775,  775,  775
00692     } ;
00693 
00694 static yyconst flex_int16_t yy_nxt[1731] =
00695     {   0,
00696       775,   19,   20,   21,   37,   22,   22,   34,   23,   24,
00697        25,   26,   27,   35,   28,   34,   37,   38,   53,  775,
00698        29,   35,   50,  775,   51,   54,   50,   53,   51,   38,
00699       775,   53,   83,   52,   54,   54,  117,   50,   54,   51,
00700        54,   88,   88,  108,  118,   89,   54,  234,  235,   54,
00701        54,   84,  109,   54,   22,   19,   20,   21,  127,   22,
00702        22,   54,   23,   24,   25,   26,   27,  112,   28,  114,
00703       771,  119,  124,  113,   29,  125,  115,  120,  126,  128,
00704       121,  129,  139,  139,  139,  160,  122,  151,  130,  155,
00705       157,  131,  132,  161,  140,  156,  152,  158,  162,  148,
00706 
00707       148,  148,  171,  166,  163,  770,  378,  164,   22,   39,
00708        39,   39,  149,  165,  427,  186,  186,  186,   40,  167,
00709        41,  168,   42,  172,  169,  181,  173,  170,  187,  227,
00710       182,  769,  141,  174,  228,  379,  175,  176,  768,   43,
00711       189,  189,  189,  428,   44,   45,  148,  148,  148,   46,
00712       139,  139,  139,  190,   47,   48,  765,   49,   56,  149,
00713       759,  758,  140,  755,   57,  754,  210,  210,  210,   58,
00714       211,  212,   59,  222,  222,  222,  753,   60,  752,  223,
00715       223,  223,  751,   61,  750,   62,   63,   64,  269,  269,
00716       269,   65,  224,   66,   67,   68,   69,   70,   71,  749,
00717 
00718        72,   73,  747,   74,   91,  271,  271,  271,  746,   92,
00719       213,  213,  213,  745,  744,   93,  743,   94,   95,   96,
00720       741,  738,  214,   97,  737,   98,   99,  100,  101,  102,
00721       103,  215,  104,  105,  736,  106,  216,  232,  232,  232,
00722       236,  236,  236,  241,  241,  241,  258,  258,  258,  735,
00723       233,  733,  730,  237,  729,  728,  242,  727,  726,  259,
00724       262,  262,  262,  265,  265,  265,  267,  267,  267,  186,
00725       186,  186,  725,  263,  722,  721,  266,  720,  719,  268,
00726       718,  717,  187,  189,  189,  189,  272,  272,  272,  274,
00727       274,  274,  286,  286,  286,  716,  190,  715,  714,  273,
00728 
00729       713,  712,  275,  711,  710,  287,  290,  290,  290,  294,
00730       294,  294,  210,  210,  210,  709,  211,  212,  708,  291,
00731       707,  295,  213,  213,  213,  297,  297,  297,  300,  300,
00732       300,  304,  304,  304,  214,  706,  276,  222,  222,  222,
00733       301,  705,  703,  305,  223,  223,  223,  307,  307,  307,
00734       308,  308,  308,  311,  311,  311,  702,  224,  314,  314,
00735       314,  701,  700,  309,  699,  698,  312,  317,  317,  317,
00736       697,  315,  319,  319,  319,  232,  232,  232,  696,  694,
00737       318,  321,  321,  321,  691,  320,  690,  689,  233,  236,
00738       236,  236,  324,  324,  324,  325,  325,  325,  313,  327,
00739 
00740       327,  327,  237,  241,  241,  241,  688,  687,  326,  331,
00741       331,  331,  328,  334,  334,  334,  242,  343,  343,  343,
00742       347,  347,  347,  350,  350,  350,  335,  258,  258,  258,
00743       344,  686,  685,  348,  684,  680,  351,  353,  353,  353,
00744       259,  262,  262,  262,  679,  336,  329,  356,  356,  356,
00745       265,  265,  265,  678,  263,  358,  358,  358,  677,  352,
00746       267,  267,  267,  266,  359,  359,  359,  269,  269,  269,
00747       271,  271,  271,  268,  272,  272,  272,  361,  361,  361,
00748       274,  274,  274,  362,  362,  362,  676,  273,  368,  368,
00749       368,  675,  674,  275,  286,  286,  286,  374,  374,  374,
00750 
00751       673,  369,  290,  290,  290,  670,  668,  287,  377,  377,
00752       377,  294,  294,  294,  667,  291,  381,  381,  381,  297,
00753       297,  297,  664,  295,  300,  300,  300,  385,  385,  385,
00754       663,  386,  387,  389,  389,  389,  301,  304,  304,  304,
00755       662,  661,  392,  392,  392,  390,  393,  394,  660,  305,
00756       659,  657,  391,  395,  395,  395,  307,  307,  307,  308,
00757       308,  308,  397,  397,  397,  396,  311,  311,  311,  399,
00758       399,  399,  309,  314,  314,  314,  401,  401,  401,  312,
00759       317,  317,  317,  403,  403,  403,  315,  319,  319,  319,
00760       404,  404,  404,  318,  321,  321,  321,  324,  324,  324,
00761 
00762       320,  325,  325,  325,  407,  407,  407,  327,  327,  327,
00763       408,  408,  408,  656,  326,  331,  331,  331,  650,  647,
00764       328,  334,  334,  334,  413,  413,  413,  415,  415,  415,
00765       417,  417,  417,  646,  335,  343,  343,  343,  645,  644,
00766       416,  643,  642,  418,  423,  423,  423,  641,  344,  347,
00767       347,  347,  426,  426,  426,  350,  350,  350,  429,  429,
00768       429,  640,  348,  353,  353,  353,  639,  636,  351,  356,
00769       356,  356,  358,  358,  358,  359,  359,  359,  361,  361,
00770       361,  362,  362,  362,  435,  435,  435,  368,  368,  368,
00771       441,  441,  441,  442,  442,  442,  635,  436,  634,  630,
00772 
00773       369,  374,  374,  374,  629,  628,  443,  377,  377,  377,
00774       449,  449,  449,  381,  381,  381,  453,  453,  453,  455,
00775       455,  455,  627,  450,  626,  385,  385,  385,  454,  386,
00776       387,  456,  389,  389,  389,  458,  458,  458,  392,  392,
00777       392,  624,  393,  394,  390,  395,  395,  395,  460,  460,
00778       460,  397,  397,  397,  399,  399,  399,  396,  401,  401,
00779       401,  403,  403,  403,  404,  404,  404,  407,  407,  407,
00780       408,  408,  408,  466,  466,  466,  413,  413,  413,  415,
00781       415,  415,  472,  472,  472,  623,  467,  417,  417,  417,
00782       622,  621,  416,  473,  473,  473,  474,  474,  474,  620,
00783 
00784       418,  477,  477,  477,  423,  423,  423,  619,  618,  475,
00785       481,  481,  481,  617,  478,  426,  426,  426,  485,  485,
00786       485,  616,  615,  482,  429,  429,  429,  490,  490,  490,
00787       614,  486,  435,  435,  435,  493,  493,  493,  613,  612,
00788       491,  494,  494,  494,  611,  436,  441,  441,  441,  442,
00789       442,  442,  607,  606,  495,  483,  498,  498,  498,  501,
00790       501,  501,  443,  449,  449,  449,  505,  505,  505,  507,
00791       507,  507,  502,  453,  453,  453,  450,  509,  509,  509,
00792       605,  508,  603,  503,  602,  454,  455,  455,  455,  510,
00793       510,  510,  458,  458,  458,  460,  460,  460,  456,  515,
00794 
00795       515,  515,  466,  466,  466,  519,  519,  519,  520,  520,
00796       520,  599,  516,  598,  595,  467,  523,  523,  523,  594,
00797       593,  521,  472,  472,  472,  473,  473,  473,  592,  524,
00798       474,  474,  474,  526,  526,  526,  477,  477,  477,  528,
00799       528,  528,  591,  475,  530,  530,  530,  590,  589,  478,
00800       481,  481,  481,  533,  533,  533,  588,  531,  534,  534,
00801       534,  587,  586,  482,  485,  485,  485,  584,  532,  583,
00802       582,  535,  537,  537,  537,  580,  579,  486,  539,  539,
00803       539,  490,  490,  490,  542,  542,  542,  493,  493,  493,
00804       577,  540,  575,  572,  491,  494,  494,  494,  544,  544,
00805 
00806       544,  498,  498,  498,  547,  547,  547,  570,  495,  501,
00807       501,  501,  550,  550,  550,  568,  567,  548,  505,  505,
00808       505,  565,  502,  507,  507,  507,  554,  554,  554,  509,
00809       509,  509,  510,  510,  510,  508,  555,  561,  561,  561,
00810       553,  556,  557,  552,  558,  551,  559,  549,  560,  562,
00811       563,  563,  563,  515,  515,  515,  566,  566,  566,  519,
00812       519,  519,  546,  564,  545,  543,  516,  520,  520,  520,
00813       569,  569,  569,  523,  523,  523,  571,  571,  571,  541,
00814       521,  526,  526,  526,  538,  536,  524,  573,  573,  573,
00815       528,  528,  528,  530,  530,  530,  576,  576,  576,  529,
00816 
00817       574,  533,  533,  533,  527,  525,  531,  534,  534,  534,
00818       578,  578,  578,  537,  537,  537,  539,  539,  539,  522,
00819       535,  581,  581,  581,  542,  542,  542,  518,  517,  540,
00820       544,  544,  544,  547,  547,  547,  585,  585,  585,  550,
00821       550,  550,  554,  554,  554,  514,  548,  561,  561,  561,
00822       596,  596,  596,  563,  563,  563,  597,  597,  597,  562,
00823       566,  566,  566,  600,  600,  600,  564,  569,  569,  569,
00824       571,  571,  571,  573,  573,  573,  601,  604,  604,  604,
00825       576,  576,  576,  578,  578,  578,  574,  608,  608,  608,
00826       581,  581,  581,  585,  585,  585,  596,  596,  596,  513,
00827 
00828       609,  597,  597,  597,  600,  600,  600,  625,  625,  625,
00829       604,  604,  604,  608,  608,  608,  512,  601,  631,  631,
00830       631,  632,  632,  632,  511,  506,  609,  637,  637,  637,
00831       504,  500,  610,  499,  633,  625,  625,  625,  497,  496,
00832       638,  648,  648,  648,  651,  651,  651,  653,  653,  653,
00833       631,  631,  631,  492,  649,  489,  488,  652,  487,  484,
00834       654,  632,  632,  632,  655,  655,  655,  637,  637,  637,
00835       658,  658,  658,  480,  633,  665,  665,  665,  479,  476,
00836       638,  648,  648,  648,  669,  669,  669,  471,  666,  651,
00837       651,  651,  470,  469,  649,  671,  671,  671,  653,  653,
00838 
00839       653,  468,  652,  672,  672,  672,  655,  655,  655,  465,
00840       464,  654,  658,  658,  658,  665,  665,  665,  681,  681,
00841       681,  682,  682,  682,  669,  669,  669,  463,  666,  671,
00842       671,  671,  462,  461,  683,  672,  672,  672,  692,  692,
00843       692,  681,  681,  681,  682,  682,  682,  695,  695,  695,
00844       693,  692,  692,  692,  704,  704,  704,  683,  695,  695,
00845       695,  459,  457,  693,  704,  704,  704,  723,  723,  723,
00846       731,  731,  731,  723,  723,  723,  734,  734,  734,  724,
00847       452,  451,  732,  448,  447,  724,  739,  739,  739,  731,
00848       731,  731,  742,  742,  742,  734,  734,  734,  740,  446,
00849 
00850       445,  732,  739,  739,  739,  748,  748,  748,  742,  742,
00851       742,  748,  748,  748,  740,  756,  756,  756,  760,  760,
00852       760,  756,  756,  756,  762,  762,  762,  444,  757,  440,
00853       761,  763,  763,  763,  757,  760,  760,  760,  766,  766,
00854       766,  762,  762,  762,  764,  439,  438,  761,  763,  763,
00855       763,  767,  767,  767,  766,  766,  766,  767,  767,  767,
00856       437,  764,  772,  772,  772,  772,  772,  772,  774,  774,
00857       774,  774,  774,  774,  773,  434,  433,  773,   18,   18,
00858        18,   30,   30,   30,   32,   32,   32,   31,   31,   31,
00859        33,   33,   33,   36,   36,   36,   76,  432,   76,   77,
00860 
00861        77,  431,  430,  425,  424,  422,  421,  420,  419,  414,
00862       412,  411,  410,  409,  406,  405,  402,  400,  398,  388,
00863       384,  383,  382,  380,  376,  375,  373,  372,  371,  370,
00864       367,  366,  365,  364,  363,  360,  357,  355,  354,  349,
00865       346,  345,  342,  341,  340,  339,  338,  337,  333,  332,
00866       330,  323,  322,  316,  310,  306,  303,  302,  299,  298,
00867       296,  293,  292,  289,  288,  285,  284,  283,  282,  281,
00868       280,  279,  278,  277,  270,  264,  261,  260,  257,  256,
00869       255,  254,  253,  252,  251,  250,  249,  248,  247,  246,
00870       245,  244,  243,  240,  239,  238,  231,  230,  229,  226,
00871 
00872       225,  221,  220,  219,  218,  217,  209,  208,  207,  206,
00873       205,  204,  203,  202,  201,  200,  199,  198,  197,  196,
00874       195,  194,  193,  192,  191,  188,  185,  184,  183,  180,
00875       179,  178,  177,  159,  154,  153,  150,  147,   89,   89,
00876       146,  145,  144,  143,  142,  138,  137,  136,  135,  134,
00877       133,  123,  116,  111,  110,  107,   90,   75,   87,   86,
00878        85,   82,   81,   80,   55,   79,   78,   75,   55,  775,
00879        31,   31,   31,   31,   17,  775,  775,  775,  775,  775,
00880       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00881       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00882 
00883       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00884       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
00885       775,  775,  775,  775,  775,  775,  775,  775,  775,  775
00886     } ;
00887 
00888 static yyconst flex_int16_t yy_chk[1731] =
00889     {   0,
00890         0,    1,    1,    1,   15,    1,    1,   13,    1,    1,
00891         1,    1,    1,   13,    1,   14,   16,   15,   24,   41,
00892         1,   14,   23,    0,   23,   24,   26,   50,   26,   16,
00893        41,   53,   46,   23,   50,   26,   67,   51,   53,   51,
00894        24,   54,   54,   61,   67,   54,   51,  158,  158,   50,
00895        26,   46,   61,   53,    1,    2,    2,    2,   71,    2,
00896         2,   51,    2,    2,    2,    2,    2,   64,    2,   65,
00897       770,   68,   70,   64,    2,   70,   65,   68,   70,   71,
00898        68,   72,   82,   82,   82,   99,   68,   93,   72,   96,
00899        97,   72,   72,   99,   82,   96,   93,   97,  100,   91,
00900 
00901        91,   91,  103,  101,  100,  769,  292,  100,    2,   19,
00902        19,   19,   91,  100,  349,  114,  114,  114,   19,  101,
00903        19,  102,   19,  103,  102,  110,  104,  102,  114,  153,
00904       110,  768,   82,  104,  153,  292,  104,  104,  765,   19,
00905       116,  116,  116,  349,   19,   19,  148,  148,  148,   19,
00906       139,  139,  139,  116,   19,   19,  759,   19,   27,  148,
00907       754,  752,  139,  750,   27,  749,  140,  140,  140,   27,
00908       140,  140,   27,  149,  149,  149,  747,   27,  745,  150,
00909       150,  150,  744,   27,  743,   27,   27,   27,  187,  187,
00910       187,   27,  150,   27,   27,   27,   27,   27,   27,  741,
00911 
00912        27,   27,  738,   27,   57,  190,  190,  190,  737,   57,
00913       141,  141,  141,  736,  735,   57,  733,   57,   57,   57,
00914       730,  728,  141,   57,  727,   57,   57,   57,   57,   57,
00915        57,  141,   57,   57,  726,   57,  141,  157,  157,  157,
00916       159,  159,  159,  163,  163,  163,  179,  179,  179,  725,
00917       157,  722,  720,  159,  719,  718,  163,  717,  716,  179,
00918       182,  182,  182,  184,  184,  184,  185,  185,  185,  186,
00919       186,  186,  715,  182,  713,  712,  184,  711,  710,  185,
00920       709,  708,  186,  189,  189,  189,  191,  191,  191,  192,
00921       192,  192,  202,  202,  202,  707,  189,  706,  705,  191,
00922 
00923       703,  702,  192,  701,  700,  202,  205,  205,  205,  208,
00924       208,  208,  210,  210,  210,  699,  210,  210,  698,  205,
00925       697,  208,  213,  213,  213,  214,  214,  214,  217,  217,
00926       217,  220,  220,  220,  213,  696,  192,  222,  222,  222,
00927       217,  694,  691,  220,  223,  223,  223,  224,  224,  224,
00928       225,  225,  225,  227,  227,  227,  690,  223,  228,  228,
00929       228,  689,  688,  225,  687,  686,  227,  230,  230,  230,
00930       685,  228,  231,  231,  231,  232,  232,  232,  684,  680,
00931       230,  233,  233,  233,  678,  231,  677,  676,  232,  236,
00932       236,  236,  237,  237,  237,  238,  238,  238,  227,  239,
00933 
00934       239,  239,  236,  241,  241,  241,  675,  674,  238,  242,
00935       242,  242,  239,  245,  245,  245,  241,  252,  252,  252,
00936       255,  255,  255,  257,  257,  257,  245,  258,  258,  258,
00937       252,  673,  670,  255,  668,  664,  257,  259,  259,  259,
00938       258,  262,  262,  262,  663,  245,  239,  263,  263,  263,
00939       265,  265,  265,  662,  262,  266,  266,  266,  661,  257,
00940       267,  267,  267,  265,  268,  268,  268,  269,  269,  269,
00941       271,  271,  271,  267,  272,  272,  272,  273,  273,  273,
00942       274,  274,  274,  275,  275,  275,  660,  272,  281,  281,
00943       281,  659,  657,  274,  286,  286,  286,  287,  287,  287,
00944 
00945       656,  281,  290,  290,  290,  650,  647,  286,  291,  291,
00946       291,  294,  294,  294,  646,  290,  295,  295,  295,  297,
00947       297,  297,  644,  294,  300,  300,  300,  301,  301,  301,
00948       643,  301,  301,  303,  303,  303,  300,  304,  304,  304,
00949       642,  641,  305,  305,  305,  303,  305,  305,  640,  304,
00950       639,  636,  303,  306,  306,  306,  307,  307,  307,  308,
00951       308,  308,  309,  309,  309,  306,  311,  311,  311,  312,
00952       312,  312,  308,  314,  314,  314,  315,  315,  315,  311,
00953       317,  317,  317,  318,  318,  318,  314,  319,  319,  319,
00954       320,  320,  320,  317,  321,  321,  321,  324,  324,  324,
00955 
00956       319,  325,  325,  325,  326,  326,  326,  327,  327,  327,
00957       328,  328,  328,  635,  325,  331,  331,  331,  628,  626,
00958       327,  334,  334,  334,  335,  335,  335,  337,  337,  337,
00959       338,  338,  338,  624,  334,  343,  343,  343,  623,  622,
00960       337,  621,  620,  338,  344,  344,  344,  619,  343,  347,
00961       347,  347,  348,  348,  348,  350,  350,  350,  351,  351,
00962       351,  618,  347,  353,  353,  353,  617,  614,  350,  356,
00963       356,  356,  358,  358,  358,  359,  359,  359,  361,  361,
00964       361,  362,  362,  362,  363,  363,  363,  368,  368,  368,
00965       369,  369,  369,  370,  370,  370,  612,  363,  611,  607,
00966 
00967       368,  374,  374,  374,  606,  605,  370,  377,  377,  377,
00968       379,  379,  379,  381,  381,  381,  383,  383,  383,  384,
00969       384,  384,  603,  379,  602,  385,  385,  385,  383,  385,
00970       385,  384,  389,  389,  389,  390,  390,  390,  392,  392,
00971       392,  599,  392,  392,  389,  395,  395,  395,  396,  396,
00972       396,  397,  397,  397,  399,  399,  399,  395,  401,  401,
00973       401,  403,  403,  403,  404,  404,  404,  407,  407,  407,
00974       408,  408,  408,  409,  409,  409,  413,  413,  413,  415,
00975       415,  415,  416,  416,  416,  598,  409,  417,  417,  417,
00976       595,  594,  415,  418,  418,  418,  419,  419,  419,  593,
00977 
00978       417,  421,  421,  421,  423,  423,  423,  592,  591,  419,
00979       425,  425,  425,  590,  421,  426,  426,  426,  428,  428,
00980       428,  588,  587,  425,  429,  429,  429,  433,  433,  433,
00981       586,  428,  435,  435,  435,  436,  436,  436,  584,  583,
00982       433,  437,  437,  437,  582,  435,  441,  441,  441,  442,
00983       442,  442,  579,  577,  437,  425,  443,  443,  443,  446,
00984       446,  446,  442,  449,  449,  449,  450,  450,  450,  452,
00985       452,  452,  446,  453,  453,  453,  449,  454,  454,  454,
00986       575,  452,  572,  446,  570,  453,  455,  455,  455,  456,
00987       456,  456,  458,  458,  458,  460,  460,  460,  455,  463,
00988 
00989       463,  463,  466,  466,  466,  467,  467,  467,  468,  468,
00990       468,  567,  463,  565,  560,  466,  470,  470,  470,  559,
00991       558,  468,  472,  472,  472,  473,  473,  473,  557,  470,
00992       474,  474,  474,  475,  475,  475,  477,  477,  477,  478,
00993       478,  478,  556,  474,  480,  480,  480,  555,  553,  477,
00994       481,  481,  481,  482,  482,  482,  552,  480,  483,  483,
00995       483,  551,  549,  481,  485,  485,  485,  546,  480,  545,
00996       541,  483,  486,  486,  486,  538,  536,  485,  488,  488,
00997       488,  490,  490,  490,  491,  491,  491,  493,  493,  493,
00998       532,  488,  529,  525,  490,  494,  494,  494,  495,  495,
00999 
01000       495,  498,  498,  498,  499,  499,  499,  522,  494,  501,
01001       501,  501,  502,  502,  502,  518,  517,  499,  505,  505,
01002       505,  514,  501,  507,  507,  507,  508,  508,  508,  509,
01003       509,  509,  510,  510,  510,  507,  511,  512,  512,  512,
01004       506,  511,  511,  504,  511,  503,  511,  500,  511,  512,
01005       513,  513,  513,  515,  515,  515,  516,  516,  516,  519,
01006       519,  519,  497,  513,  496,  492,  515,  520,  520,  520,
01007       521,  521,  521,  523,  523,  523,  524,  524,  524,  489,
01008       520,  526,  526,  526,  487,  484,  523,  527,  527,  527,
01009       528,  528,  528,  530,  530,  530,  531,  531,  531,  479,
01010 
01011       527,  533,  533,  533,  476,  471,  530,  534,  534,  534,
01012       535,  535,  535,  537,  537,  537,  539,  539,  539,  469,
01013       534,  540,  540,  540,  542,  542,  542,  465,  464,  539,
01014       544,  544,  544,  547,  547,  547,  548,  548,  548,  550,
01015       550,  550,  554,  554,  554,  462,  547,  561,  561,  561,
01016       562,  562,  562,  563,  563,  563,  564,  564,  564,  561,
01017       566,  566,  566,  568,  568,  568,  563,  569,  569,  569,
01018       571,  571,  571,  573,  573,  573,  568,  574,  574,  574,
01019       576,  576,  576,  578,  578,  578,  573,  580,  580,  580,
01020       581,  581,  581,  585,  585,  585,  596,  596,  596,  461,
01021 
01022       580,  597,  597,  597,  600,  600,  600,  601,  601,  601,
01023       604,  604,  604,  608,  608,  608,  459,  600,  609,  609,
01024       609,  610,  610,  610,  457,  451,  608,  615,  615,  615,
01025       448,  445,  580,  444,  610,  625,  625,  625,  440,  438,
01026       615,  627,  627,  627,  629,  629,  629,  630,  630,  630,
01027       631,  631,  631,  434,  627,  432,  431,  629,  430,  427,
01028       630,  632,  632,  632,  633,  633,  633,  637,  637,  637,
01029       638,  638,  638,  424,  632,  645,  645,  645,  422,  420,
01030       637,  648,  648,  648,  649,  649,  649,  414,  645,  651,
01031       651,  651,  412,  411,  648,  652,  652,  652,  653,  653,
01032 
01033       653,  410,  651,  654,  654,  654,  655,  655,  655,  406,
01034       405,  653,  658,  658,  658,  665,  665,  665,  666,  666,
01035       666,  667,  667,  667,  669,  669,  669,  402,  665,  671,
01036       671,  671,  400,  398,  667,  672,  672,  672,  679,  679,
01037       679,  681,  681,  681,  682,  682,  682,  683,  683,  683,
01038       679,  692,  692,  692,  693,  693,  693,  682,  695,  695,
01039       695,  391,  388,  692,  704,  704,  704,  714,  714,  714,
01040       721,  721,  721,  723,  723,  723,  724,  724,  724,  714,
01041       382,  380,  721,  378,  376,  723,  729,  729,  729,  731,
01042       731,  731,  732,  732,  732,  734,  734,  734,  729,  375,
01043 
01044       373,  731,  739,  739,  739,  740,  740,  740,  742,  742,
01045       742,  748,  748,  748,  739,  751,  751,  751,  755,  755,
01046       755,  756,  756,  756,  757,  757,  757,  371,  751,  367,
01047       755,  758,  758,  758,  756,  760,  760,  760,  761,  761,
01048       761,  762,  762,  762,  758,  366,  365,  760,  763,  763,
01049       763,  764,  764,  764,  766,  766,  766,  767,  767,  767,
01050       364,  763,  771,  771,  771,  772,  772,  772,  773,  773,
01051       773,  774,  774,  774,  771,  360,  357,  772,  776,  776,
01052       776,  777,  777,  777,  778,  778,  778,  779,  779,  779,
01053       780,  780,  780,  781,  781,  781,  782,  355,  782,  783,
01054 
01055       783,  354,  352,  346,  345,  342,  341,  340,  339,  336,
01056       333,  332,  330,  329,  323,  322,  316,  313,  310,  302,
01057       299,  298,  296,  293,  289,  288,  285,  284,  283,  282,
01058       280,  279,  278,  277,  276,  270,  264,  261,  260,  256,
01059       254,  253,  251,  250,  249,  248,  247,  246,  244,  243,
01060       240,  235,  234,  229,  226,  221,  219,  218,  216,  215,
01061       209,  207,  206,  204,  203,  201,  200,  199,  198,  197,
01062       196,  195,  194,  193,  188,  183,  181,  180,  178,  177,
01063       176,  175,  174,  173,  172,  171,  170,  169,  168,  167,
01064       166,  165,  164,  162,  161,  160,  156,  155,  154,  152,
01065 
01066       151,  146,  145,  144,  143,  142,  138,  137,  134,  133,
01067       132,  131,  130,  129,  128,  127,  126,  125,  124,  123,
01068       122,  121,  119,  118,  117,  115,  113,  112,  111,  109,
01069       108,  106,  105,   98,   95,   94,   92,   90,   89,   88,
01070        87,   86,   85,   84,   83,   81,   80,   78,   75,   74,
01071        73,   69,   66,   63,   62,   60,   56,   52,   49,   48,
01072        47,   45,   44,   43,   40,   38,   35,   29,   25,   17,
01073         6,    5,    4,    3,  775,  775,  775,  775,  775,  775,
01074       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
01075       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
01076 
01077       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
01078       775,  775,  775,  775,  775,  775,  775,  775,  775,  775,
01079       775,  775,  775,  775,  775,  775,  775,  775,  775,  775
01080     } ;
01081 
01082 /* Table of booleans, true if rule could match eol. */
01083 static yyconst flex_int32_t yy_rule_can_match_eol[117] =
01084     {   0,
01085 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01086     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01087     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01088     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01089     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01090     1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0,     };
01091 
01092 /* The intent behind this definition is that it'll catch
01093  * any uses of REJECT which flex missed.
01094  */
01095 #define REJECT reject_used_but_not_detected
01096 #define yymore() yymore_used_but_not_detected
01097 #define YY_MORE_ADJ 0
01098 #define YY_RESTORE_YY_MORE_OFFSET
01099 #line 1 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01100 /* $Id: OSParseosil.cpp 2852 2009-07-29 05:04:05Z kmartin $ */
01115 #line 17 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01116 
01117 
01118 #include "OSDataStructures.h"
01119 #include "OSMathUtil.h"
01120 #include "OSConfig.h"
01121 
01122 #include <iostream>
01123 
01124 
01125 
01126 #ifdef HAVE_CSTDIO
01127 # include <cstdio>
01128 #else
01129 # ifdef HAVE_STDIO_H
01130 #  include <stdio.h>
01131 # else
01132 #  error "don't have header file for stdio"
01133 # endif
01134 #endif
01135 
01136 #ifdef HAVE_CTIME
01137 # include <ctime>
01138 #else
01139 # ifdef HAVE_TIME_H
01140 #  include <time.h>
01141 # else
01142 #  error "don't have header file for time"
01143 # endif
01144 #endif
01145 
01146 #ifdef HAVE_CMATH
01147 # include <cmath>
01148 #else
01149 # ifdef HAVE_MATH_H
01150 #  include <math.h>
01151 # else
01152 #  error "don't have header file for math"
01153 # endif
01154 #endif
01155 
01156 #include <sstream>  
01157 #include "OSiLParserData.h"
01158 
01159 
01160 
01161 #include "OSErrorClass.h"
01162 #include "OSParseosil.tab.hpp"
01163 #include "OSInstance.h"
01164 
01165 
01166 //#define PARSERDEBUG
01167 
01168 #ifdef PARSERDEBUG
01169         #define YY_PRINT  printf("%s", yytext);
01170 #else     
01171         #define YY_PRINT ;
01172 #endif
01173 
01174 
01175 
01176 #ifdef WIN_
01177   #define YY_NO_UNISTD_H
01178   #include <io.h>
01179   #include <process.h>
01180   #ifdef USE_OLD_UNISTD
01181      #include<sys/unistd.h>
01182   #endif
01183 #endif
01184 using std::cout;
01185 using std::endl;
01186 using std::ostringstream;
01187 
01188 
01189 
01190 
01191 
01192 
01193 
01194 #line 108 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01195 #define YY_EXTRA_TYPE OSiLParserData*
01196 #line 1197 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.cpp"
01197 
01198 #define INITIAL 0
01199 #define doublequoteattributetext 1
01200 #define singlequoteattributetext 2
01201 #define startelement 3
01202 #define osilattributetext 4
01203 #define elementtext 5
01204 #define comment 6
01205 #define xmldeclaration 7
01206 
01207 #ifndef YY_NO_UNISTD_H
01208 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01209  * down here because we want the user's section 1 to have been scanned first.
01210  * The user has a chance to override it with an option.
01211  */
01212 #include <unistd.h>
01213 #endif
01214 
01215 #ifndef YY_EXTRA_TYPE
01216 #define YY_EXTRA_TYPE void *
01217 #endif
01218 
01219 /* Holds the entire state of the reentrant scanner. */
01220 struct yyguts_t
01221     {
01222 
01223     /* User-defined. Not touched by flex. */
01224     YY_EXTRA_TYPE yyextra_r;
01225 
01226     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01227     FILE *yyin_r, *yyout_r;
01228     size_t yy_buffer_stack_top; 
01229     size_t yy_buffer_stack_max; 
01230     YY_BUFFER_STATE * yy_buffer_stack; 
01231     char yy_hold_char;
01232     int yy_n_chars;
01233     int yyleng_r;
01234     char *yy_c_buf_p;
01235     int yy_init;
01236     int yy_start;
01237     int yy_did_buffer_switch_on_eof;
01238     int yy_start_stack_ptr;
01239     int yy_start_stack_depth;
01240     int *yy_start_stack;
01241     yy_state_type yy_last_accepting_state;
01242     char* yy_last_accepting_cpos;
01243 
01244     int yylineno_r;
01245     int yy_flex_debug_r;
01246 
01247     char *yytext_r;
01248     int yy_more_flag;
01249     int yy_more_len;
01250 
01251     YYSTYPE * yylval_r;
01252 
01253     YYLTYPE * yylloc_r;
01254 
01255     }; /* end struct yyguts_t */
01256 
01257 static int yy_init_globals (yyscan_t yyscanner );
01258 
01259     /* This must go here because YYSTYPE and YYLTYPE are included
01260      * from bison output in section 1.*/
01261     #    define yylval yyg->yylval_r
01262     
01263     #    define yylloc yyg->yylloc_r
01264     
01265 int osillex_init (yyscan_t* scanner);
01266 
01267 int osillex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
01268 
01269 /* Accessor methods to globals.
01270    These are made visible to non-reentrant scanners for convenience. */
01271 
01272 int osillex_destroy (yyscan_t yyscanner );
01273 
01274 int osilget_debug (yyscan_t yyscanner );
01275 
01276 void osilset_debug (int debug_flag ,yyscan_t yyscanner );
01277 
01278 YY_EXTRA_TYPE osilget_extra (yyscan_t yyscanner );
01279 
01280 void osilset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01281 
01282 FILE *osilget_in (yyscan_t yyscanner );
01283 
01284 void osilset_in  (FILE * in_str ,yyscan_t yyscanner );
01285 
01286 FILE *osilget_out (yyscan_t yyscanner );
01287 
01288 void osilset_out  (FILE * out_str ,yyscan_t yyscanner );
01289 
01290 int osilget_leng (yyscan_t yyscanner );
01291 
01292 char *osilget_text (yyscan_t yyscanner );
01293 
01294 int osilget_lineno (yyscan_t yyscanner );
01295 
01296 void osilset_lineno (int line_number ,yyscan_t yyscanner );
01297 
01298 YYSTYPE * osilget_lval (yyscan_t yyscanner );
01299 
01300 void osilset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01301 
01302        YYLTYPE *osilget_lloc (yyscan_t yyscanner );
01303     
01304         void osilset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01305     
01306 /* Macros after this point can all be overridden by user definitions in
01307  * section 1.
01308  */
01309 
01310 #ifndef YY_SKIP_YYWRAP
01311 #ifdef __cplusplus
01312 extern "C" int osilwrap (yyscan_t yyscanner );
01313 #else
01314 extern int osilwrap (yyscan_t yyscanner );
01315 #endif
01316 #endif
01317 
01318 #ifndef yytext_ptr
01319 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01320 #endif
01321 
01322 #ifdef YY_NEED_STRLEN
01323 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01324 #endif
01325 
01326 #ifndef YY_NO_INPUT
01327 
01328 #ifdef __cplusplus
01329 static int yyinput (yyscan_t yyscanner );
01330 #else
01331 static int input (yyscan_t yyscanner );
01332 #endif
01333 
01334 #endif
01335 
01336 /* Amount of stuff to slurp up with each read. */
01337 #ifndef YY_READ_BUF_SIZE
01338 #ifdef __ia64__
01339 /* On IA-64, the buffer size is 16k, not 8k */
01340 #define YY_READ_BUF_SIZE 16384
01341 #else
01342 #define YY_READ_BUF_SIZE 8192
01343 #endif /* __ia64__ */
01344 #endif
01345 
01346 /* Copy whatever the last rule matched to the standard output. */
01347 #ifndef ECHO
01348 /* This used to be an fputs(), but since the string might contain NUL's,
01349  * we now use fwrite().
01350  */
01351 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
01352 #endif
01353 
01354 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01355  * is returned in "result".
01356  */
01357 #ifndef YY_INPUT
01358 #define YY_INPUT(buf,result,max_size) \
01359         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01360                 { \
01361                 int c = '*'; \
01362                 size_t n; \
01363                 for ( n = 0; n < max_size && \
01364                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01365                         buf[n] = (char) c; \
01366                 if ( c == '\n' ) \
01367                         buf[n++] = (char) c; \
01368                 if ( c == EOF && ferror( yyin ) ) \
01369                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01370                 result = n; \
01371                 } \
01372         else \
01373                 { \
01374                 errno=0; \
01375                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01376                         { \
01377                         if( errno != EINTR) \
01378                                 { \
01379                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01380                                 break; \
01381                                 } \
01382                         errno=0; \
01383                         clearerr(yyin); \
01384                         } \
01385                 }\
01386 \
01387 
01388 #endif
01389 
01390 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01391  * we don't want an extra ';' after the "return" because that will cause
01392  * some compilers to complain about unreachable statements.
01393  */
01394 #ifndef yyterminate
01395 #define yyterminate() return YY_NULL
01396 #endif
01397 
01398 /* Number of entries by which start-condition stack grows. */
01399 #ifndef YY_START_STACK_INCR
01400 #define YY_START_STACK_INCR 25
01401 #endif
01402 
01403 /* Report a fatal error. */
01404 #ifndef YY_FATAL_ERROR
01405 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01406 #endif
01407 
01408 /* end tables serialization structures and prototypes */
01409 
01410 /* Default declaration of generated scanner - a define so the user can
01411  * easily add parameters.
01412  */
01413 #ifndef YY_DECL
01414 #define YY_DECL_IS_OURS 1
01415 
01416 extern int osillex \
01417                (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01418 
01419 #define YY_DECL int osillex \
01420                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01421 #endif /* !YY_DECL */
01422 
01423 /* Code executed at the beginning of each rule, after yytext and yyleng
01424  * have been set up.
01425  */
01426 #ifndef YY_USER_ACTION
01427 #define YY_USER_ACTION
01428 #endif
01429 
01430 /* Code executed at the end of each rule. */
01431 #ifndef YY_BREAK
01432 #define YY_BREAK break;
01433 #endif
01434 
01435 #define YY_RULE_SETUP \
01436         YY_USER_ACTION
01437 
01440 YY_DECL
01441 {
01442         register yy_state_type yy_current_state;
01443         register char *yy_cp, *yy_bp;
01444         register int yy_act;
01445     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01446 
01447 #line 119 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01448 
01449  
01450 #line 1451 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.cpp"
01451 
01452     yylval = yylval_param;
01453 
01454     yylloc = yylloc_param;
01455 
01456         if ( !yyg->yy_init )
01457                 {
01458                 yyg->yy_init = 1;
01459 
01460 #ifdef YY_USER_INIT
01461                 YY_USER_INIT;
01462 #endif
01463 
01464                 if ( ! yyg->yy_start )
01465                         yyg->yy_start = 1;      /* first start state */
01466 
01467                 if ( ! yyin )
01468                         yyin = stdin;
01469 
01470                 if ( ! yyout )
01471                         yyout = stdout;
01472 
01473                 if ( ! YY_CURRENT_BUFFER ) {
01474                         osilensure_buffer_stack (yyscanner);
01475                         YY_CURRENT_BUFFER_LVALUE =
01476                                 osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01477                 }
01478 
01479                 osil_load_buffer_state(yyscanner );
01480                 }
01481 
01482         while ( 1 )             /* loops until end-of-file is reached */
01483                 {
01484                 yy_cp = yyg->yy_c_buf_p;
01485 
01486                 /* Support of yytext. */
01487                 *yy_cp = yyg->yy_hold_char;
01488 
01489                 /* yy_bp points to the position in yy_ch_buf of the start of
01490                  * the current run.
01491                  */
01492                 yy_bp = yy_cp;
01493 
01494                 yy_current_state = yyg->yy_start;
01495 yy_match:
01496                 do
01497                         {
01498                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01499                         if ( yy_accept[yy_current_state] )
01500                                 {
01501                                 yyg->yy_last_accepting_state = yy_current_state;
01502                                 yyg->yy_last_accepting_cpos = yy_cp;
01503                                 }
01504                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01505                                 {
01506                                 yy_current_state = (int) yy_def[yy_current_state];
01507                                 if ( yy_current_state >= 776 )
01508                                         yy_c = yy_meta[(unsigned int) yy_c];
01509                                 }
01510                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01511                         ++yy_cp;
01512                         }
01513                 while ( yy_base[yy_current_state] != 1675 );
01514 
01515 yy_find_action:
01516                 yy_act = yy_accept[yy_current_state];
01517                 if ( yy_act == 0 )
01518                         { /* have to back up */
01519                         yy_cp = yyg->yy_last_accepting_cpos;
01520                         yy_current_state = yyg->yy_last_accepting_state;
01521                         yy_act = yy_accept[yy_current_state];
01522                         }
01523 
01524                 YY_DO_BEFORE_ACTION;
01525 
01526                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01527                         {
01528                         int yyl;
01529                         for ( yyl = 0; yyl < yyleng; ++yyl )
01530                                 if ( yytext[yyl] == '\n' )
01531                                            
01532     do{ yylineno++;
01533         yycolumn=0;
01534     }while(0)
01535 ;
01536                         }
01537 
01538 do_action:      /* This label is used only to access EOF actions. */
01539 
01540                 switch ( yy_act )
01541         { /* beginning of action switch */
01542                         case 0: /* must back up */
01543                         /* undo the effects of YY_DO_BEFORE_ACTION */
01544                         *yy_cp = yyg->yy_hold_char;
01545                         yy_cp = yyg->yy_last_accepting_cpos;
01546                         yy_current_state = yyg->yy_last_accepting_state;
01547                         goto yy_find_action;
01548 
01549 case 1:
01550 /* rule 1 can match eol */
01551 YY_RULE_SETUP
01552 #line 121 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01553 
01554         YY_BREAK
01555 /* General patterns matched in more than one element */
01556 case 2:
01557 YY_RULE_SETUP
01558 #line 126 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01559 {YY_PRINT;  yylval->sval = yytext; return(QUOTE);}
01560         YY_BREAK
01561 case 3:
01562 /* rule 3 can match eol */
01563 YY_RULE_SETUP
01564 #line 127 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01565 {YY_PRINT; return(GREATERTHAN);}
01566         YY_BREAK
01567 case 4:
01568 YY_RULE_SETUP
01569 #line 128 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01570 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
01571         YY_BREAK
01572 case 5:
01573 YY_RULE_SETUP
01574 #line 130 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01575 {YY_PRINT; 
01576 char *yytextEnd;
01577 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
01578         if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
01579                 std::ostringstream outStr;
01580                 outStr << "encountered a spurious character in the lexer" << endl;
01581                 outStr << "The first character is: ";
01582                 outStr <<  yytext;
01583                 outStr << endl;
01584                 outStr << "See line number: " << yylineno << endl;  
01585                 throw ErrorClass( outStr.str());
01586         }
01587 return(DOUBLE);}
01588         YY_BREAK
01589 case 6:
01590 /* rule 6 can match eol */
01591 YY_RULE_SETUP
01592 #line 146 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01593 {YY_PRINT;  return(ENDOFELEMENT);}
01594         YY_BREAK
01595 case 7:
01596 /* rule 7 can match eol */
01597 YY_RULE_SETUP
01598 #line 149 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01599 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
01600         YY_BREAK
01601 case 8:
01602 /* rule 8 can match eol */
01603 YY_RULE_SETUP
01604 #line 150 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01605 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
01606         YY_BREAK
01607 case 9:
01608 /* rule 9 can match eol */
01609 YY_RULE_SETUP
01610 #line 151 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01611 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
01612         YY_BREAK
01613 case 10:
01614 /* rule 10 can match eol */
01615 YY_RULE_SETUP
01616 #line 152 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01617 {YY_PRINT; return(NUMBEROFQTERMSATT);}
01618         YY_BREAK
01619 case 11:
01620 /* rule 11 can match eol */
01621 YY_RULE_SETUP
01622 #line 153 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01623 {YY_PRINT; return(NUMBEROFNONLINEAREXPRESSIONS);}
01624         YY_BREAK
01625 case 12:
01626 /* rule 12 can match eol */
01627 YY_RULE_SETUP
01628 #line 154 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01629 {YY_PRINT; return(NUMBEROFSTAGESATT);}
01630         YY_BREAK
01631 case 13:
01632 /* rule 13 can match eol */
01633 YY_RULE_SETUP
01634 #line 157 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01635 {YY_PRINT;   return(IDXATT);}
01636         YY_BREAK
01637 case 14:
01638 /* rule 14 can match eol */
01639 YY_RULE_SETUP
01640 #line 158 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01641 {YY_PRINT;   return(IDXONEATT);}
01642         YY_BREAK
01643 case 15:
01644 /* rule 15 can match eol */
01645 YY_RULE_SETUP
01646 #line 159 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01647 {YY_PRINT;   return(IDXTWOATT);}
01648         YY_BREAK
01649 case 16:
01650 /* rule 16 can match eol */
01651 YY_RULE_SETUP
01652 #line 160 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01653 {YY_PRINT;   return(COEFATT);}
01654         YY_BREAK
01655 case 17:
01656 /* rule 17 can match eol */
01657 YY_RULE_SETUP
01658 #line 161 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01659 {YY_PRINT;  return(VALUEATT);}
01660         YY_BREAK
01661 case 18:
01662 /* rule 18 can match eol */
01663 YY_RULE_SETUP
01664 #line 162 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01665 {YY_PRINT; return(STARTIDXATT);}
01666         YY_BREAK
01667 case 19:
01668 /* rule 19 can match eol */
01669 YY_RULE_SETUP
01670 #line 163 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01671 {YY_PRINT; return(HORIZONATT);}
01672         YY_BREAK
01673 case 20:
01674 /* rule 20 can match eol */
01675 YY_RULE_SETUP
01676 #line 164 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01677 {YY_PRINT; return(STARTATT);}
01678         YY_BREAK
01679 case 21:
01680 /* rule 21 can match eol */
01681 YY_RULE_SETUP
01682 #line 166 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01683 {YY_PRINT; BEGIN doublequoteattributetext; return(IDATT);}
01684         YY_BREAK
01685 case 22:
01686 /* rule 22 can match eol */
01687 YY_RULE_SETUP
01688 #line 167 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01689 {YY_PRINT; BEGIN singlequoteattributetext; return(IDATT);}
01690         YY_BREAK
01691 case 23:
01692 /* rule 23 can match eol */
01693 YY_RULE_SETUP
01694 #line 168 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01695 {YY_PRINT; BEGIN doublequoteattributetext; return(TYPEATT);}
01696         YY_BREAK
01697 case 24:
01698 /* rule 24 can match eol */
01699 YY_RULE_SETUP
01700 #line 169 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01701 {YY_PRINT; BEGIN singlequoteattributetext; return(TYPEATT);}
01702         YY_BREAK
01703 case 25:
01704 /* rule 25 can match eol */
01705 YY_RULE_SETUP
01706 #line 170 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01707 {YY_PRINT; BEGIN doublequoteattributetext; return(NAMEATT);}
01708         YY_BREAK
01709 case 26:
01710 /* rule 26 can match eol */
01711 YY_RULE_SETUP
01712 #line 171 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01713 {YY_PRINT; BEGIN singlequoteattributetext; return(NAMEATT);}
01714         YY_BREAK
01715 /* patterns for <quadraticCoefficients> */
01716 case 27:
01717 /* rule 27 can match eol */
01718 YY_RULE_SETUP
01719 #line 174 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01720 {YY_PRINT; return(OSILEND);}
01721         YY_BREAK
01722 case 28:
01723 /* rule 28 can match eol */
01724 YY_RULE_SETUP
01725 #line 175 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01726 {YY_PRINT; return(INSTANCEDATAEND);}
01727         YY_BREAK
01728 case 29:
01729 /* rule 29 can match eol */
01730 YY_RULE_SETUP
01731 #line 176 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01732 {YY_PRINT; return(QUADRATICCOEFFICIENTSSTART);}
01733         YY_BREAK
01734 case 30:
01735 /* rule 30 can match eol */
01736 YY_RULE_SETUP
01737 #line 177 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01738 {YY_PRINT; return(QUADRATICCOEFFICIENTSEND);}
01739         YY_BREAK
01740 case 31:
01741 /* rule 31 can match eol */
01742 YY_RULE_SETUP
01743 #line 178 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01744 {YY_PRINT; return(QTERMSTART);}
01745         YY_BREAK
01746 case 32:
01747 /* rule 32 can match eol */
01748 YY_RULE_SETUP
01749 #line 179 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01750 {YY_PRINT; return(QTERMEND);}
01751         YY_BREAK
01752 /* patterns for <nonlinearExpressions> */
01753 case 33:
01754 /* rule 33 can match eol */
01755 YY_RULE_SETUP
01756 #line 182 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01757 {YY_PRINT;  return(NONLINEAREXPRESSIONSSTART);}
01758         YY_BREAK
01759 case 34:
01760 /* rule 34 can match eol */
01761 YY_RULE_SETUP
01762 #line 183 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01763 {YY_PRINT; return(NONLINEAREXPRESSIONSEND);}
01764         YY_BREAK
01765 case 35:
01766 /* rule 35 can match eol */
01767 YY_RULE_SETUP
01768 #line 184 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01769 {YY_PRINT; return(NLSTART);}
01770         YY_BREAK
01771 case 36:
01772 /* rule 36 can match eol */
01773 YY_RULE_SETUP
01774 #line 185 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01775 {YY_PRINT; return(NLEND);}
01776         YY_BREAK
01777 case 37:
01778 /* rule 37 can match eol */
01779 YY_RULE_SETUP
01780 #line 186 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01781 {YY_PRINT; return(TIMESSTART);}
01782         YY_BREAK
01783 case 38:
01784 /* rule 38 can match eol */
01785 YY_RULE_SETUP
01786 #line 187 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01787 {YY_PRINT; return(TIMESEND);}
01788         YY_BREAK
01789 case 39:
01790 /* rule 39 can match eol */
01791 YY_RULE_SETUP
01792 #line 188 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01793 {YY_PRINT; return(DIVIDESTART);}
01794         YY_BREAK
01795 case 40:
01796 /* rule 40 can match eol */
01797 YY_RULE_SETUP
01798 #line 189 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01799 {YY_PRINT; return(DIVIDEEND);}
01800         YY_BREAK
01801 case 41:
01802 /* rule 41 can match eol */
01803 YY_RULE_SETUP
01804 #line 190 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01805 {YY_PRINT; return(PLUSSTART);}
01806         YY_BREAK
01807 case 42:
01808 /* rule 42 can match eol */
01809 YY_RULE_SETUP
01810 #line 191 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01811 {YY_PRINT; return(PLUSEND);}
01812         YY_BREAK
01813 case 43:
01814 /* rule 43 can match eol */
01815 YY_RULE_SETUP
01816 #line 192 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01817 {YY_PRINT; return(MINUSSTART);}
01818         YY_BREAK
01819 case 44:
01820 /* rule 44 can match eol */
01821 YY_RULE_SETUP
01822 #line 193 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01823 {YY_PRINT; return(MINUSEND);}
01824         YY_BREAK
01825 case 45:
01826 /* rule 45 can match eol */
01827 YY_RULE_SETUP
01828 #line 194 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01829 {YY_PRINT; return(NEGATESTART);}
01830         YY_BREAK
01831 case 46:
01832 /* rule 46 can match eol */
01833 YY_RULE_SETUP
01834 #line 195 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01835 {YY_PRINT; return(NEGATEEND);}
01836         YY_BREAK
01837 case 47:
01838 /* rule 47 can match eol */
01839 YY_RULE_SETUP
01840 #line 196 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01841 {YY_PRINT; return(POWERSTART);}
01842         YY_BREAK
01843 case 48:
01844 /* rule 48 can match eol */
01845 YY_RULE_SETUP
01846 #line 197 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01847 {YY_PRINT; return(POWEREND);}
01848         YY_BREAK
01849 case 49:
01850 /* rule 49 can match eol */
01851 YY_RULE_SETUP
01852 #line 198 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01853 {YY_PRINT; return(LNSTART);}
01854         YY_BREAK
01855 case 50:
01856 /* rule 50 can match eol */
01857 YY_RULE_SETUP
01858 #line 199 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01859 {YY_PRINT; return(LNEND);}
01860         YY_BREAK
01861 case 51:
01862 /* rule 51 can match eol */
01863 YY_RULE_SETUP
01864 #line 200 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01865 {YY_PRINT; return(SQRTSTART);}
01866         YY_BREAK
01867 case 52:
01868 /* rule 52 can match eol */
01869 YY_RULE_SETUP
01870 #line 201 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01871 {YY_PRINT; return(SQRTEND);}
01872         YY_BREAK
01873 case 53:
01874 /* rule 53 can match eol */
01875 YY_RULE_SETUP
01876 #line 202 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01877 {YY_PRINT; return(SQUARESTART);}
01878         YY_BREAK
01879 case 54:
01880 /* rule 54 can match eol */
01881 YY_RULE_SETUP
01882 #line 203 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01883 {YY_PRINT; return(SQUAREEND);}
01884         YY_BREAK
01885 case 55:
01886 /* rule 55 can match eol */
01887 YY_RULE_SETUP
01888 #line 204 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01889 {YY_PRINT; return(SINSTART);}
01890         YY_BREAK
01891 case 56:
01892 /* rule 56 can match eol */
01893 YY_RULE_SETUP
01894 #line 205 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01895 {YY_PRINT; return(SINEND);}
01896         YY_BREAK
01897 case 57:
01898 /* rule 57 can match eol */
01899 YY_RULE_SETUP
01900 #line 206 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01901 {YY_PRINT; return(COSSTART);}
01902         YY_BREAK
01903 case 58:
01904 /* rule 58 can match eol */
01905 YY_RULE_SETUP
01906 #line 207 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01907 {YY_PRINT; return(COSEND);}
01908         YY_BREAK
01909 case 59:
01910 /* rule 59 can match eol */
01911 YY_RULE_SETUP
01912 #line 208 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01913 {YY_PRINT; return(EXPSTART);}
01914         YY_BREAK
01915 case 60:
01916 /* rule 60 can match eol */
01917 YY_RULE_SETUP
01918 #line 209 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01919 {YY_PRINT; return(EXPEND);}
01920         YY_BREAK
01921 case 61:
01922 /* rule 61 can match eol */
01923 YY_RULE_SETUP
01924 #line 210 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01925 {YY_PRINT; return(ABSSTART);}
01926         YY_BREAK
01927 case 62:
01928 /* rule 62 can match eol */
01929 YY_RULE_SETUP
01930 #line 211 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01931 {YY_PRINT; return(ABSEND);}
01932         YY_BREAK
01933 case 63:
01934 /* rule 63 can match eol */
01935 YY_RULE_SETUP
01936 #line 212 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01937 {YY_PRINT; return(ERFSTART);}
01938         YY_BREAK
01939 case 64:
01940 /* rule 64 can match eol */
01941 YY_RULE_SETUP
01942 #line 213 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01943 {YY_PRINT; return(ERFEND);}
01944         YY_BREAK
01945 case 65:
01946 /* rule 65 can match eol */
01947 YY_RULE_SETUP
01948 #line 214 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01949 {YY_PRINT; return(IFSTART);}
01950         YY_BREAK
01951 case 66:
01952 /* rule 66 can match eol */
01953 YY_RULE_SETUP
01954 #line 215 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01955 {YY_PRINT; return(IFEND);}
01956         YY_BREAK
01957 case 67:
01958 /* rule 67 can match eol */
01959 YY_RULE_SETUP
01960 #line 216 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01961 {YY_PRINT; return(MAXSTART);}
01962         YY_BREAK
01963 case 68:
01964 /* rule 68 can match eol */
01965 YY_RULE_SETUP
01966 #line 217 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01967 {YY_PRINT; return(MAXEND);}
01968         YY_BREAK
01969 case 69:
01970 /* rule 69 can match eol */
01971 YY_RULE_SETUP
01972 #line 218 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01973 {YY_PRINT; return(MINSTART);}
01974         YY_BREAK
01975 case 70:
01976 /* rule 70 can match eol */
01977 YY_RULE_SETUP
01978 #line 219 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01979 {YY_PRINT; return(MINEND);}
01980         YY_BREAK
01981 case 71:
01982 /* rule 71 can match eol */
01983 YY_RULE_SETUP
01984 #line 220 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01985 {YY_PRINT; return(SUMSTART);}
01986         YY_BREAK
01987 case 72:
01988 /* rule 72 can match eol */
01989 YY_RULE_SETUP
01990 #line 221 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01991 {YY_PRINT; return(SUMEND);}
01992         YY_BREAK
01993 case 73:
01994 /* rule 73 can match eol */
01995 YY_RULE_SETUP
01996 #line 222 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
01997 {YY_PRINT; return(ALLDIFFSTART);}
01998         YY_BREAK
01999 case 74:
02000 /* rule 74 can match eol */
02001 YY_RULE_SETUP
02002 #line 223 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02003 {YY_PRINT; return(ALLDIFFEND);}
02004         YY_BREAK
02005 case 75:
02006 /* rule 75 can match eol */
02007 YY_RULE_SETUP
02008 #line 224 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02009 {YY_PRINT; return(PRODUCTSTART);}
02010         YY_BREAK
02011 case 76:
02012 /* rule 76 can match eol */
02013 YY_RULE_SETUP
02014 #line 225 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02015 {YY_PRINT; return(PRODUCTEND);}
02016         YY_BREAK
02017 case 77:
02018 /* rule 77 can match eol */
02019 YY_RULE_SETUP
02020 #line 227 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02021 {YY_PRINT; return(NUMBERSTART);}
02022         YY_BREAK
02023 case 78:
02024 /* rule 78 can match eol */
02025 YY_RULE_SETUP
02026 #line 228 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02027 {YY_PRINT; return(NUMBEREND);}
02028         YY_BREAK
02029 case 79:
02030 /* rule 79 can match eol */
02031 YY_RULE_SETUP
02032 #line 229 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02033 {YY_PRINT; return(ESTART);}
02034         YY_BREAK
02035 case 80:
02036 /* rule 80 can match eol */
02037 YY_RULE_SETUP
02038 #line 230 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02039 {YY_PRINT; return(EEND);}
02040         YY_BREAK
02041 case 81:
02042 /* rule 81 can match eol */
02043 YY_RULE_SETUP
02044 #line 231 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02045 {YY_PRINT; return(PISTART);}
02046         YY_BREAK
02047 case 82:
02048 /* rule 82 can match eol */
02049 YY_RULE_SETUP
02050 #line 232 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02051 {YY_PRINT; return(PIEND);}
02052         YY_BREAK
02053 case 83:
02054 /* rule 83 can match eol */
02055 YY_RULE_SETUP
02056 #line 233 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02057 {YY_PRINT;  return(VARIABLESTART);}
02058         YY_BREAK
02059 case 84:
02060 /* rule 84 can match eol */
02061 YY_RULE_SETUP
02062 #line 234 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02063 {YY_PRINT; return(VARIABLEEND);}
02064         YY_BREAK
02065 /* patterns for <timeDomain> element */
02066 case 85:
02067 /* rule 85 can match eol */
02068 YY_RULE_SETUP
02069 #line 237 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02070 {YY_PRINT; return(TIMEDOMAINSTART);}
02071         YY_BREAK
02072 case 86:
02073 /* rule 86 can match eol */
02074 YY_RULE_SETUP
02075 #line 238 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02076 {YY_PRINT; return(TIMEDOMAINEND);}
02077         YY_BREAK
02078 case 87:
02079 /* rule 87 can match eol */
02080 YY_RULE_SETUP
02081 #line 239 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02082 {YY_PRINT; return(STAGESSTART);}
02083         YY_BREAK
02084 case 88:
02085 /* rule 88 can match eol */
02086 YY_RULE_SETUP
02087 #line 240 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02088 {YY_PRINT; return(STAGESEND);}
02089         YY_BREAK
02090 case 89:
02091 /* rule 89 can match eol */
02092 YY_RULE_SETUP
02093 #line 241 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02094 {YY_PRINT; return(STAGESTART);}
02095         YY_BREAK
02096 case 90:
02097 /* rule 90 can match eol */
02098 YY_RULE_SETUP
02099 #line 242 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02100 {YY_PRINT; return(STAGEEND);}
02101         YY_BREAK
02102 case 91:
02103 /* rule 91 can match eol */
02104 YY_RULE_SETUP
02105 #line 243 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02106 {YY_PRINT; return(VARIABLESSTART);}
02107         YY_BREAK
02108 case 92:
02109 /* rule 92 can match eol */
02110 YY_RULE_SETUP
02111 #line 244 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02112 {YY_PRINT; return(VARIABLESEND);}
02113         YY_BREAK
02114 case 93:
02115 /* rule 93 can match eol */
02116 YY_RULE_SETUP
02117 #line 245 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02118 {YY_PRINT; return(CONSTRAINTSSTART);}
02119         YY_BREAK
02120 case 94:
02121 /* rule 94 can match eol */
02122 YY_RULE_SETUP
02123 #line 246 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02124 {YY_PRINT; return(CONSTRAINTSEND);}
02125         YY_BREAK
02126 case 95:
02127 /* rule 95 can match eol */
02128 YY_RULE_SETUP
02129 #line 247 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02130 {YY_PRINT; return(OBJECTIVESSTART);}
02131         YY_BREAK
02132 case 96:
02133 /* rule 96 can match eol */
02134 YY_RULE_SETUP
02135 #line 248 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02136 {YY_PRINT; return(OBJECTIVESEND);}
02137         YY_BREAK
02138 case 97:
02139 /* rule 97 can match eol */
02140 YY_RULE_SETUP
02141 #line 249 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02142 {YY_PRINT; return(VARSTART);}
02143         YY_BREAK
02144 case 98:
02145 /* rule 98 can match eol */
02146 YY_RULE_SETUP
02147 #line 250 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02148 {YY_PRINT; return(VAREND);}
02149         YY_BREAK
02150 case 99:
02151 /* rule 99 can match eol */
02152 YY_RULE_SETUP
02153 #line 251 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02154 {YY_PRINT; return(CONSTART);}
02155         YY_BREAK
02156 case 100:
02157 /* rule 100 can match eol */
02158 YY_RULE_SETUP
02159 #line 252 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02160 {YY_PRINT; return(CONEND);}
02161         YY_BREAK
02162 case 101:
02163 /* rule 101 can match eol */
02164 YY_RULE_SETUP
02165 #line 253 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02166 {YY_PRINT; return(OBJSTART);}
02167         YY_BREAK
02168 case 102:
02169 /* rule 102 can match eol */
02170 YY_RULE_SETUP
02171 #line 254 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02172 {YY_PRINT; return(OBJEND);}
02173         YY_BREAK
02174 case 103:
02175 /* rule 103 can match eol */
02176 YY_RULE_SETUP
02177 #line 255 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02178 {YY_PRINT; return(INTERVALSTART);}
02179         YY_BREAK
02180 case 104:
02181 /* rule 104 can match eol */
02182 YY_RULE_SETUP
02183 #line 256 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02184 {YY_PRINT; return(INTERVALEND);}
02185         YY_BREAK
02186 /* patterns for <parametersAndStochasticElements> 
02187 {xmlwhitespace}*<parametersAndStochasticElements {YY_PRINT; return(PARAMETERSSTART);}
02188 {xmlwhitespace}*<\/parametersAndStochasticElements{xmlwhitespace}*>{xmlwhitespace}* {YY_PRINT; return(PARAMETERSEND);}
02189 {xmlwhitespace}*<param {YY_PRINT; return(PARAMSTART);}
02190 {xmlwhitespace}*<\/param{xmlwhitespace}*>{xmlwhitespace}* {YY_PRINT; return(PARAMEND);}
02191 */
02192 case 105:
02193 YY_RULE_SETUP
02194 #line 266 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02195 BEGIN comment;
02196         YY_BREAK
02197 case 106:
02198 #line 268 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02199 case 107:
02200 /* rule 107 can match eol */
02201 YY_RULE_SETUP
02202 #line 268 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02203 ;
02204         YY_BREAK
02205 case 108:
02206 YY_RULE_SETUP
02207 #line 269 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02208 BEGIN 0;
02209         YY_BREAK
02210 case 109:
02211 YY_RULE_SETUP
02212 #line 271 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02213 BEGIN xmldeclaration;
02214         YY_BREAK
02215 case 110:
02216 #line 273 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02217 case 111:
02218 /* rule 111 can match eol */
02219 YY_RULE_SETUP
02220 #line 273 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02221 ;
02222         YY_BREAK
02223 case 112:
02224 YY_RULE_SETUP
02225 #line 274 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02226 BEGIN 0;
02227         YY_BREAK
02228 case 113:
02229 /* rule 113 can match eol */
02230 YY_RULE_SETUP
02231 #line 277 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02232 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/ yylval->sval = yytext; return(ATTRIBUTETEXT);}
02233         YY_BREAK
02234 case 114:
02235 /* rule 114 can match eol */
02236 YY_RULE_SETUP
02237 #line 278 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02238 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/ yylval->sval = yytext; return(ATTRIBUTETEXT);}
02239         YY_BREAK
02240 case 115:
02241 YY_RULE_SETUP
02242 #line 280 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02243 {  
02244         std::string error;
02245         std::ostringstream outStr;
02246         outStr << "encountered a spurious character in the lexer" << endl;
02247         outStr << "The first character is: ";
02248         outStr <<  yytext;
02249         outStr << endl;
02250         outStr << "See line number: " << yylineno << endl;  
02251         error = outStr.str();
02252         throw ErrorClass( error);
02253 }
02254         YY_BREAK
02255 case 116:
02256 YY_RULE_SETUP
02257 #line 292 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
02258 ECHO;
02259         YY_BREAK
02260 #line 2261 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.cpp"
02261 case YY_STATE_EOF(INITIAL):
02262 case YY_STATE_EOF(doublequoteattributetext):
02263 case YY_STATE_EOF(singlequoteattributetext):
02264 case YY_STATE_EOF(startelement):
02265 case YY_STATE_EOF(osilattributetext):
02266 case YY_STATE_EOF(elementtext):
02267 case YY_STATE_EOF(comment):
02268 case YY_STATE_EOF(xmldeclaration):
02269         yyterminate();
02270 
02271         case YY_END_OF_BUFFER:
02272                 {
02273                 /* Amount of text matched not including the EOB char. */
02274                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
02275 
02276                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02277                 *yy_cp = yyg->yy_hold_char;
02278                 YY_RESTORE_YY_MORE_OFFSET
02279 
02280                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02281                         {
02282                         /* We're scanning a new file or input source.  It's
02283                          * possible that this happened because the user
02284                          * just pointed yyin at a new source and called
02285                          * osillex().  If so, then we have to assure
02286                          * consistency between YY_CURRENT_BUFFER and our
02287                          * globals.  Here is the right place to do so, because
02288                          * this is the first action (other than possibly a
02289                          * back-up) that will match for the new input source.
02290                          */
02291                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02292                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
02293                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02294                         }
02295 
02296                 /* Note that here we test for yy_c_buf_p "<=" to the position
02297                  * of the first EOB in the buffer, since yy_c_buf_p will
02298                  * already have been incremented past the NUL character
02299                  * (since all states make transitions on EOB to the
02300                  * end-of-buffer state).  Contrast this with the test
02301                  * in input().
02302                  */
02303                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02304                         { /* This was really a NUL. */
02305                         yy_state_type yy_next_state;
02306 
02307                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02308 
02309                         yy_current_state = yy_get_previous_state( yyscanner );
02310 
02311                         /* Okay, we're now positioned to make the NUL
02312                          * transition.  We couldn't have
02313                          * yy_get_previous_state() go ahead and do it
02314                          * for us because it doesn't know how to deal
02315                          * with the possibility of jamming (and we don't
02316                          * want to build jamming into it because then it
02317                          * will run more slowly).
02318                          */
02319 
02320                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02321 
02322                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02323 
02324                         if ( yy_next_state )
02325                                 {
02326                                 /* Consume the NUL. */
02327                                 yy_cp = ++yyg->yy_c_buf_p;
02328                                 yy_current_state = yy_next_state;
02329                                 goto yy_match;
02330                                 }
02331 
02332                         else
02333                                 {
02334                                 yy_cp = yyg->yy_c_buf_p;
02335                                 goto yy_find_action;
02336                                 }
02337                         }
02338 
02339                 else switch ( yy_get_next_buffer( yyscanner ) )
02340                         {
02341                         case EOB_ACT_END_OF_FILE:
02342                                 {
02343                                 yyg->yy_did_buffer_switch_on_eof = 0;
02344 
02345                                 if ( osilwrap(yyscanner ) )
02346                                         {
02347                                         /* Note: because we've taken care in
02348                                          * yy_get_next_buffer() to have set up
02349                                          * yytext, we can now set up
02350                                          * yy_c_buf_p so that if some total
02351                                          * hoser (like flex itself) wants to
02352                                          * call the scanner after we return the
02353                                          * YY_NULL, it'll still work - another
02354                                          * YY_NULL will get returned.
02355                                          */
02356                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02357 
02358                                         yy_act = YY_STATE_EOF(YY_START);
02359                                         goto do_action;
02360                                         }
02361 
02362                                 else
02363                                         {
02364                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02365                                                 YY_NEW_FILE;
02366                                         }
02367                                 break;
02368                                 }
02369 
02370                         case EOB_ACT_CONTINUE_SCAN:
02371                                 yyg->yy_c_buf_p =
02372                                         yyg->yytext_ptr + yy_amount_of_matched_text;
02373 
02374                                 yy_current_state = yy_get_previous_state( yyscanner );
02375 
02376                                 yy_cp = yyg->yy_c_buf_p;
02377                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02378                                 goto yy_match;
02379 
02380                         case EOB_ACT_LAST_MATCH:
02381                                 yyg->yy_c_buf_p =
02382                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02383 
02384                                 yy_current_state = yy_get_previous_state( yyscanner );
02385 
02386                                 yy_cp = yyg->yy_c_buf_p;
02387                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02388                                 goto yy_find_action;
02389                         }
02390                 break;
02391                 }
02392 
02393         default:
02394                 YY_FATAL_ERROR(
02395                         "fatal flex scanner internal error--no action found" );
02396         } /* end of action switch */
02397                 } /* end of scanning one token */
02398 } /* end of osillex */
02399 
02400 /* yy_get_next_buffer - try to read in a new buffer
02401  *
02402  * Returns a code representing an action:
02403  *      EOB_ACT_LAST_MATCH -
02404  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02405  *      EOB_ACT_END_OF_FILE - end of file
02406  */
02407 static int yy_get_next_buffer (yyscan_t yyscanner)
02408 {
02409     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02410         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02411         register char *source = yyg->yytext_ptr;
02412         register int number_to_move, i;
02413         int ret_val;
02414 
02415         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02416                 YY_FATAL_ERROR(
02417                 "fatal flex scanner internal error--end of buffer missed" );
02418 
02419         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02420                 { /* Don't try to fill the buffer, so this is an EOF. */
02421                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02422                         {
02423                         /* We matched a single character, the EOB, so
02424                          * treat this as a final EOF.
02425                          */
02426                         return EOB_ACT_END_OF_FILE;
02427                         }
02428 
02429                 else
02430                         {
02431                         /* We matched some text prior to the EOB, first
02432                          * process it.
02433                          */
02434                         return EOB_ACT_LAST_MATCH;
02435                         }
02436                 }
02437 
02438         /* Try to read more data. */
02439 
02440         /* First move last chars to start of buffer. */
02441         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02442 
02443         for ( i = 0; i < number_to_move; ++i )
02444                 *(dest++) = *(source++);
02445 
02446         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02447                 /* don't do the read, it's not guaranteed to return an EOF,
02448                  * just force an EOF
02449                  */
02450                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02451 
02452         else
02453                 {
02454                         int num_to_read =
02455                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02456 
02457                 while ( num_to_read <= 0 )
02458                         { /* Not enough room in the buffer - grow it. */
02459 
02460                         /* just a shorter name for the current buffer */
02461                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02462 
02463                         int yy_c_buf_p_offset =
02464                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02465 
02466                         if ( b->yy_is_our_buffer )
02467                                 {
02468                                 int new_size = b->yy_buf_size * 2;
02469 
02470                                 if ( new_size <= 0 )
02471                                         b->yy_buf_size += b->yy_buf_size / 8;
02472                                 else
02473                                         b->yy_buf_size *= 2;
02474 
02475                                 b->yy_ch_buf = (char *)
02476                                         /* Include room in for 2 EOB chars. */
02477                                         osilrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02478                                 }
02479                         else
02480                                 /* Can't grow it, we don't own it. */
02481                                 b->yy_ch_buf = 0;
02482 
02483                         if ( ! b->yy_ch_buf )
02484                                 YY_FATAL_ERROR(
02485                                 "fatal error - scanner input buffer overflow" );
02486 
02487                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02488 
02489                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02490                                                 number_to_move - 1;
02491 
02492                         }
02493 
02494                 if ( num_to_read > YY_READ_BUF_SIZE )
02495                         num_to_read = YY_READ_BUF_SIZE;
02496 
02497                 /* Read in more data. */
02498                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02499                         yyg->yy_n_chars, (size_t) num_to_read );
02500 
02501                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02502                 }
02503 
02504         if ( yyg->yy_n_chars == 0 )
02505                 {
02506                 if ( number_to_move == YY_MORE_ADJ )
02507                         {
02508                         ret_val = EOB_ACT_END_OF_FILE;
02509                         osilrestart(yyin  ,yyscanner);
02510                         }
02511 
02512                 else
02513                         {
02514                         ret_val = EOB_ACT_LAST_MATCH;
02515                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02516                                 YY_BUFFER_EOF_PENDING;
02517                         }
02518                 }
02519 
02520         else
02521                 ret_val = EOB_ACT_CONTINUE_SCAN;
02522 
02523         if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02524                 /* Extend the array by 50%, plus the number we really need. */
02525                 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
02526                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osilrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
02527                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02528                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02529         }
02530 
02531         yyg->yy_n_chars += number_to_move;
02532         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02533         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02534 
02535         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02536 
02537         return ret_val;
02538 }
02539 
02540 /* yy_get_previous_state - get the state just before the EOB char was reached */
02541 
02542     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02543 {
02544         register yy_state_type yy_current_state;
02545         register char *yy_cp;
02546     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02547 
02548         yy_current_state = yyg->yy_start;
02549 
02550         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02551                 {
02552                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02553                 if ( yy_accept[yy_current_state] )
02554                         {
02555                         yyg->yy_last_accepting_state = yy_current_state;
02556                         yyg->yy_last_accepting_cpos = yy_cp;
02557                         }
02558                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02559                         {
02560                         yy_current_state = (int) yy_def[yy_current_state];
02561                         if ( yy_current_state >= 776 )
02562                                 yy_c = yy_meta[(unsigned int) yy_c];
02563                         }
02564                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02565                 }
02566 
02567         return yy_current_state;
02568 }
02569 
02570 /* yy_try_NUL_trans - try to make a transition on the NUL character
02571  *
02572  * synopsis
02573  *      next_state = yy_try_NUL_trans( current_state );
02574  */
02575     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
02576 {
02577         register int yy_is_jam;
02578     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
02579         register char *yy_cp = yyg->yy_c_buf_p;
02580 
02581         register YY_CHAR yy_c = 1;
02582         if ( yy_accept[yy_current_state] )
02583                 {
02584                 yyg->yy_last_accepting_state = yy_current_state;
02585                 yyg->yy_last_accepting_cpos = yy_cp;
02586                 }
02587         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02588                 {
02589                 yy_current_state = (int) yy_def[yy_current_state];
02590                 if ( yy_current_state >= 776 )
02591                         yy_c = yy_meta[(unsigned int) yy_c];
02592                 }
02593         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02594         yy_is_jam = (yy_current_state == 775);
02595 
02596         return yy_is_jam ? 0 : yy_current_state;
02597 }
02598 
02599 #ifndef YY_NO_INPUT
02600 #ifdef __cplusplus
02601     static int yyinput (yyscan_t yyscanner)
02602 #else
02603     static int input  (yyscan_t yyscanner)
02604 #endif
02605 
02606 {
02607         int c;
02608     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02609 
02610         *yyg->yy_c_buf_p = yyg->yy_hold_char;
02611 
02612         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02613                 {
02614                 /* yy_c_buf_p now points to the character we want to return.
02615                  * If this occurs *before* the EOB characters, then it's a
02616                  * valid NUL; if not, then we've hit the end of the buffer.
02617                  */
02618                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02619                         /* This was really a NUL. */
02620                         *yyg->yy_c_buf_p = '\0';
02621 
02622                 else
02623                         { /* need more input */
02624                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02625                         ++yyg->yy_c_buf_p;
02626 
02627                         switch ( yy_get_next_buffer( yyscanner ) )
02628                                 {
02629                                 case EOB_ACT_LAST_MATCH:
02630                                         /* This happens because yy_g_n_b()
02631                                          * sees that we've accumulated a
02632                                          * token and flags that we need to
02633                                          * try matching the token before
02634                                          * proceeding.  But for input(),
02635                                          * there's no matching to consider.
02636                                          * So convert the EOB_ACT_LAST_MATCH
02637                                          * to EOB_ACT_END_OF_FILE.
02638                                          */
02639 
02640                                         /* Reset buffer status. */
02641                                         osilrestart(yyin ,yyscanner);
02642 
02643                                         /*FALLTHROUGH*/
02644 
02645                                 case EOB_ACT_END_OF_FILE:
02646                                         {
02647                                         if ( osilwrap(yyscanner ) )
02648                                                 return EOF;
02649 
02650                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02651                                                 YY_NEW_FILE;
02652 #ifdef __cplusplus
02653                                         return yyinput(yyscanner);
02654 #else
02655                                         return input(yyscanner);
02656 #endif
02657                                         }
02658 
02659                                 case EOB_ACT_CONTINUE_SCAN:
02660                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
02661                                         break;
02662                                 }
02663                         }
02664                 }
02665 
02666         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
02667         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
02668         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
02669 
02670         if ( c == '\n' )
02671                    
02672     do{ yylineno++;
02673         yycolumn=0;
02674     }while(0)
02675 ;
02676 
02677         return c;
02678 }
02679 #endif  /* ifndef YY_NO_INPUT */
02680 
02686     void osilrestart  (FILE * input_file , yyscan_t yyscanner)
02687 {
02688     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02689 
02690         if ( ! YY_CURRENT_BUFFER ){
02691         osilensure_buffer_stack (yyscanner);
02692                 YY_CURRENT_BUFFER_LVALUE =
02693             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02694         }
02695 
02696         osil_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
02697         osil_load_buffer_state(yyscanner );
02698 }
02699 
02704     void osil_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
02705 {
02706     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02707 
02708         /* TODO. We should be able to replace this entire function body
02709          * with
02710          *              osilpop_buffer_state();
02711          *              osilpush_buffer_state(new_buffer);
02712      */
02713         osilensure_buffer_stack (yyscanner);
02714         if ( YY_CURRENT_BUFFER == new_buffer )
02715                 return;
02716 
02717         if ( YY_CURRENT_BUFFER )
02718                 {
02719                 /* Flush out information for old buffer. */
02720                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02721                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02722                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02723                 }
02724 
02725         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02726         osil_load_buffer_state(yyscanner );
02727 
02728         /* We don't actually know whether we did this switch during
02729          * EOF (osilwrap()) processing, but the only time this flag
02730          * is looked at is after osilwrap() is called, so it's safe
02731          * to go ahead and always set it.
02732          */
02733         yyg->yy_did_buffer_switch_on_eof = 1;
02734 }
02735 
02736 static void osil_load_buffer_state  (yyscan_t yyscanner)
02737 {
02738     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02739         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02740         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02741         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02742         yyg->yy_hold_char = *yyg->yy_c_buf_p;
02743 }
02744 
02751     YY_BUFFER_STATE osil_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
02752 {
02753         YY_BUFFER_STATE b;
02754     
02755         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02756         if ( ! b )
02757                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02758 
02759         b->yy_buf_size = size;
02760 
02761         /* yy_ch_buf has to be 2 characters longer than the size given because
02762          * we need to put in 2 end-of-buffer characters.
02763          */
02764         b->yy_ch_buf = (char *) osilalloc(b->yy_buf_size + 2 ,yyscanner );
02765         if ( ! b->yy_ch_buf )
02766                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02767 
02768         b->yy_is_our_buffer = 1;
02769 
02770         osil_init_buffer(b,file ,yyscanner);
02771 
02772         return b;
02773 }
02774 
02779     void osil_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02780 {
02781     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02782 
02783         if ( ! b )
02784                 return;
02785 
02786         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02787                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02788 
02789         if ( b->yy_is_our_buffer )
02790                 osilfree((void *) b->yy_ch_buf ,yyscanner );
02791 
02792         osilfree((void *) b ,yyscanner );
02793 }
02794 
02795 #ifndef __cplusplus
02796 extern int isatty (int );
02797 #endif /* __cplusplus */
02798     
02799 /* Initializes or reinitializes a buffer.
02800  * This function is sometimes called more than once on the same buffer,
02801  * such as during a osilrestart() or at EOF.
02802  */
02803     static void osil_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
02804 
02805 {
02806         int oerrno = errno;
02807     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02808 
02809         osil_flush_buffer(b ,yyscanner);
02810 
02811         b->yy_input_file = file;
02812         b->yy_fill_buffer = 1;
02813 
02814     /* If b is the current buffer, then osil_init_buffer was _probably_
02815      * called from osilrestart() or through yy_get_next_buffer.
02816      * In that case, we don't want to reset the lineno or column.
02817      */
02818     if (b != YY_CURRENT_BUFFER){
02819         b->yy_bs_lineno = 1;
02820         b->yy_bs_column = 0;
02821     }
02822 
02823         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02824     
02825         errno = oerrno;
02826 }
02827 
02832     void osil_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02833 {
02834     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02835         if ( ! b )
02836                 return;
02837 
02838         b->yy_n_chars = 0;
02839 
02840         /* We always need two end-of-buffer characters.  The first causes
02841          * a transition to the end-of-buffer state.  The second causes
02842          * a jam in that state.
02843          */
02844         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02845         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02846 
02847         b->yy_buf_pos = &b->yy_ch_buf[0];
02848 
02849         b->yy_at_bol = 1;
02850         b->yy_buffer_status = YY_BUFFER_NEW;
02851 
02852         if ( b == YY_CURRENT_BUFFER )
02853                 osil_load_buffer_state(yyscanner );
02854 }
02855 
02862 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02863 {
02864     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02865         if (new_buffer == NULL)
02866                 return;
02867 
02868         osilensure_buffer_stack(yyscanner);
02869 
02870         /* This block is copied from osil_switch_to_buffer. */
02871         if ( YY_CURRENT_BUFFER )
02872                 {
02873                 /* Flush out information for old buffer. */
02874                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02875                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02876                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02877                 }
02878 
02879         /* Only push if top exists. Otherwise, replace top. */
02880         if (YY_CURRENT_BUFFER)
02881                 yyg->yy_buffer_stack_top++;
02882         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02883 
02884         /* copied from osil_switch_to_buffer. */
02885         osil_load_buffer_state(yyscanner );
02886         yyg->yy_did_buffer_switch_on_eof = 1;
02887 }
02888 
02893 void osilpop_buffer_state (yyscan_t yyscanner)
02894 {
02895     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02896         if (!YY_CURRENT_BUFFER)
02897                 return;
02898 
02899         osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02900         YY_CURRENT_BUFFER_LVALUE = NULL;
02901         if (yyg->yy_buffer_stack_top > 0)
02902                 --yyg->yy_buffer_stack_top;
02903 
02904         if (YY_CURRENT_BUFFER) {
02905                 osil_load_buffer_state(yyscanner );
02906                 yyg->yy_did_buffer_switch_on_eof = 1;
02907         }
02908 }
02909 
02910 /* Allocates the stack if it does not exist.
02911  *  Guarantees space for at least one push.
02912  */
02913 static void osilensure_buffer_stack (yyscan_t yyscanner)
02914 {
02915         int num_to_alloc;
02916     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02917 
02918         if (!yyg->yy_buffer_stack) {
02919 
02920                 /* First allocation is just for 2 elements, since we don't know if this
02921                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
02922                  * immediate realloc on the next call.
02923          */
02924                 num_to_alloc = 1;
02925                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilalloc
02926                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02927                                                                 , yyscanner);
02928                 if ( ! yyg->yy_buffer_stack )
02929                         YY_FATAL_ERROR( "out of dynamic memory in osilensure_buffer_stack()" );
02930                                                                   
02931                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02932                                 
02933                 yyg->yy_buffer_stack_max = num_to_alloc;
02934                 yyg->yy_buffer_stack_top = 0;
02935                 return;
02936         }
02937 
02938         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02939 
02940                 /* Increase the buffer to prepare for a possible push. */
02941                 int grow_size = 8 /* arbitrary grow size */;
02942 
02943                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02944                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilrealloc
02945                                                                 (yyg->yy_buffer_stack,
02946                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02947                                                                 , yyscanner);
02948                 if ( ! yyg->yy_buffer_stack )
02949                         YY_FATAL_ERROR( "out of dynamic memory in osilensure_buffer_stack()" );
02950 
02951                 /* zero only the new slots.*/
02952                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02953                 yyg->yy_buffer_stack_max = num_to_alloc;
02954         }
02955 }
02956 
02963 YY_BUFFER_STATE osil_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
02964 {
02965         YY_BUFFER_STATE b;
02966     
02967         if ( size < 2 ||
02968              base[size-2] != YY_END_OF_BUFFER_CHAR ||
02969              base[size-1] != YY_END_OF_BUFFER_CHAR )
02970                 /* They forgot to leave room for the EOB's. */
02971                 return 0;
02972 
02973         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02974         if ( ! b )
02975                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_buffer()" );
02976 
02977         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
02978         b->yy_buf_pos = b->yy_ch_buf = base;
02979         b->yy_is_our_buffer = 0;
02980         b->yy_input_file = 0;
02981         b->yy_n_chars = b->yy_buf_size;
02982         b->yy_is_interactive = 0;
02983         b->yy_at_bol = 1;
02984         b->yy_fill_buffer = 0;
02985         b->yy_buffer_status = YY_BUFFER_NEW;
02986 
02987         osil_switch_to_buffer(b ,yyscanner );
02988 
02989         return b;
02990 }
02991 
03000 YY_BUFFER_STATE osil_scan_string (yyconst char * yystr , yyscan_t yyscanner)
03001 {
03002     
03003         return osil_scan_bytes(yystr,strlen(yystr) ,yyscanner);
03004 }
03005 
03013 YY_BUFFER_STATE osil_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
03014 {
03015         YY_BUFFER_STATE b;
03016         char *buf;
03017         yy_size_t n;
03018         int i;
03019     
03020         /* Get memory for full buffer, including space for trailing EOB's. */
03021         n = _yybytes_len + 2;
03022         buf = (char *) osilalloc(n ,yyscanner );
03023         if ( ! buf )
03024                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_bytes()" );
03025 
03026         for ( i = 0; i < _yybytes_len; ++i )
03027                 buf[i] = yybytes[i];
03028 
03029         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
03030 
03031         b = osil_scan_buffer(buf,n ,yyscanner);
03032         if ( ! b )
03033                 YY_FATAL_ERROR( "bad buffer in osil_scan_bytes()" );
03034 
03035         /* It's okay to grow etc. this buffer, and we should throw it
03036          * away when we're done.
03037          */
03038         b->yy_is_our_buffer = 1;
03039 
03040         return b;
03041 }
03042 
03043 #ifndef YY_EXIT_FAILURE
03044 #define YY_EXIT_FAILURE 2
03045 #endif
03046 
03047 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
03048 {
03049         (void) fprintf( stderr, "%s\n", msg );
03050         exit( YY_EXIT_FAILURE );
03051 }
03052 
03053 /* Redefine yyless() so it works in section 3 code. */
03054 
03055 #undef yyless
03056 #define yyless(n) \
03057         do \
03058                 { \
03059                 /* Undo effects of setting up yytext. */ \
03060         int yyless_macro_arg = (n); \
03061         YY_LESS_LINENO(yyless_macro_arg);\
03062                 yytext[yyleng] = yyg->yy_hold_char; \
03063                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
03064                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
03065                 *yyg->yy_c_buf_p = '\0'; \
03066                 yyleng = yyless_macro_arg; \
03067                 } \
03068         while ( 0 )
03069 
03070 /* Accessor  methods (get/set functions) to struct members. */
03071 
03075 YY_EXTRA_TYPE osilget_extra  (yyscan_t yyscanner)
03076 {
03077     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03078     return yyextra;
03079 }
03080 
03084 int osilget_lineno  (yyscan_t yyscanner)
03085 {
03086     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03087     
03088         if (! YY_CURRENT_BUFFER)
03089             return 0;
03090     
03091     return yylineno;
03092 }
03093 
03097 int osilget_column  (yyscan_t yyscanner)
03098 {
03099     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03100     
03101         if (! YY_CURRENT_BUFFER)
03102             return 0;
03103     
03104     return yycolumn;
03105 }
03106 
03110 FILE *osilget_in  (yyscan_t yyscanner)
03111 {
03112     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03113     return yyin;
03114 }
03115 
03119 FILE *osilget_out  (yyscan_t yyscanner)
03120 {
03121     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03122     return yyout;
03123 }
03124 
03128 int osilget_leng  (yyscan_t yyscanner)
03129 {
03130     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03131     return yyleng;
03132 }
03133 
03138 char *osilget_text  (yyscan_t yyscanner)
03139 {
03140     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03141     return yytext;
03142 }
03143 
03148 void osilset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
03149 {
03150     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03151     yyextra = user_defined ;
03152 }
03153 
03158 void osilset_lineno (int  line_number , yyscan_t yyscanner)
03159 {
03160     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03161 
03162         /* lineno is only valid if an input buffer exists. */
03163         if (! YY_CURRENT_BUFFER )
03164            yy_fatal_error( "osilset_lineno called with no buffer" , yyscanner); 
03165     
03166     yylineno = line_number;
03167 }
03168 
03173 void osilset_column (int  column_no , yyscan_t yyscanner)
03174 {
03175     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03176 
03177         /* column is only valid if an input buffer exists. */
03178         if (! YY_CURRENT_BUFFER )
03179            yy_fatal_error( "osilset_column called with no buffer" , yyscanner); 
03180     
03181     yycolumn = column_no;
03182 }
03183 
03190 void osilset_in (FILE *  in_str , yyscan_t yyscanner)
03191 {
03192     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03193     yyin = in_str ;
03194 }
03195 
03196 void osilset_out (FILE *  out_str , yyscan_t yyscanner)
03197 {
03198     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03199     yyout = out_str ;
03200 }
03201 
03202 int osilget_debug  (yyscan_t yyscanner)
03203 {
03204     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03205     return yy_flex_debug;
03206 }
03207 
03208 void osilset_debug (int  bdebug , yyscan_t yyscanner)
03209 {
03210     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03211     yy_flex_debug = bdebug ;
03212 }
03213 
03214 /* Accessor methods for yylval and yylloc */
03215 
03216 YYSTYPE * osilget_lval  (yyscan_t yyscanner)
03217 {
03218     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03219     return yylval;
03220 }
03221 
03222 void osilset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
03223 {
03224     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03225     yylval = yylval_param;
03226 }
03227 
03228 YYLTYPE *osilget_lloc  (yyscan_t yyscanner)
03229 {
03230     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03231     return yylloc;
03232 }
03233     
03234 void osilset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
03235 {
03236     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03237     yylloc = yylloc_param;
03238 }
03239     
03240 /* User-visible API */
03241 
03242 /* osillex_init is special because it creates the scanner itself, so it is
03243  * the ONLY reentrant function that doesn't take the scanner as the last argument.
03244  * That's why we explicitly handle the declaration, instead of using our macros.
03245  */
03246 
03247 int osillex_init(yyscan_t* ptr_yy_globals)
03248 
03249 {
03250     if (ptr_yy_globals == NULL){
03251         errno = EINVAL;
03252         return 1;
03253     }
03254 
03255     *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), NULL );
03256 
03257     if (*ptr_yy_globals == NULL){
03258         errno = ENOMEM;
03259         return 1;
03260     }
03261 
03262     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
03263     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03264 
03265     return yy_init_globals ( *ptr_yy_globals );
03266 }
03267 
03268 /* osillex_init_extra has the same functionality as osillex_init, but follows the
03269  * convention of taking the scanner as the last argument. Note however, that
03270  * this is a *pointer* to a scanner, as it will be allocated by this call (and
03271  * is the reason, too, why this function also must handle its own declaration).
03272  * The user defined value in the first argument will be available to osilalloc in
03273  * the yyextra field.
03274  */
03275 
03276 int osillex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
03277 
03278 {
03279     struct yyguts_t dummy_yyguts;
03280 
03281     osilset_extra (yy_user_defined, &dummy_yyguts);
03282 
03283     if (ptr_yy_globals == NULL){
03284         errno = EINVAL;
03285         return 1;
03286     }
03287         
03288     *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
03289         
03290     if (*ptr_yy_globals == NULL){
03291         errno = ENOMEM;
03292         return 1;
03293     }
03294     
03295     /* By setting to 0xAA, we expose bugs in
03296     yy_init_globals. Leave at 0x00 for releases. */
03297     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03298     
03299     osilset_extra (yy_user_defined, *ptr_yy_globals);
03300     
03301     return yy_init_globals ( *ptr_yy_globals );
03302 }
03303 
03304 static int yy_init_globals (yyscan_t yyscanner)
03305 {
03306     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03307     /* Initialization is the same as for the non-reentrant scanner.
03308      * This function is called from osillex_destroy(), so don't allocate here.
03309      */
03310 
03311     yyg->yy_buffer_stack = 0;
03312     yyg->yy_buffer_stack_top = 0;
03313     yyg->yy_buffer_stack_max = 0;
03314     yyg->yy_c_buf_p = (char *) 0;
03315     yyg->yy_init = 0;
03316     yyg->yy_start = 0;
03317 
03318     yyg->yy_start_stack_ptr = 0;
03319     yyg->yy_start_stack_depth = 0;
03320     yyg->yy_start_stack =  NULL;
03321 
03322 /* Defined in main.c */
03323 #ifdef YY_STDINIT
03324     yyin = stdin;
03325     yyout = stdout;
03326 #else
03327     yyin = (FILE *) 0;
03328     yyout = (FILE *) 0;
03329 #endif
03330 
03331     /* For future reference: Set errno on error, since we are called by
03332      * osillex_init()
03333      */
03334     return 0;
03335 }
03336 
03337 /* osillex_destroy is for both reentrant and non-reentrant scanners. */
03338 int osillex_destroy  (yyscan_t yyscanner)
03339 {
03340     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03341 
03342     /* Pop the buffer stack, destroying each element. */
03343         while(YY_CURRENT_BUFFER){
03344                 osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03345                 YY_CURRENT_BUFFER_LVALUE = NULL;
03346                 osilpop_buffer_state(yyscanner);
03347         }
03348 
03349         /* Destroy the stack itself. */
03350         osilfree(yyg->yy_buffer_stack ,yyscanner);
03351         yyg->yy_buffer_stack = NULL;
03352 
03353     /* Destroy the start condition stack. */
03354         osilfree(yyg->yy_start_stack ,yyscanner );
03355         yyg->yy_start_stack = NULL;
03356 
03357     /* Reset the globals. This is important in a non-reentrant scanner so the next time
03358      * osillex() is called, initialization will occur. */
03359     yy_init_globals( yyscanner);
03360 
03361     /* Destroy the main struct (reentrant only). */
03362     osilfree ( yyscanner , yyscanner );
03363     yyscanner = NULL;
03364     return 0;
03365 }
03366 
03367 /*
03368  * Internal utility routines.
03369  */
03370 
03371 #ifndef yytext_ptr
03372 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03373 {
03374         register int i;
03375         for ( i = 0; i < n; ++i )
03376                 s1[i] = s2[i];
03377 }
03378 #endif
03379 
03380 #ifdef YY_NEED_STRLEN
03381 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03382 {
03383         register int n;
03384         for ( n = 0; s[n]; ++n )
03385                 ;
03386 
03387         return n;
03388 }
03389 #endif
03390 
03391 void *osilalloc (yy_size_t  size , yyscan_t yyscanner)
03392 {
03393         return (void *) malloc( size );
03394 }
03395 
03396 void *osilrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
03397 {
03398         /* The cast to (char *) in the following accommodates both
03399          * implementations that use char* generic pointers, and those
03400          * that use void* generic pointers.  It works with the latter
03401          * because both ANSI C and C++ allow castless assignment from
03402          * any pointer type to void*, and deal with argument conversions
03403          * as though doing an assignment.
03404          */
03405         return (void *) realloc( (char *) ptr, size );
03406 }
03407 
03408 void osilfree (void * ptr , yyscan_t yyscanner)
03409 {
03410         free( (char *) ptr );   /* see osilrealloc() for (char *) cast */
03411 }
03412 
03413 #define YYTABLES_NAME "yytables"
03414 
03415 #line 292 "/home/kmartin/coin/os-trunk/OS/src/OSParsers/OSParseosil.l"
03416 
03417 
03418 
03419 

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