/home/coin/SVN-release/OS-1.0.0/OS/src/OSParsers/parseosil.cpp

Go to the documentation of this file.
00001 #line 2 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.cpp"
00002 
00003 #line 4 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.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 33
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 __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 #endif /* ! C99 */
00058 
00059 /* Limits of integral types. */
00060 #ifndef INT8_MIN
00061 #define INT8_MIN               (-128)
00062 #endif
00063 #ifndef INT16_MIN
00064 #define INT16_MIN              (-32767-1)
00065 #endif
00066 #ifndef INT32_MIN
00067 #define INT32_MIN              (-2147483647-1)
00068 #endif
00069 #ifndef INT8_MAX
00070 #define INT8_MAX               (127)
00071 #endif
00072 #ifndef INT16_MAX
00073 #define INT16_MAX              (32767)
00074 #endif
00075 #ifndef INT32_MAX
00076 #define INT32_MAX              (2147483647)
00077 #endif
00078 #ifndef UINT8_MAX
00079 #define UINT8_MAX              (255U)
00080 #endif
00081 #ifndef UINT16_MAX
00082 #define UINT16_MAX             (65535U)
00083 #endif
00084 #ifndef UINT32_MAX
00085 #define UINT32_MAX             (4294967295U)
00086 #endif
00087 
00088 #endif /* ! FLEXINT_H */
00089 
00090 #ifdef __cplusplus
00091 
00092 /* The "const" storage-class-modifier is valid. */
00093 #define YY_USE_CONST
00094 
00095 #else   /* ! __cplusplus */
00096 
00097 #if __STDC__
00098 
00099 #define YY_USE_CONST
00100 
00101 #endif  /* __STDC__ */
00102 #endif  /* ! __cplusplus */
00103 
00104 #ifdef YY_USE_CONST
00105 #define yyconst const
00106 #else
00107 #define yyconst
00108 #endif
00109 
00110 /* Returned upon end-of-file. */
00111 #define YY_NULL 0
00112 
00113 /* Promotes a possibly negative, possibly signed char to an unsigned
00114  * integer for use as an array index.  If the signed char is negative,
00115  * we want to instead treat it as an 8-bit unsigned char, hence the
00116  * double cast.
00117  */
00118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00119 
00120 /* An opaque pointer. */
00121 #ifndef YY_TYPEDEF_YY_SCANNER_T
00122 #define YY_TYPEDEF_YY_SCANNER_T
00123 typedef void* yyscan_t;
00124 #endif
00125 
00126 /* For convenience, these vars (plus the bison vars far below)
00127    are macros in the reentrant scanner. */
00128 #define yyin yyg->yyin_r
00129 #define yyout yyg->yyout_r
00130 #define yyextra yyg->yyextra_r
00131 #define yyleng yyg->yyleng_r
00132 #define yytext yyg->yytext_r
00133 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00134 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00135 #define yy_flex_debug yyg->yy_flex_debug_r
00136 
00137 int osillex_init (yyscan_t* scanner);
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 #define YY_BUF_SIZE 16384
00163 #endif
00164 
00165 /* The state buf must be large enough to hold one state per character in the main buffer.
00166  */
00167 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00168 
00169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00170 #define YY_TYPEDEF_YY_BUFFER_STATE
00171 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00172 #endif
00173 
00174 #define EOB_ACT_CONTINUE_SCAN 0
00175 #define EOB_ACT_END_OF_FILE 1
00176 #define EOB_ACT_LAST_MATCH 2
00177 
00178     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00179      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00180      *       existing scanners that call yyless() from OUTSIDE osillex. 
00181      *       One obvious solution it to make yy_act a global. I tried that, and saw
00182      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00183      *       normally declared as a register variable-- so it is not worth it.
00184      */
00185     #define  YY_LESS_LINENO(n) \
00186             do { \
00187                 int yyl;\
00188                 for ( yyl = n; yyl < yyleng; ++yyl )\
00189                     if ( yytext[yyl] == '\n' )\
00190                         --yylineno;\
00191             }while(0)
00192     
00193 /* Return all but the first "n" matched characters back to the input stream. */
00194 #define yyless(n) \
00195         do \
00196                 { \
00197                 /* Undo effects of setting up yytext. */ \
00198         int yyless_macro_arg = (n); \
00199         YY_LESS_LINENO(yyless_macro_arg);\
00200                 *yy_cp = yyg->yy_hold_char; \
00201                 YY_RESTORE_YY_MORE_OFFSET \
00202                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00203                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00204                 } \
00205         while ( 0 )
00206 
00207 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00208 
00209 /* The following is because we cannot portably get our hands on size_t
00210  * (without autoconf's help, which isn't available because we want
00211  * flex-generated scanners to compile on their own).
00212  */
00213 
00214 #ifndef YY_TYPEDEF_YY_SIZE_T
00215 #define YY_TYPEDEF_YY_SIZE_T
00216 typedef unsigned int yy_size_t;
00217 #endif
00218 
00219 #ifndef YY_STRUCT_YY_BUFFER_STATE
00220 #define YY_STRUCT_YY_BUFFER_STATE
00221 struct yy_buffer_state
00222         {
00223         FILE *yy_input_file;
00224 
00225         char *yy_ch_buf;                /* input buffer */
00226         char *yy_buf_pos;               /* current position in input buffer */
00227 
00228         /* Size of input buffer in bytes, not including room for EOB
00229          * characters.
00230          */
00231         yy_size_t yy_buf_size;
00232 
00233         /* Number of characters read into yy_ch_buf, not including EOB
00234          * characters.
00235          */
00236         int yy_n_chars;
00237 
00238         /* Whether we "own" the buffer - i.e., we know we created it,
00239          * and can realloc() it to grow it, and should free() it to
00240          * delete it.
00241          */
00242         int yy_is_our_buffer;
00243 
00244         /* Whether this is an "interactive" input source; if so, and
00245          * if we're using stdio for input, then we want to use getc()
00246          * instead of fread(), to make sure we stop fetching input after
00247          * each newline.
00248          */
00249         int yy_is_interactive;
00250 
00251         /* Whether we're considered to be at the beginning of a line.
00252          * If so, '^' rules will be active on the next match, otherwise
00253          * not.
00254          */
00255         int yy_at_bol;
00256 
00257     int yy_bs_lineno; 
00258     int yy_bs_column; 
00260         /* Whether to try to fill the input buffer when we reach the
00261          * end of it.
00262          */
00263         int yy_fill_buffer;
00264 
00265         int yy_buffer_status;
00266 
00267 #define YY_BUFFER_NEW 0
00268 #define YY_BUFFER_NORMAL 1
00269         /* When an EOF's been seen but there's still some text to process
00270          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00271          * shouldn't try reading from the input source any more.  We might
00272          * still have a bunch of tokens to match, though, because of
00273          * possible backing-up.
00274          *
00275          * When we actually see the EOF, we change the status to "new"
00276          * (via osilrestart()), so that the user can continue scanning by
00277          * just pointing yyin at a new input file.
00278          */
00279 #define YY_BUFFER_EOF_PENDING 2
00280 
00281         };
00282 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00283 
00284 /* We provide macros for accessing buffer states in case in the
00285  * future we want to put the buffer states in a more general
00286  * "scanner state".
00287  *
00288  * Returns the top of the stack, or NULL.
00289  */
00290 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00291                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00292                           : NULL)
00293 
00294 /* Same as previous macro, but useful when we know that the buffer stack is not
00295  * NULL or when we need an lvalue. For internal use only.
00296  */
00297 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00298 
00299 void osilrestart (FILE *input_file ,yyscan_t yyscanner );
00300 void osil_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00301 YY_BUFFER_STATE osil_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00302 void osil_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00303 void osil_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00304 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00305 void osilpop_buffer_state (yyscan_t yyscanner );
00306 
00307 static void osilensure_buffer_stack (yyscan_t yyscanner );
00308 static void osil_load_buffer_state (yyscan_t yyscanner );
00309 static void osil_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00310 
00311 #define YY_FLUSH_BUFFER osil_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00312 
00313 YY_BUFFER_STATE osil_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00314 YY_BUFFER_STATE osil_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00315 YY_BUFFER_STATE osil_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00316 
00317 void *osilalloc (yy_size_t ,yyscan_t yyscanner );
00318 void *osilrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00319 void osilfree (void * ,yyscan_t yyscanner );
00320 
00321 #define yy_new_buffer osil_create_buffer
00322 
00323 #define yy_set_interactive(is_interactive) \
00324         { \
00325         if ( ! YY_CURRENT_BUFFER ){ \
00326         osilensure_buffer_stack (yyscanner); \
00327                 YY_CURRENT_BUFFER_LVALUE =    \
00328             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00329         } \
00330         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00331         }
00332 
00333 #define yy_set_bol(at_bol) \
00334         { \
00335         if ( ! YY_CURRENT_BUFFER ){\
00336         osilensure_buffer_stack (yyscanner); \
00337                 YY_CURRENT_BUFFER_LVALUE =    \
00338             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00339         } \
00340         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00341         }
00342 
00343 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00344 
00345 /* Begin user sect3 */
00346 
00347 #define osilwrap(n) 1
00348 #define YY_SKIP_YYWRAP
00349 
00350 typedef unsigned char YY_CHAR;
00351 
00352 typedef int yy_state_type;
00353 
00354 #define yytext_ptr yytext_r
00355 
00356 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00357 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
00358 static int yy_get_next_buffer (yyscan_t yyscanner );
00359 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00360 
00361 /* Done after the current pattern has been matched and before the
00362  * corresponding action - sets up yytext.
00363  */
00364 #define YY_DO_BEFORE_ACTION \
00365         yyg->yytext_ptr = yy_bp; \
00366         yyleng = (size_t) (yy_cp - yy_bp); \
00367         yyg->yy_hold_char = *yy_cp; \
00368         *yy_cp = '\0'; \
00369         yyg->yy_c_buf_p = yy_cp;
00370 
00371 #define YY_NUM_RULES 83
00372 #define YY_END_OF_BUFFER 84
00373 /* This struct is not used in this scanner,
00374    but its presence is necessary. */
00375 struct yy_trans_info
00376         {
00377         flex_int32_t yy_verify;
00378         flex_int32_t yy_nxt;
00379         };
00380 static yyconst flex_int16_t yy_accept[579] =
00381     {   0,
00382         0,    0,   81,   81,    0,    0,    0,    0,    0,    0,
00383         0,    0,    0,    0,   84,   82,    1,    1,    2,   82,
00384         5,   82,    4,   82,    3,   82,   81,   83,   74,   75,
00385        74,   78,   79,   78,    0,    0,    0,    3,    0,    0,
00386         0,    0,    0,    5,    4,    0,    5,    0,    6,    0,
00387         0,   77,   67,    0,    0,    0,    0,    0,    0,    0,
00388         0,    0,    0,    0,    0,    0,    0,    0,   81,    0,
00389        80,    0,    0,    0,    0,    0,    0,    5,    0,    0,
00390         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00391         0,    0,    0,    0,    0,   69,    0,    0,    0,    0,
00392 
00393         0,    0,    0,    0,    0,    0,   25,    0,    0,    0,
00394         0,    0,    0,    0,    0,    0,    0,    0,    0,    5,
00395        76,    0,    0,    0,    0,    0,    0,    0,   73,    0,
00396        68,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00397         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00399         0,    0,    0,   53,    0,   39,    0,    0,    0,    0,
00400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00401         0,    0,    0,    0,   20,    0,    0,    0,    0,    0,
00402         0,    0,    0,   70,    0,    0,    0,    0,    0,    0,
00403 
00404        54,    0,    0,   40,    0,    0,    0,   26,    0,    0,
00405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00406         0,    0,    0,   51,    0,    0,   47,    0,    0,   49,
00407        53,   39,    0,   55,    0,   57,    0,    0,    0,    0,
00408         0,    0,    0,    0,    0,    0,   45,    0,    0,    0,
00409        59,    0,    0,    0,    0,   20,   21,    0,   15,    0,
00410         0,    0,    0,    0,    0,    0,   52,    0,    0,   48,
00411         0,    0,   50,   54,    0,   40,    0,   56,    0,   58,
00412         0,    0,   26,    0,    0,    0,    0,    0,    0,    0,
00413         0,    0,   46,    0,    0,    0,   60,    0,    0,   51,
00414 
00415         0,   47,    0,   49,   55,   57,    0,    0,    0,    0,
00416         0,   31,    0,    0,   12,    0,   45,    0,   41,    0,
00417        59,    0,    0,    0,   18,   15,    0,    0,    0,    0,
00418        22,    0,    0,   52,    0,   48,    0,   50,    0,   56,
00419        58,    0,    0,    0,    0,    0,    7,    0,   32,    0,
00420         0,    0,    0,   46,    0,   42,    0,   60,    0,    0,
00421         0,    0,    0,   33,    0,    0,   65,   31,    0,   37,
00422         0,    0,   41,    0,    0,   27,    0,   18,    0,    0,
00423         0,    0,    0,   22,    0,   19,    0,    0,    0,    0,
00424        34,    0,    0,    0,    7,   32,    0,   38,    0,   13,
00425 
00426         0,   42,    0,    0,   28,    0,    0,    0,   29,   33,
00427         0,   35,    0,   37,    0,    0,    0,   43,   27,    0,
00428         0,   16,    0,   17,    0,   19,    0,    0,   30,    0,
00429        34,    0,   36,    0,    0,   66,   38,    0,    0,    0,
00430        44,   28,    0,    0,   61,   29,   35,    0,    0,   63,
00431         0,   43,   71,   16,   17,    0,    0,    0,   62,   30,
00432         0,   36,    0,    0,   64,    0,   44,    0,   61,    0,
00433        63,    0,    0,    0,   62,    0,    0,   64,    0,    0,
00434        72,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00436 
00437         0,    0,    0,    0,    0,    0,    0,    9,    0,    0,
00438         0,    0,    0,    0,    9,    0,    0,    0,    0,    0,
00439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00441         0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
00442         0,    0,    0,   10,    0,    0,   24,    0,    0,    0,
00443         0,   24,   11,    0,    0,   14,   11,    0,   14,    0,
00444         0,    0,    0,    0,    0,    8,    8,    0
00445     } ;
00446 
00447 static yyconst flex_int32_t yy_ec[256] =
00448     {   0,
00449         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00450         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00451         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00452         1,    2,    4,    5,    1,    1,    1,    1,    6,    1,
00453         1,    1,    7,    1,    8,    9,   10,   11,   11,   11,
00454        11,   11,   11,   11,   11,   11,   11,    1,    1,   12,
00455        13,   14,   15,    1,    1,    1,   16,   17,   18,   19,
00456         1,    1,   20,    1,    1,    1,    1,   21,   22,   23,
00457        24,    1,    1,   25,    1,    1,    1,    1,    1,    1,
00458         1,    1,    1,    1,    1,    1,   26,   27,   28,   29,
00459 
00460        30,   31,   32,    1,   33,    1,    1,   34,   35,   36,
00461        37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
00462        47,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00463         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00464         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00465         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00466         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00467         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00469         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00470 
00471         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00472         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00473         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00474         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00475         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00476         1,    1,    1,    1,    1
00477     } ;
00478 
00479 static yyconst flex_int32_t yy_meta[48] =
00480     {   0,
00481         1,    1,    1,    1,    2,    2,    1,    1,    1,    1,
00482         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00483         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00484         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00485         1,    1,    1,    1,    1,    1,    1
00486     } ;
00487 
00488 static yyconst flex_int16_t yy_base[585] =
00489     {   0,
00490         0,   19,   10,   12,    0,    0,    0,    0,    0,    0,
00491        29,   32,    4,   23, 1037, 1038,   39,    0, 1038,   25,
00492        32, 1022,   43,   80, 1038, 1014,    0, 1038, 1038, 1038,
00493      1026, 1038, 1038, 1019,    0, 1018,   40, 1038,  994, 1001,
00494       986,  981, 1001,   46,   47, 1005,   48,   63, 1038, 1017,
00495       107, 1038, 1038, 1004,   52,  986,  989,  975,  989,  983,
00496        54,   59,   48,   69,   58,  985,  991,  997,    0, 1001,
00497      1038,  984,  125,  978,  974,  977,  999,  998, 1000,   97,
00498       987,  105,  969,  972,  958,   32,  967,  121,  122,  961,
00499        83,  125,  124,  968,  974, 1038,  958,  964,  956,  952,
00500 
00501       957,  158,  167,  948,  957,  960, 1038,  955,  955,  946,
00502       943,  950,  956,  959,  948,   64,  948,  947,  941, 1038,
00503      1038,  949,  171,  173,  180,  952,  948,  934, 1038,  183,
00504      1038,  185,  935,  941,  933,  929,  934,  187,  930,  189,
00505       924,  933,  936,  953,  930,  930,  931,  920,  917,  924,
00506       930,  933,  922,   86,  922,  921,  915,  192,  937,  205,
00507       920,  207,  209,   44,  211,  213,  215,  224,  926,  917,
00508       923,  908,  918,  918,  906,  916,  228,  902,  917,  230,
00509       912,  908,  232,  234,  244,  249,  251,  904,  894,  908,
00510       256,  907,  258, 1038,  261,  919,  263,  902,  268,  271,
00511 
00512       276,  892,  278,  281,  284,  286,  907,  288,  898,  904,
00513       896,  888,  898,  898,  886,  896,  291,  882,  897,  293,
00514       892,  888,  299,  301,  887,  306,  308,  890,  312,  314,
00515       316,  319,  321,  325,  328,  330,  877,  875,  883,  885,
00516       334,  874,  870,  877,  871,  336,  338,  341,  870,  343,
00517       349,  868,  882,  351,  356,  363, 1038,  365,  370,  877,
00518       869,  865,  372,  374,  379,  381,  384,  871,  386,  388,
00519       874,  391,  394,  396,  876,  399,  401,  404,  406,  408,
00520       860,  858,  410,  866,  868,  414,  416,  857,  853,  860,
00521       854,  419,  421,  423,  853,  429,  432,  851,  865,  436,
00522 
00523       859,  438,  859,  442,  444,  446,  448,  858,  851,  846,
00524       450,  452,  454,  857, 1038,  858,  456,  458,  463,  853,
00525       467,  471,  855,  473,  478,  480,  484,  486,  859,  488,
00526       493,  498,  500,  505,  849,  507,  849,  510,  842,  512,
00527       514,  516,  847,  840,  835,  518,  520,  522,  524,  526,
00528       846,  859,  846,  531,  535,  539,  841,  541,  543,  843,
00529       838,  545,  548,  550,  552,  838, 1038,  558,  561,  565,
00530       825,  824,  567,  569,  571,  574,  831,  576,  578,  584,
00531       590,  592,  833,  597,  599,  604,  832,  606,  834,  608,
00532       610,  612,  831,  614,  616,  621,  627,  629,  818, 1038,
00533 
00534       817,  631,  633,  635,  637,  824,  640,  642,  648,  650,
00535       655,  657,  831,  659,  661,  823,  663,  665,  668,  825,
00536       676,  670,  681,  686,  110,  688,  690,  692,  694,  824,
00537       696,  698,  700,  827,  705, 1038,  707,  711,  819,  713,
00538       715,  718,  821,  720,  726,  728,  730,  810,  733,  735,
00539       807,  737, 1038,  739,  741,  794,  782,  743,  746,  748,
00540       793,  750,  764,  752,  756,  771,  758,  760,  762,  772,
00541       765,  772,  737,  730,  767,  700,  706,  769,  695,  773,
00542      1038,  659,  648,  646,  647,  632,  609,  611,  608,  597,
00543       592,  581,  570,  550,  554,  542,  534,  522,  530,  775,
00544 
00545       499,  504,  501,  473,  468,  450,  777,  779,  454,  446,
00546       430,  434,  437,  409,  781,  395,  396,  386,  386,  338,
00547       341,  322,  332,  323,  316,  329,  309,  292,  279,  269,
00548       269,  251,  246,  231,  225,  212,  207,  203,  188,  188,
00549       186,  179,  162,  160,  163,  155,  138, 1038,  136,  136,
00550       123,  148,  117, 1038,  114,  783,  790,  139,   64,  792,
00551       795,  800,  804,   59,  806,  811,  813,   32,  815,   24,
00552         7,  817,  819,  821,  831,  826,  836, 1038,  839,  841,
00553       843,  845,  847,    0
00554     } ;
00555 
00556 static yyconst flex_int16_t yy_def[585] =
00557     {   0,
00558       579,  579,  580,  580,  581,  581,  581,  581,  581,  581,
00559       582,  582,  583,  583,  578,  578,  578,   17,  578,  578,
00560       578,  578,  578,  578,  578,  578,  584,  578,  578,  578,
00561       578,  578,  578,  578,   17,  578,   24,  578,  578,  578,
00562       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00563       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00564       578,  578,  578,  578,  578,  578,  578,  578,  584,  578,
00565       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00566       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00567       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00568 
00569       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00570       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00571       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00572       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00573       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00574       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00575       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00576       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00577       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00578       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00579 
00580       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00581       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00582       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00583       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00584       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00585       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00586       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00587       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00588       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00589       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00590 
00591       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00592       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00593       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00594       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00595       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00596       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00597       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00598       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00599       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00600       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00601 
00602       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00603       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00604       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00605       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00606       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00607       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00608       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00609       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00610       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00611       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00612 
00613       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00614       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00615       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00616       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00617       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00618       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00619       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00620       578,  578,  578,  578,  578,  578,  578,    0,  578,  578,
00621       578,  578,  578,  578
00622     } ;
00623 
00624 static yyconst flex_int16_t yy_nxt[1086] =
00625     {   0,
00626        69,   17,   18,  578,   19,   19,   33,   20,   21,   22,
00627        23,   24,  578,   25,   28,   28,   28,   28,   34,   26,
00628        17,   18,  578,   19,   19,   33,   20,   21,   22,   23,
00629        24,   30,   25,   44,   30,   45,   31,   34,   26,   31,
00630        35,   35,   47,  578,   46,  231,  231,  572,   36,   48,
00631        37,   44,   38,   45,  578,   44,   47,   45,   47,  571,
00632        48,   48,  138,   48,   48,   48,   39,  139,  570,   77,
00633        77,   40,   48,   78,   41,   48,   48,   48,   97,  104,
00634        42,  110,   43,   50,  111,   98,  105,  112,  106,   51,
00635       115,  568,  107,  113,   52,  108,  116,   53,  130,  130,
00636 
00637       117,  109,   54,  178,  564,   55,  179,   56,   57,   58,
00638       131,  114,   59,   60,   61,   62,  148,   63,   64,  149,
00639        65,   66,  150,   67,   80,  218,  123,  123,  219,   81,
00640       456,  133,   82,  457,   83,   84,   85,  124,  134,   86,
00641        87,   88,   89,   90,   91,   92,  141,   93,   94,  151,
00642        95,  143,  563,  142,  559,  144,  153,  558,  145,  163,
00643       163,  557,  154,  556,  146,  555,  155,  152,  165,  165,
00644       125,  164,  123,  123,  184,  184,  554,  185,  185,  553,
00645       166,  186,  186,  124,  130,  130,  193,  193,  200,  200,
00646       203,  203,  187,  223,  223,  552,  131,  551,  194,  550,
00647 
00648       201,  188,  204,  549,  189,  224,  226,  226,  229,  229,
00649       163,  163,  165,  165,  232,  232,  233,  233,  227,  548,
00650       230,  547,  164,  546,  166,  235,  235,  545,  234,  246,
00651       246,  250,  250,  254,  254,  184,  184,  236,  185,  185,
00652       544,  247,  543,  251,  255,  256,  256,  542,  257,  257,
00653       186,  186,  258,  258,  541,  259,  259,  263,  263,  193,
00654       193,  187,  266,  266,  269,  269,  237,  540,  264,  272,
00655       272,  194,  200,  200,  267,  539,  270,  274,  274,  203,
00656       203,  273,  276,  276,  201,  277,  277,  279,  279,  283,
00657       283,  204,  292,  292,  296,  296,  538,  278,  537,  280,
00658 
00659       223,  223,  300,  300,  293,  536,  297,  226,  226,  302,
00660       302,  535,  224,  229,  229,  304,  304,  231,  231,  227,
00661       232,  232,  233,  233,  534,  230,  305,  305,  281,  235,
00662       235,  306,  306,  533,  234,  311,  311,  246,  246,  317,
00663       317,  236,  318,  318,  250,  250,  532,  312,  531,  247,
00664       321,  321,  254,  254,  319,  530,  251,  324,  324,  529,
00665       325,  325,  528,  255,  256,  256,  258,  258,  527,  259,
00666       259,  326,  326,  263,  263,  330,  330,  526,  331,  331,
00667       332,  332,  266,  266,  264,  334,  334,  269,  269,  336,
00668       336,  333,  272,  272,  267,  338,  338,  274,  274,  270,
00669 
00670       276,  276,  277,  277,  273,  340,  340,  279,  279,  341,
00671       341,  283,  283,  525,  278,  346,  346,  348,  348,  280,
00672       292,  292,  354,  354,  355,  355,  524,  347,  523,  349,
00673       296,  296,  293,  358,  358,  522,  356,  300,  300,  302,
00674       302,  521,  297,  304,  304,  305,  305,  306,  306,  363,
00675       363,  311,  311,  368,  368,  369,  369,  317,  317,  318,
00676       318,  364,  520,  312,  373,  373,  519,  370,  321,  321,
00677       518,  319,  375,  375,  324,  324,  517,  325,  325,  378,
00678       378,  326,  326,  516,  376,  379,  379,  381,  381,  330,
00679       330,  514,  331,  331,  384,  384,  380,  513,  382,  332,
00680 
00681       332,  385,  385,  512,  386,  386,  334,  334,  336,  336,
00682       333,  338,  338,  340,  340,  341,  341,  390,  390,  346,
00683       346,  395,  395,  348,  348,  396,  396,  397,  397,  391,
00684       511,  347,  354,  354,  510,  349,  355,  355,  509,  398,
00685       402,  402,  358,  358,  404,  404,  408,  408,  356,  363,
00686       363,  410,  410,  411,  411,  506,  405,  505,  409,  368,
00687       368,  364,  369,  369,  504,  412,  414,  414,  373,  373,
00688       417,  417,  375,  375,  370,  419,  419,  378,  378,  379,
00689       379,  503,  418,  502,  376,  421,  421,  501,  422,  422,
00690       380,  381,  381,  423,  423,  500,  424,  424,  384,  384,
00691 
00692       385,  385,  382,  386,  386,  426,  426,  428,  428,  390,
00693       390,  431,  431,  432,  432,  435,  435,  395,  395,  429,
00694       499,  391,  396,  396,  498,  433,  497,  436,  397,  397,
00695       437,  437,  402,  402,  440,  440,  404,  404,  442,  442,
00696       398,  444,  444,  408,  408,  496,  441,  495,  405,  446,
00697       446,  410,  410,  445,  494,  409,  411,  411,  447,  447,
00698       414,  414,  449,  449,  417,  417,  452,  452,  412,  419,
00699       419,  454,  454,  493,  450,  492,  418,  421,  421,  491,
00700       422,  422,  423,  423,  490,  424,  424,  455,  455,  426,
00701       426,  458,  458,  428,  428,  460,  460,  431,  431,  432,
00702 
00703       432,  462,  462,  459,  489,  429,  435,  435,  437,  437,
00704       488,  433,  464,  464,  440,  440,  467,  467,  436,  442,
00705       442,  444,  444,  487,  465,  486,  441,  469,  469,  446,
00706       446,  447,  447,  445,  449,  449,  471,  471,  452,  452,
00707       454,  454,  455,  455,  458,  458,  450,  475,  475,  460,
00708       460,  462,  462,  464,  464,  485,  459,  478,  478,  467,
00709       467,  480,  480,  469,  469,  465,  471,  471,  475,  475,
00710       478,  478,  484,  481,  480,  480,  507,  507,  507,  507,
00711       515,  515,  515,  515,  560,  560,  481,  483,  508,  482,
00712       508,  562,  562,  560,  560,  561,  565,  565,  479,  566,
00713 
00714       566,  562,  562,  477,  561,  567,  567,  565,  565,  476,
00715       566,  566,  569,  569,  567,  567,  569,  569,  573,  573,
00716       573,  573,  575,  575,  474,  576,  576,  577,  577,  574,
00717       473,  574,  575,  575,  472,  576,  576,  577,  577,   16,
00718        16,   27,   27,   28,   28,   29,   29,   32,   32,  470,
00719       468,  466,  463,  461,  453,  451,  448,  443,  439,  438,
00720       434,  430,  427,  425,  420,  416,  415,  413,  407,  406,
00721       403,  401,  400,  399,  394,  393,  392,  389,  388,  387,
00722       383,  377,  374,  372,  371,  367,  366,  365,  362,  361,
00723       360,  359,  357,  353,  352,  351,  350,  345,  344,  343,
00724 
00725       342,  339,  337,  335,  329,  328,  327,  323,  322,  320,
00726       316,  315,  314,  313,  310,  309,  308,  307,  303,  301,
00727       299,  298,  295,  294,  291,  290,  289,  288,  287,  286,
00728       285,  284,  282,  275,  271,  268,  265,  262,  261,  260,
00729       253,  252,  249,  248,  245,  244,  243,  242,  241,  240,
00730       239,  238,  228,  225,  222,  221,  220,  217,  216,  215,
00731       214,  213,  212,  211,  210,  209,  208,  207,  206,  205,
00732       202,  199,  198,  197,  196,  195,  192,  191,  190,  183,
00733       182,  181,  180,  177,  176,  175,  174,  173,  172,  171,
00734       170,  169,  168,  167,  162,  161,  160,  159,  158,  157,
00735 
00736       156,  147,  140,  137,  136,  135,  132,  129,   78,   78,
00737       128,  127,  126,  122,  121,  120,  119,  118,  103,  102,
00738       101,  100,   99,   96,   79,   68,   76,   75,   74,   73,
00739        72,   49,   71,   70,   68,   49,  578,   15,  578,  578,
00740       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00741       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00742       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00743       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00744       578,  578,  578,  578,  578
00745     } ;
00746 
00747 static yyconst flex_int16_t yy_chk[1086] =
00748     {   0,
00749       584,    1,    1,    0,    1,    1,   13,    1,    1,    1,
00750         1,    1,    0,    1,    3,    3,    4,    4,   13,    1,
00751         2,    2,    0,    2,    2,   14,    2,    2,    2,    2,
00752         2,   11,    2,   20,   12,   20,   11,   14,    2,   12,
00753        17,   17,   21,   37,   20,  164,  164,  571,   17,   21,
00754        17,   23,   17,   23,   37,   45,   44,   45,   47,  570,
00755        23,   21,   86,   44,   45,   47,   17,   86,  568,   48,
00756        48,   17,   23,   48,   17,   44,   45,   47,   55,   61,
00757        17,   63,   17,   24,   63,   55,   61,   63,   62,   24,
00758        65,  564,   62,   64,   24,   62,   65,   24,   80,   80,
00759 
00760        65,   62,   24,  116,  559,   24,  116,   24,   24,   24,
00761        80,   64,   24,   24,   24,   24,   91,   24,   24,   91,
00762        24,   24,   91,   24,   51,  154,   73,   73,  154,   51,
00763       425,   82,   51,  425,   51,   51,   51,   73,   82,   51,
00764        51,   51,   51,   51,   51,   51,   88,   51,   51,   92,
00765        51,   89,  558,   88,  555,   89,   93,  553,   89,  102,
00766       102,  552,   93,  551,   89,  550,   93,   92,  103,  103,
00767        73,  102,  123,  123,  124,  124,  549,  124,  124,  547,
00768       103,  125,  125,  123,  130,  130,  132,  132,  138,  138,
00769       140,  140,  125,  158,  158,  546,  130,  545,  132,  544,
00770 
00771       138,  125,  140,  543,  125,  158,  160,  160,  162,  162,
00772       163,  163,  165,  165,  166,  166,  167,  167,  160,  542,
00773       162,  541,  163,  540,  165,  168,  168,  539,  167,  177,
00774       177,  180,  180,  183,  183,  184,  184,  168,  184,  184,
00775       538,  177,  537,  180,  183,  185,  185,  536,  185,  185,
00776       186,  186,  187,  187,  535,  187,  187,  191,  191,  193,
00777       193,  186,  195,  195,  197,  197,  168,  534,  191,  199,
00778       199,  193,  200,  200,  195,  533,  197,  201,  201,  203,
00779       203,  199,  204,  204,  200,  205,  205,  206,  206,  208,
00780       208,  203,  217,  217,  220,  220,  532,  205,  531,  206,
00781 
00782       223,  223,  224,  224,  217,  530,  220,  226,  226,  227,
00783       227,  529,  223,  229,  229,  230,  230,  231,  231,  226,
00784       232,  232,  233,  233,  528,  229,  234,  234,  206,  235,
00785       235,  236,  236,  527,  233,  241,  241,  246,  246,  247,
00786       247,  235,  248,  248,  250,  250,  526,  241,  525,  246,
00787       251,  251,  254,  254,  248,  524,  250,  255,  255,  523,
00788       255,  255,  522,  254,  256,  256,  258,  258,  521,  258,
00789       258,  259,  259,  263,  263,  264,  264,  520,  264,  264,
00790       265,  265,  266,  266,  263,  267,  267,  269,  269,  270,
00791       270,  265,  272,  272,  266,  273,  273,  274,  274,  269,
00792 
00793       276,  276,  277,  277,  272,  278,  278,  279,  279,  280,
00794       280,  283,  283,  519,  277,  286,  286,  287,  287,  279,
00795       292,  292,  293,  293,  294,  294,  518,  286,  517,  287,
00796       296,  296,  292,  297,  297,  516,  294,  300,  300,  302,
00797       302,  514,  296,  304,  304,  305,  305,  306,  306,  307,
00798       307,  311,  311,  312,  312,  313,  313,  317,  317,  318,
00799       318,  307,  513,  311,  319,  319,  512,  313,  321,  321,
00800       511,  318,  322,  322,  324,  324,  510,  324,  324,  325,
00801       325,  326,  326,  509,  322,  327,  327,  328,  328,  330,
00802       330,  506,  330,  330,  331,  331,  327,  505,  328,  332,
00803 
00804       332,  333,  333,  504,  333,  333,  334,  334,  336,  336,
00805       332,  338,  338,  340,  340,  341,  341,  342,  342,  346,
00806       346,  347,  347,  348,  348,  349,  349,  350,  350,  342,
00807       503,  346,  354,  354,  502,  348,  355,  355,  501,  350,
00808       356,  356,  358,  358,  359,  359,  362,  362,  355,  363,
00809       363,  364,  364,  365,  365,  499,  359,  498,  362,  368,
00810       368,  363,  369,  369,  497,  365,  370,  370,  373,  373,
00811       374,  374,  375,  375,  369,  376,  376,  378,  378,  379,
00812       379,  496,  374,  495,  375,  380,  380,  494,  380,  380,
00813       379,  381,  381,  382,  382,  493,  382,  382,  384,  384,
00814 
00815       385,  385,  381,  385,  385,  386,  386,  388,  388,  390,
00816       390,  391,  391,  392,  392,  394,  394,  395,  395,  388,
00817       492,  390,  396,  396,  491,  392,  490,  394,  397,  397,
00818       398,  398,  402,  402,  403,  403,  404,  404,  405,  405,
00819       397,  407,  407,  408,  408,  489,  403,  488,  404,  409,
00820       409,  410,  410,  407,  487,  408,  411,  411,  412,  412,
00821       414,  414,  415,  415,  417,  417,  418,  418,  411,  419,
00822       419,  422,  422,  486,  415,  485,  417,  421,  421,  484,
00823       421,  421,  423,  423,  483,  423,  423,  424,  424,  426,
00824       426,  427,  427,  428,  428,  429,  429,  431,  431,  432,
00825 
00826       432,  433,  433,  427,  482,  428,  435,  435,  437,  437,
00827       479,  432,  438,  438,  440,  440,  441,  441,  435,  442,
00828       442,  444,  444,  477,  438,  476,  440,  445,  445,  446,
00829       446,  447,  447,  444,  449,  449,  450,  450,  452,  452,
00830       454,  454,  455,  455,  458,  458,  449,  459,  459,  460,
00831       460,  462,  462,  464,  464,  474,  458,  465,  465,  467,
00832       467,  468,  468,  469,  469,  464,  471,  471,  475,  475,
00833       478,  478,  473,  468,  480,  480,  500,  500,  507,  507,
00834       508,  508,  515,  515,  556,  556,  480,  472,  500,  470,
00835       507,  557,  557,  560,  560,  556,  561,  561,  466,  561,
00836 
00837       561,  562,  562,  463,  560,  563,  563,  565,  565,  461,
00838       565,  565,  566,  566,  567,  567,  569,  569,  572,  572,
00839       573,  573,  574,  574,  457,  574,  574,  576,  576,  572,
00840       456,  573,  575,  575,  451,  575,  575,  577,  577,  579,
00841       579,  580,  580,  581,  581,  582,  582,  583,  583,  448,
00842       443,  439,  434,  430,  420,  416,  413,  406,  401,  399,
00843       393,  389,  387,  383,  377,  372,  371,  366,  361,  360,
00844       357,  353,  352,  351,  345,  344,  343,  339,  337,  335,
00845       329,  323,  320,  316,  314,  310,  309,  308,  303,  301,
00846       299,  298,  295,  291,  290,  289,  288,  285,  284,  282,
00847 
00848       281,  275,  271,  268,  262,  261,  260,  253,  252,  249,
00849       245,  244,  243,  242,  240,  239,  238,  237,  228,  225,
00850       222,  221,  219,  218,  216,  215,  214,  213,  212,  211,
00851       210,  209,  207,  202,  198,  196,  192,  190,  189,  188,
00852       182,  181,  179,  178,  176,  175,  174,  173,  172,  171,
00853       170,  169,  161,  159,  157,  156,  155,  153,  152,  151,
00854       150,  149,  148,  147,  146,  145,  144,  143,  142,  141,
00855       139,  137,  136,  135,  134,  133,  128,  127,  126,  122,
00856       119,  118,  117,  115,  114,  113,  112,  111,  110,  109,
00857       108,  106,  105,  104,  101,  100,   99,   98,   97,   95,
00858 
00859        94,   90,   87,   85,   84,   83,   81,   79,   78,   77,
00860        76,   75,   74,   72,   70,   68,   67,   66,   60,   59,
00861        58,   57,   56,   54,   50,   46,   43,   42,   41,   40,
00862        39,   36,   34,   31,   26,   22,   15,  578,  578,  578,
00863       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00864       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00865       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00866       578,  578,  578,  578,  578,  578,  578,  578,  578,  578,
00867       578,  578,  578,  578,  578
00868     } ;
00869 
00870 /* Table of booleans, true if rule could match eol. */
00871 static yyconst flex_int32_t yy_rule_can_match_eol[84] =
00872     {   0,
00873 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
00874     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
00875     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
00876     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 
00877     0, 1, 0, 0,     };
00878 
00879 /* The intent behind this definition is that it'll catch
00880  * any uses of REJECT which flex missed.
00881  */
00882 #define REJECT reject_used_but_not_detected
00883 #define yymore() yymore_used_but_not_detected
00884 #define YY_MORE_ADJ 0
00885 #define YY_RESTORE_YY_MORE_OFFSET
00886 #line 1 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
00887 
00901 #line 16 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
00902 
00903 #include <iostream>
00904 #include "OSConfig.h"
00905 
00906 
00907 
00908 
00909 
00910 
00911 #ifdef HAVE_CSTDIO
00912 # include <cstdio>
00913 #else
00914 # ifdef HAVE_STDIO_H
00915 #  include <stdio.h>
00916 # else
00917 #  error "don't have header file for stdio"
00918 # endif
00919 #endif
00920 
00921 #ifdef HAVE_CTIME
00922 # include <ctime>
00923 #else
00924 # ifdef HAVE_TIME_H
00925 #  include <time.h>
00926 # else
00927 #  error "don't have header file for time"
00928 # endif
00929 #endif
00930 
00931 #ifdef HAVE_CMATH
00932 # include <cmath>
00933 #else
00934 # ifdef HAVE_MATH_H
00935 #  include <math.h>
00936 # else
00937 #  error "don't have header file for math"
00938 # endif
00939 #endif
00940 
00941 #include <sstream>  
00942 #include "OSiLParserData.h"
00943 
00944 
00945 
00946 #include "ErrorClass.h"
00947 #include "parseosil.tab.hpp"
00948 #include "OSInstance.h"
00949 
00950 
00951 
00952 
00953 #ifdef PARSERDEBUG
00954         #define YY_PRINT  printf("%s", yytext);
00955 #else     
00956         #define YY_PRINT ;
00957 #endif
00958 #ifdef WIN_
00959 #define YY_NO_UNISTD_H
00960 #include <io.h>
00961 #include <process.h>
00962 #endif
00963 using std::cout;
00964 using std::endl;
00965 using std::ostringstream;
00966 
00967 
00968 
00969 
00970 
00971 
00972 #line 973 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.cpp"
00973 
00974 #define INITIAL 0
00975 #define attributetext 1
00976 #define startelement 2
00977 #define osilattributetext 3
00978 #define elementtext 4
00979 #define comment 5
00980 #define xmldeclaration 6
00981 
00982 #ifndef YY_NO_UNISTD_H
00983 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00984  * down here because we want the user's section 1 to have been scanned first.
00985  * The user has a chance to override it with an option.
00986  */
00987 #include <unistd.h>
00988 #endif
00989 
00990 #ifndef YY_EXTRA_TYPE
00991 #define YY_EXTRA_TYPE void *
00992 #endif
00993 
00994 /* Holds the entire state of the reentrant scanner. */
00995 struct yyguts_t
00996     {
00997 
00998     /* User-defined. Not touched by flex. */
00999     YY_EXTRA_TYPE yyextra_r;
01000 
01001     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01002     FILE *yyin_r, *yyout_r;
01003     size_t yy_buffer_stack_top; 
01004     size_t yy_buffer_stack_max; 
01005     YY_BUFFER_STATE * yy_buffer_stack; 
01006     char yy_hold_char;
01007     int yy_n_chars;
01008     int yyleng_r;
01009     char *yy_c_buf_p;
01010     int yy_init;
01011     int yy_start;
01012     int yy_did_buffer_switch_on_eof;
01013     int yy_start_stack_ptr;
01014     int yy_start_stack_depth;
01015     int *yy_start_stack;
01016     yy_state_type yy_last_accepting_state;
01017     char* yy_last_accepting_cpos;
01018 
01019     int yylineno_r;
01020     int yy_flex_debug_r;
01021 
01022     char *yytext_r;
01023     int yy_more_flag;
01024     int yy_more_len;
01025 
01026     YYSTYPE * yylval_r;
01027 
01028     YYLTYPE * yylloc_r;
01029 
01030     }; /* end struct yyguts_t */
01031 
01032 static int yy_init_globals (yyscan_t yyscanner );
01033 
01034     /* This must go here because YYSTYPE and YYLTYPE are included
01035      * from bison output in section 1.*/
01036     #    define yylval yyg->yylval_r
01037     
01038     #    define yylloc yyg->yylloc_r
01039     
01040 /* Accessor methods to globals.
01041    These are made visible to non-reentrant scanners for convenience. */
01042 
01043 int osillex_destroy (yyscan_t yyscanner );
01044 
01045 int osilget_debug (yyscan_t yyscanner );
01046 
01047 void osilset_debug (int debug_flag ,yyscan_t yyscanner );
01048 
01049 YY_EXTRA_TYPE osilget_extra (yyscan_t yyscanner );
01050 
01051 void osilset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01052 
01053 FILE *osilget_in (yyscan_t yyscanner );
01054 
01055 void osilset_in  (FILE * in_str ,yyscan_t yyscanner );
01056 
01057 FILE *osilget_out (yyscan_t yyscanner );
01058 
01059 void osilset_out  (FILE * out_str ,yyscan_t yyscanner );
01060 
01061 int osilget_leng (yyscan_t yyscanner );
01062 
01063 char *osilget_text (yyscan_t yyscanner );
01064 
01065 int osilget_lineno (yyscan_t yyscanner );
01066 
01067 void osilset_lineno (int line_number ,yyscan_t yyscanner );
01068 
01069 YYSTYPE * osilget_lval (yyscan_t yyscanner );
01070 
01071 void osilset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01072 
01073        YYLTYPE *osilget_lloc (yyscan_t yyscanner );
01074     
01075         void osilset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01076     
01077 /* Macros after this point can all be overridden by user definitions in
01078  * section 1.
01079  */
01080 
01081 #ifndef YY_SKIP_YYWRAP
01082 #ifdef __cplusplus
01083 extern "C" int osilwrap (yyscan_t yyscanner );
01084 #else
01085 extern int osilwrap (yyscan_t yyscanner );
01086 #endif
01087 #endif
01088 
01089     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
01090     
01091 #ifndef yytext_ptr
01092 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01093 #endif
01094 
01095 #ifdef YY_NEED_STRLEN
01096 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01097 #endif
01098 
01099 #ifndef YY_NO_INPUT
01100 
01101 #ifdef __cplusplus
01102 static int yyinput (yyscan_t yyscanner );
01103 #else
01104 static int input (yyscan_t yyscanner );
01105 #endif
01106 
01107 #endif
01108 
01109 /* Amount of stuff to slurp up with each read. */
01110 #ifndef YY_READ_BUF_SIZE
01111 #define YY_READ_BUF_SIZE 8192
01112 #endif
01113 
01114 /* Copy whatever the last rule matched to the standard output. */
01115 #ifndef ECHO
01116 /* This used to be an fputs(), but since the string might contain NUL's,
01117  * we now use fwrite().
01118  */
01119 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01120 #endif
01121 
01122 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01123  * is returned in "result".
01124  */
01125 #ifndef YY_INPUT
01126 #define YY_INPUT(buf,result,max_size) \
01127         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01128                 { \
01129                 int c = '*'; \
01130                 size_t n; \
01131                 for ( n = 0; n < max_size && \
01132                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01133                         buf[n] = (char) c; \
01134                 if ( c == '\n' ) \
01135                         buf[n++] = (char) c; \
01136                 if ( c == EOF && ferror( yyin ) ) \
01137                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01138                 result = n; \
01139                 } \
01140         else \
01141                 { \
01142                 errno=0; \
01143                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01144                         { \
01145                         if( errno != EINTR) \
01146                                 { \
01147                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01148                                 break; \
01149                                 } \
01150                         errno=0; \
01151                         clearerr(yyin); \
01152                         } \
01153                 }\
01154 \
01155 
01156 #endif
01157 
01158 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01159  * we don't want an extra ';' after the "return" because that will cause
01160  * some compilers to complain about unreachable statements.
01161  */
01162 #ifndef yyterminate
01163 #define yyterminate() return YY_NULL
01164 #endif
01165 
01166 /* Number of entries by which start-condition stack grows. */
01167 #ifndef YY_START_STACK_INCR
01168 #define YY_START_STACK_INCR 25
01169 #endif
01170 
01171 /* Report a fatal error. */
01172 #ifndef YY_FATAL_ERROR
01173 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01174 #endif
01175 
01176 /* end tables serialization structures and prototypes */
01177 
01178 /* Default declaration of generated scanner - a define so the user can
01179  * easily add parameters.
01180  */
01181 #ifndef YY_DECL
01182 #define YY_DECL_IS_OURS 1
01183 
01184 extern int osillex (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01185 
01186 #define YY_DECL int osillex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01187 #endif /* !YY_DECL */
01188 
01189 /* Code executed at the beginning of each rule, after yytext and yyleng
01190  * have been set up.
01191  */
01192 #ifndef YY_USER_ACTION
01193 #define YY_USER_ACTION
01194 #endif
01195 
01196 /* Code executed at the end of each rule. */
01197 #ifndef YY_BREAK
01198 #define YY_BREAK break;
01199 #endif
01200 
01201 #define YY_RULE_SETUP \
01202         YY_USER_ACTION
01203 
01206 YY_DECL
01207 {
01208         register yy_state_type yy_current_state;
01209         register char *yy_cp, *yy_bp;
01210         register int yy_act;
01211     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01212 
01213 #line 103 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01214 
01215  
01216 #line 1217 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.cpp"
01217 
01218     yylval = yylval_param;
01219 
01220     yylloc = yylloc_param;
01221 
01222         if ( !yyg->yy_init )
01223                 {
01224                 yyg->yy_init = 1;
01225 
01226 #ifdef YY_USER_INIT
01227                 YY_USER_INIT;
01228 #endif
01229 
01230                 if ( ! yyg->yy_start )
01231                         yyg->yy_start = 1;      /* first start state */
01232 
01233                 if ( ! yyin )
01234                         yyin = stdin;
01235 
01236                 if ( ! yyout )
01237                         yyout = stdout;
01238 
01239                 if ( ! YY_CURRENT_BUFFER ) {
01240                         osilensure_buffer_stack (yyscanner);
01241                         YY_CURRENT_BUFFER_LVALUE =
01242                                 osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01243                 }
01244 
01245                 osil_load_buffer_state(yyscanner );
01246                 }
01247 
01248         while ( 1 )             /* loops until end-of-file is reached */
01249                 {
01250                 yy_cp = yyg->yy_c_buf_p;
01251 
01252                 /* Support of yytext. */
01253                 *yy_cp = yyg->yy_hold_char;
01254 
01255                 /* yy_bp points to the position in yy_ch_buf of the start of
01256                  * the current run.
01257                  */
01258                 yy_bp = yy_cp;
01259 
01260                 yy_current_state = yyg->yy_start;
01261 yy_match:
01262                 do
01263                         {
01264                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01265                         if ( yy_accept[yy_current_state] )
01266                                 {
01267                                 yyg->yy_last_accepting_state = yy_current_state;
01268                                 yyg->yy_last_accepting_cpos = yy_cp;
01269                                 }
01270                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01271                                 {
01272                                 yy_current_state = (int) yy_def[yy_current_state];
01273                                 if ( yy_current_state >= 579 )
01274                                         yy_c = yy_meta[(unsigned int) yy_c];
01275                                 }
01276                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01277                         ++yy_cp;
01278                         }
01279                 while ( yy_base[yy_current_state] != 1038 );
01280 
01281 yy_find_action:
01282                 yy_act = yy_accept[yy_current_state];
01283                 if ( yy_act == 0 )
01284                         { /* have to back up */
01285                         yy_cp = yyg->yy_last_accepting_cpos;
01286                         yy_current_state = yyg->yy_last_accepting_state;
01287                         yy_act = yy_accept[yy_current_state];
01288                         }
01289 
01290                 YY_DO_BEFORE_ACTION;
01291 
01292                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01293                         {
01294                         int yyl;
01295                         for ( yyl = 0; yyl < yyleng; ++yyl )
01296                                 if ( yytext[yyl] == '\n' )
01297                                            
01298     do{ yylineno++;
01299         yycolumn=0;
01300     }while(0)
01301 ;
01302                         }
01303 
01304 do_action:      /* This label is used only to access EOF actions. */
01305 
01306                 switch ( yy_act )
01307         { /* beginning of action switch */
01308                         case 0: /* must back up */
01309                         /* undo the effects of YY_DO_BEFORE_ACTION */
01310                         *yy_cp = yyg->yy_hold_char;
01311                         yy_cp = yyg->yy_last_accepting_cpos;
01312                         yy_current_state = yyg->yy_last_accepting_state;
01313                         goto yy_find_action;
01314 
01315 case 1:
01316 /* rule 1 can match eol */
01317 YY_RULE_SETUP
01318 #line 105 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01319 
01320         YY_BREAK
01321 case 2:
01322 YY_RULE_SETUP
01323 #line 107 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01324 {YY_PRINT; return(QUOTE);}
01325         YY_BREAK
01326 case 3:
01327 /* rule 3 can match eol */
01328 YY_RULE_SETUP
01329 #line 108 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01330 {YY_PRINT; return(GREATERTHAN);}
01331         YY_BREAK
01332 case 4:
01333 YY_RULE_SETUP
01334 #line 109 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01335 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
01336         YY_BREAK
01337 case 5:
01338 YY_RULE_SETUP
01339 #line 110 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01340 {YY_PRINT; yylval->dval = atof(yytext); return(DOUBLE);}
01341         YY_BREAK
01342 case 6:
01343 /* rule 6 can match eol */
01344 YY_RULE_SETUP
01345 #line 111 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01346 {YY_PRINT;  return(ENDOFELEMENT);}
01347         YY_BREAK
01348 case 7:
01349 /* rule 7 can match eol */
01350 YY_RULE_SETUP
01351 #line 116 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01352 {YY_PRINT; return(OSILEND);}
01353         YY_BREAK
01354 case 8:
01355 /* rule 8 can match eol */
01356 YY_RULE_SETUP
01357 #line 117 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01358 {YY_PRINT; return(NUMBEROFNONLINEAREXPRESSIONS);}
01359         YY_BREAK
01360 case 9:
01361 /* rule 9 can match eol */
01362 YY_RULE_SETUP
01363 #line 118 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01364 {YY_PRINT; return(INSTANCEDATAEND);}
01365         YY_BREAK
01366 case 10:
01367 /* rule 10 can match eol */
01368 YY_RULE_SETUP
01369 #line 119 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01370 {YY_PRINT; return(QUADRATICCOEFFICIENTSSTART);}
01371         YY_BREAK
01372 case 11:
01373 /* rule 11 can match eol */
01374 YY_RULE_SETUP
01375 #line 120 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01376 {YY_PRINT; return(QUADRATICCOEFFICIENTSEND);}
01377         YY_BREAK
01378 case 12:
01379 /* rule 12 can match eol */
01380 YY_RULE_SETUP
01381 #line 121 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01382 {YY_PRINT; return(QTERMSTART);}
01383         YY_BREAK
01384 case 13:
01385 /* rule 13 can match eol */
01386 YY_RULE_SETUP
01387 #line 122 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01388 {YY_PRINT; return(QTERMEND);}
01389         YY_BREAK
01390 case 14:
01391 /* rule 14 can match eol */
01392 YY_RULE_SETUP
01393 #line 123 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01394 {YY_PRINT; return(NUMBEROFQTERMSATT);}
01395         YY_BREAK
01396 case 15:
01397 /* rule 15 can match eol */
01398 YY_RULE_SETUP
01399 #line 124 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01400 {YY_PRINT;   return(IDXATT);}
01401         YY_BREAK
01402 case 16:
01403 /* rule 16 can match eol */
01404 YY_RULE_SETUP
01405 #line 125 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01406 {YY_PRINT;   return(IDXONEATT);}
01407         YY_BREAK
01408 case 17:
01409 /* rule 17 can match eol */
01410 YY_RULE_SETUP
01411 #line 126 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01412 {YY_PRINT;   return(IDXTWOATT);}
01413         YY_BREAK
01414 case 18:
01415 /* rule 18 can match eol */
01416 YY_RULE_SETUP
01417 #line 127 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01418 {YY_PRINT;   return(COEFATT);}
01419         YY_BREAK
01420 case 19:
01421 /* rule 19 can match eol */
01422 YY_RULE_SETUP
01423 #line 128 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01424 {YY_PRINT;  return(VALUEATT);}
01425         YY_BREAK
01426 case 20:
01427 /* rule 20 can match eol */
01428 YY_RULE_SETUP
01429 #line 129 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01430 {YY_PRINT; BEGIN attributetext; return(IDATT);}
01431         YY_BREAK
01432 case 21:
01433 /* rule 21 can match eol */
01434 YY_RULE_SETUP
01435 #line 130 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01436 {YY_PRINT; unput('\"'); return(IDATT);  }
01437         YY_BREAK
01438 case 22:
01439 /* rule 22 can match eol */
01440 YY_RULE_SETUP
01441 #line 131 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01442 {YY_PRINT; BEGIN attributetext; return(TYPEATT);}
01443         YY_BREAK
01444 case 23:
01445 /* rule 23 can match eol */
01446 YY_RULE_SETUP
01447 #line 133 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01448 {YY_PRINT;  return(NONLINEAREXPRESSIONSSTART);}
01449         YY_BREAK
01450 case 24:
01451 /* rule 24 can match eol */
01452 YY_RULE_SETUP
01453 #line 134 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01454 {YY_PRINT; return(NONLINEAREXPRESSIONSEND);}
01455         YY_BREAK
01456 case 25:
01457 /* rule 25 can match eol */
01458 YY_RULE_SETUP
01459 #line 135 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01460 {YY_PRINT; return(NLSTART);}
01461         YY_BREAK
01462 case 26:
01463 /* rule 26 can match eol */
01464 YY_RULE_SETUP
01465 #line 136 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01466 {YY_PRINT; return(NLEND);}
01467         YY_BREAK
01468 case 27:
01469 /* rule 27 can match eol */
01470 YY_RULE_SETUP
01471 #line 137 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01472 {YY_PRINT; return(TIMESSTART);}
01473         YY_BREAK
01474 case 28:
01475 /* rule 28 can match eol */
01476 YY_RULE_SETUP
01477 #line 138 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01478 {YY_PRINT; return(TIMESEND);}
01479         YY_BREAK
01480 case 29:
01481 /* rule 29 can match eol */
01482 YY_RULE_SETUP
01483 #line 139 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01484 {YY_PRINT; return(DIVIDESTART);}
01485         YY_BREAK
01486 case 30:
01487 /* rule 30 can match eol */
01488 YY_RULE_SETUP
01489 #line 140 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01490 {YY_PRINT; return(DIVIDEEND);}
01491         YY_BREAK
01492 case 31:
01493 /* rule 31 can match eol */
01494 YY_RULE_SETUP
01495 #line 141 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01496 {YY_PRINT; return(PLUSSTART);}
01497         YY_BREAK
01498 case 32:
01499 /* rule 32 can match eol */
01500 YY_RULE_SETUP
01501 #line 142 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01502 {YY_PRINT; return(PLUSEND);}
01503         YY_BREAK
01504 case 33:
01505 /* rule 33 can match eol */
01506 YY_RULE_SETUP
01507 #line 143 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01508 {YY_PRINT; return(MINUSSTART);}
01509         YY_BREAK
01510 case 34:
01511 /* rule 34 can match eol */
01512 YY_RULE_SETUP
01513 #line 144 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01514 {YY_PRINT; return(MINUSEND);}
01515         YY_BREAK
01516 case 35:
01517 /* rule 35 can match eol */
01518 YY_RULE_SETUP
01519 #line 145 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01520 {YY_PRINT; return(NEGATESTART);}
01521         YY_BREAK
01522 case 36:
01523 /* rule 36 can match eol */
01524 YY_RULE_SETUP
01525 #line 146 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01526 {YY_PRINT; return(NEGATEEND);}
01527         YY_BREAK
01528 case 37:
01529 /* rule 37 can match eol */
01530 YY_RULE_SETUP
01531 #line 147 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01532 {YY_PRINT; return(POWERSTART);}
01533         YY_BREAK
01534 case 38:
01535 /* rule 38 can match eol */
01536 YY_RULE_SETUP
01537 #line 148 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01538 {YY_PRINT; return(POWEREND);}
01539         YY_BREAK
01540 case 39:
01541 /* rule 39 can match eol */
01542 YY_RULE_SETUP
01543 #line 149 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01544 {YY_PRINT; return(LNSTART);}
01545         YY_BREAK
01546 case 40:
01547 /* rule 40 can match eol */
01548 YY_RULE_SETUP
01549 #line 150 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01550 {YY_PRINT; return(LNEND);}
01551         YY_BREAK
01552 case 41:
01553 /* rule 41 can match eol */
01554 YY_RULE_SETUP
01555 #line 151 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01556 {YY_PRINT; return(SQRTSTART);}
01557         YY_BREAK
01558 case 42:
01559 /* rule 42 can match eol */
01560 YY_RULE_SETUP
01561 #line 152 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01562 {YY_PRINT; return(SQRTEND);}
01563         YY_BREAK
01564 case 43:
01565 /* rule 43 can match eol */
01566 YY_RULE_SETUP
01567 #line 153 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01568 {YY_PRINT; return(SQUARESTART);}
01569         YY_BREAK
01570 case 44:
01571 /* rule 44 can match eol */
01572 YY_RULE_SETUP
01573 #line 154 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01574 {YY_PRINT; return(SQUAREEND);}
01575         YY_BREAK
01576 case 45:
01577 /* rule 45 can match eol */
01578 YY_RULE_SETUP
01579 #line 155 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01580 {YY_PRINT; return(SINSTART);}
01581         YY_BREAK
01582 case 46:
01583 /* rule 46 can match eol */
01584 YY_RULE_SETUP
01585 #line 156 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01586 {YY_PRINT; return(SINEND);}
01587         YY_BREAK
01588 case 47:
01589 /* rule 47 can match eol */
01590 YY_RULE_SETUP
01591 #line 157 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01592 {YY_PRINT; return(COSSTART);}
01593         YY_BREAK
01594 case 48:
01595 /* rule 48 can match eol */
01596 YY_RULE_SETUP
01597 #line 158 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01598 {YY_PRINT; return(COSEND);}
01599         YY_BREAK
01600 case 49:
01601 /* rule 49 can match eol */
01602 YY_RULE_SETUP
01603 #line 159 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01604 {YY_PRINT; return(EXPSTART);}
01605         YY_BREAK
01606 case 50:
01607 /* rule 50 can match eol */
01608 YY_RULE_SETUP
01609 #line 160 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01610 {YY_PRINT; return(EXPEND);}
01611         YY_BREAK
01612 case 51:
01613 /* rule 51 can match eol */
01614 YY_RULE_SETUP
01615 #line 161 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01616 {YY_PRINT; return(ABSSTART);}
01617         YY_BREAK
01618 case 52:
01619 /* rule 52 can match eol */
01620 YY_RULE_SETUP
01621 #line 162 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01622 {YY_PRINT; return(ABSEND);}
01623         YY_BREAK
01624 case 53:
01625 /* rule 53 can match eol */
01626 YY_RULE_SETUP
01627 #line 165 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01628 {YY_PRINT; return(IFSTART);}
01629         YY_BREAK
01630 case 54:
01631 /* rule 54 can match eol */
01632 YY_RULE_SETUP
01633 #line 166 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01634 {YY_PRINT; return(IFEND);}
01635         YY_BREAK
01636 case 55:
01637 /* rule 55 can match eol */
01638 YY_RULE_SETUP
01639 #line 168 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01640 {YY_PRINT; return(MAXSTART);}
01641         YY_BREAK
01642 case 56:
01643 /* rule 56 can match eol */
01644 YY_RULE_SETUP
01645 #line 169 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01646 {YY_PRINT; return(MAXEND);}
01647         YY_BREAK
01648 case 57:
01649 /* rule 57 can match eol */
01650 YY_RULE_SETUP
01651 #line 171 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01652 {YY_PRINT; return(MINSTART);}
01653         YY_BREAK
01654 case 58:
01655 /* rule 58 can match eol */
01656 YY_RULE_SETUP
01657 #line 172 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01658 {YY_PRINT; return(MINEND);}
01659         YY_BREAK
01660 case 59:
01661 /* rule 59 can match eol */
01662 YY_RULE_SETUP
01663 #line 174 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01664 {YY_PRINT; return(SUMSTART);}
01665         YY_BREAK
01666 case 60:
01667 /* rule 60 can match eol */
01668 YY_RULE_SETUP
01669 #line 175 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01670 {YY_PRINT; return(SUMEND);}
01671         YY_BREAK
01672 case 61:
01673 /* rule 61 can match eol */
01674 YY_RULE_SETUP
01675 #line 176 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01676 {YY_PRINT; return(ALLDIFFSTART);}
01677         YY_BREAK
01678 case 62:
01679 /* rule 62 can match eol */
01680 YY_RULE_SETUP
01681 #line 177 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01682 {YY_PRINT; return(ALLDIFFEND);}
01683         YY_BREAK
01684 case 63:
01685 /* rule 63 can match eol */
01686 YY_RULE_SETUP
01687 #line 178 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01688 {YY_PRINT; return(PRODUCTSTART);}
01689         YY_BREAK
01690 case 64:
01691 /* rule 64 can match eol */
01692 YY_RULE_SETUP
01693 #line 179 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01694 {YY_PRINT; return(PRODUCTEND);}
01695         YY_BREAK
01696 case 65:
01697 /* rule 65 can match eol */
01698 YY_RULE_SETUP
01699 #line 180 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01700 {YY_PRINT; return(NUMBERSTART);}
01701         YY_BREAK
01702 case 66:
01703 /* rule 66 can match eol */
01704 YY_RULE_SETUP
01705 #line 181 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01706 {YY_PRINT; return(NUMBEREND);}
01707         YY_BREAK
01708 case 67:
01709 /* rule 67 can match eol */
01710 YY_RULE_SETUP
01711 #line 182 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01712 {YY_PRINT; return(ESTART);}
01713         YY_BREAK
01714 case 68:
01715 /* rule 68 can match eol */
01716 YY_RULE_SETUP
01717 #line 183 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01718 {YY_PRINT; return(EEND);}
01719         YY_BREAK
01720 case 69:
01721 /* rule 69 can match eol */
01722 YY_RULE_SETUP
01723 #line 184 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01724 {YY_PRINT; return(PISTART);}
01725         YY_BREAK
01726 case 70:
01727 /* rule 70 can match eol */
01728 YY_RULE_SETUP
01729 #line 185 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01730 {YY_PRINT; return(PIEND);}
01731         YY_BREAK
01732 case 71:
01733 /* rule 71 can match eol */
01734 YY_RULE_SETUP
01735 #line 186 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01736 {YY_PRINT;  return(VARIABLESTART);}
01737         YY_BREAK
01738 case 72:
01739 /* rule 72 can match eol */
01740 YY_RULE_SETUP
01741 #line 187 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01742 {YY_PRINT; return(VARIABLEEND);}
01743         YY_BREAK
01744 case 73:
01745 YY_RULE_SETUP
01746 #line 189 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01747 BEGIN comment;
01748         YY_BREAK
01749 case 74:
01750 #line 191 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01751 case 75:
01752 /* rule 75 can match eol */
01753 YY_RULE_SETUP
01754 #line 191 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01755 ;
01756         YY_BREAK
01757 case 76:
01758 YY_RULE_SETUP
01759 #line 192 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01760 BEGIN 0;
01761         YY_BREAK
01762 case 77:
01763 YY_RULE_SETUP
01764 #line 194 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01765 BEGIN xmldeclaration;
01766         YY_BREAK
01767 case 78:
01768 #line 196 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01769 case 79:
01770 /* rule 79 can match eol */
01771 YY_RULE_SETUP
01772 #line 196 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01773 ;
01774         YY_BREAK
01775 case 80:
01776 YY_RULE_SETUP
01777 #line 197 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01778 BEGIN 0;
01779         YY_BREAK
01780 case 81:
01781 /* rule 81 can match eol */
01782 YY_RULE_SETUP
01783 #line 200 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01784 {YY_PRINT;  BEGIN 0; yylval->sval = strdup(yytext); return(ATTRIBUTETEXT);}
01785         YY_BREAK
01786 case 82:
01787 YY_RULE_SETUP
01788 #line 203 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01789 {  
01790         std::string error;
01791         std::ostringstream outStr;
01792         outStr << "ecountered a spurious character in the lexer" << endl;
01793         outStr << "The first character is: ";
01794         outStr <<  yytext;
01795         outStr << endl;
01796         outStr << "See line number: " << yylineno << endl;  
01797         error = outStr.str();
01798         throw ErrorClass( error);
01799 }
01800         YY_BREAK
01801 case 83:
01802 YY_RULE_SETUP
01803 #line 215 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
01804 ECHO;
01805         YY_BREAK
01806 #line 1807 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.cpp"
01807 case YY_STATE_EOF(INITIAL):
01808 case YY_STATE_EOF(attributetext):
01809 case YY_STATE_EOF(startelement):
01810 case YY_STATE_EOF(osilattributetext):
01811 case YY_STATE_EOF(elementtext):
01812 case YY_STATE_EOF(comment):
01813 case YY_STATE_EOF(xmldeclaration):
01814         yyterminate();
01815 
01816         case YY_END_OF_BUFFER:
01817                 {
01818                 /* Amount of text matched not including the EOB char. */
01819                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
01820 
01821                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
01822                 *yy_cp = yyg->yy_hold_char;
01823                 YY_RESTORE_YY_MORE_OFFSET
01824 
01825                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01826                         {
01827                         /* We're scanning a new file or input source.  It's
01828                          * possible that this happened because the user
01829                          * just pointed yyin at a new source and called
01830                          * osillex().  If so, then we have to assure
01831                          * consistency between YY_CURRENT_BUFFER and our
01832                          * globals.  Here is the right place to do so, because
01833                          * this is the first action (other than possibly a
01834                          * back-up) that will match for the new input source.
01835                          */
01836                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01837                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01838                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01839                         }
01840 
01841                 /* Note that here we test for yy_c_buf_p "<=" to the position
01842                  * of the first EOB in the buffer, since yy_c_buf_p will
01843                  * already have been incremented past the NUL character
01844                  * (since all states make transitions on EOB to the
01845                  * end-of-buffer state).  Contrast this with the test
01846                  * in input().
01847                  */
01848                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01849                         { /* This was really a NUL. */
01850                         yy_state_type yy_next_state;
01851 
01852                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
01853 
01854                         yy_current_state = yy_get_previous_state( yyscanner );
01855 
01856                         /* Okay, we're now positioned to make the NUL
01857                          * transition.  We couldn't have
01858                          * yy_get_previous_state() go ahead and do it
01859                          * for us because it doesn't know how to deal
01860                          * with the possibility of jamming (and we don't
01861                          * want to build jamming into it because then it
01862                          * will run more slowly).
01863                          */
01864 
01865                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
01866 
01867                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01868 
01869                         if ( yy_next_state )
01870                                 {
01871                                 /* Consume the NUL. */
01872                                 yy_cp = ++yyg->yy_c_buf_p;
01873                                 yy_current_state = yy_next_state;
01874                                 goto yy_match;
01875                                 }
01876 
01877                         else
01878                                 {
01879                                 yy_cp = yyg->yy_c_buf_p;
01880                                 goto yy_find_action;
01881                                 }
01882                         }
01883 
01884                 else switch ( yy_get_next_buffer( yyscanner ) )
01885                         {
01886                         case EOB_ACT_END_OF_FILE:
01887                                 {
01888                                 yyg->yy_did_buffer_switch_on_eof = 0;
01889 
01890                                 if ( osilwrap(yyscanner ) )
01891                                         {
01892                                         /* Note: because we've taken care in
01893                                          * yy_get_next_buffer() to have set up
01894                                          * yytext, we can now set up
01895                                          * yy_c_buf_p so that if some total
01896                                          * hoser (like flex itself) wants to
01897                                          * call the scanner after we return the
01898                                          * YY_NULL, it'll still work - another
01899                                          * YY_NULL will get returned.
01900                                          */
01901                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
01902 
01903                                         yy_act = YY_STATE_EOF(YY_START);
01904                                         goto do_action;
01905                                         }
01906 
01907                                 else
01908                                         {
01909                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
01910                                                 YY_NEW_FILE;
01911                                         }
01912                                 break;
01913                                 }
01914 
01915                         case EOB_ACT_CONTINUE_SCAN:
01916                                 yyg->yy_c_buf_p =
01917                                         yyg->yytext_ptr + yy_amount_of_matched_text;
01918 
01919                                 yy_current_state = yy_get_previous_state( yyscanner );
01920 
01921                                 yy_cp = yyg->yy_c_buf_p;
01922                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01923                                 goto yy_match;
01924 
01925                         case EOB_ACT_LAST_MATCH:
01926                                 yyg->yy_c_buf_p =
01927                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
01928 
01929                                 yy_current_state = yy_get_previous_state( yyscanner );
01930 
01931                                 yy_cp = yyg->yy_c_buf_p;
01932                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01933                                 goto yy_find_action;
01934                         }
01935                 break;
01936                 }
01937 
01938         default:
01939                 YY_FATAL_ERROR(
01940                         "fatal flex scanner internal error--no action found" );
01941         } /* end of action switch */
01942                 } /* end of scanning one token */
01943 } /* end of osillex */
01944 
01945 /* yy_get_next_buffer - try to read in a new buffer
01946  *
01947  * Returns a code representing an action:
01948  *      EOB_ACT_LAST_MATCH -
01949  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01950  *      EOB_ACT_END_OF_FILE - end of file
01951  */
01952 static int yy_get_next_buffer (yyscan_t yyscanner)
01953 {
01954     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01955         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01956         register char *source = yyg->yytext_ptr;
01957         register int number_to_move, i;
01958         int ret_val;
01959 
01960         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
01961                 YY_FATAL_ERROR(
01962                 "fatal flex scanner internal error--end of buffer missed" );
01963 
01964         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01965                 { /* Don't try to fill the buffer, so this is an EOF. */
01966                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
01967                         {
01968                         /* We matched a single character, the EOB, so
01969                          * treat this as a final EOF.
01970                          */
01971                         return EOB_ACT_END_OF_FILE;
01972                         }
01973 
01974                 else
01975                         {
01976                         /* We matched some text prior to the EOB, first
01977                          * process it.
01978                          */
01979                         return EOB_ACT_LAST_MATCH;
01980                         }
01981                 }
01982 
01983         /* Try to read more data. */
01984 
01985         /* First move last chars to start of buffer. */
01986         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
01987 
01988         for ( i = 0; i < number_to_move; ++i )
01989                 *(dest++) = *(source++);
01990 
01991         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01992                 /* don't do the read, it's not guaranteed to return an EOF,
01993                  * just force an EOF
01994                  */
01995                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
01996 
01997         else
01998                 {
01999                         int num_to_read =
02000                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02001 
02002                 while ( num_to_read <= 0 )
02003                         { /* Not enough room in the buffer - grow it. */
02004 
02005                         /* just a shorter name for the current buffer */
02006                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02007 
02008                         int yy_c_buf_p_offset =
02009                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02010 
02011                         if ( b->yy_is_our_buffer )
02012                                 {
02013                                 int new_size = b->yy_buf_size * 2;
02014 
02015                                 if ( new_size <= 0 )
02016                                         b->yy_buf_size += b->yy_buf_size / 8;
02017                                 else
02018                                         b->yy_buf_size *= 2;
02019 
02020                                 b->yy_ch_buf = (char *)
02021                                         /* Include room in for 2 EOB chars. */
02022                                         osilrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02023                                 }
02024                         else
02025                                 /* Can't grow it, we don't own it. */
02026                                 b->yy_ch_buf = 0;
02027 
02028                         if ( ! b->yy_ch_buf )
02029                                 YY_FATAL_ERROR(
02030                                 "fatal error - scanner input buffer overflow" );
02031 
02032                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02033 
02034                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02035                                                 number_to_move - 1;
02036 
02037                         }
02038 
02039                 if ( num_to_read > YY_READ_BUF_SIZE )
02040                         num_to_read = YY_READ_BUF_SIZE;
02041 
02042                 /* Read in more data. */
02043                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02044                         yyg->yy_n_chars, num_to_read );
02045 
02046                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02047                 }
02048 
02049         if ( yyg->yy_n_chars == 0 )
02050                 {
02051                 if ( number_to_move == YY_MORE_ADJ )
02052                         {
02053                         ret_val = EOB_ACT_END_OF_FILE;
02054                         osilrestart(yyin  ,yyscanner);
02055                         }
02056 
02057                 else
02058                         {
02059                         ret_val = EOB_ACT_LAST_MATCH;
02060                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02061                                 YY_BUFFER_EOF_PENDING;
02062                         }
02063                 }
02064 
02065         else
02066                 ret_val = EOB_ACT_CONTINUE_SCAN;
02067 
02068         yyg->yy_n_chars += number_to_move;
02069         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02070         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02071 
02072         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02073 
02074         return ret_val;
02075 }
02076 
02077 /* yy_get_previous_state - get the state just before the EOB char was reached */
02078 
02079     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02080 {
02081         register yy_state_type yy_current_state;
02082         register char *yy_cp;
02083     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02084 
02085         yy_current_state = yyg->yy_start;
02086 
02087         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02088                 {
02089                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02090                 if ( yy_accept[yy_current_state] )
02091                         {
02092                         yyg->yy_last_accepting_state = yy_current_state;
02093                         yyg->yy_last_accepting_cpos = yy_cp;
02094                         }
02095                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02096                         {
02097                         yy_current_state = (int) yy_def[yy_current_state];
02098                         if ( yy_current_state >= 579 )
02099                                 yy_c = yy_meta[(unsigned int) yy_c];
02100                         }
02101                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02102                 }
02103 
02104         return yy_current_state;
02105 }
02106 
02107 /* yy_try_NUL_trans - try to make a transition on the NUL character
02108  *
02109  * synopsis
02110  *      next_state = yy_try_NUL_trans( current_state );
02111  */
02112     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
02113 {
02114         register int yy_is_jam;
02115     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
02116         register char *yy_cp = yyg->yy_c_buf_p;
02117 
02118         register YY_CHAR yy_c = 1;
02119         if ( yy_accept[yy_current_state] )
02120                 {
02121                 yyg->yy_last_accepting_state = yy_current_state;
02122                 yyg->yy_last_accepting_cpos = yy_cp;
02123                 }
02124         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02125                 {
02126                 yy_current_state = (int) yy_def[yy_current_state];
02127                 if ( yy_current_state >= 579 )
02128                         yy_c = yy_meta[(unsigned int) yy_c];
02129                 }
02130         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02131         yy_is_jam = (yy_current_state == 578);
02132 
02133         return yy_is_jam ? 0 : yy_current_state;
02134 }
02135 
02136     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
02137 {
02138         register char *yy_cp;
02139     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02140 
02141     yy_cp = yyg->yy_c_buf_p;
02142 
02143         /* undo effects of setting up yytext */
02144         *yy_cp = yyg->yy_hold_char;
02145 
02146         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02147                 { /* need to shift things up to make room */
02148                 /* +2 for EOB chars. */
02149                 register int number_to_move = yyg->yy_n_chars + 2;
02150                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02151                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02152                 register char *source =
02153                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02154 
02155                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02156                         *--dest = *--source;
02157 
02158                 yy_cp += (int) (dest - source);
02159                 yy_bp += (int) (dest - source);
02160                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02161                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02162 
02163                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02164                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
02165                 }
02166 
02167         *--yy_cp = (char) c;
02168 
02169     if ( c == '\n' ){
02170         --yylineno;
02171     }
02172 
02173         yyg->yytext_ptr = yy_bp;
02174         yyg->yy_hold_char = *yy_cp;
02175         yyg->yy_c_buf_p = yy_cp;
02176 }
02177 
02178 #ifndef YY_NO_INPUT
02179 #ifdef __cplusplus
02180     static int yyinput (yyscan_t yyscanner)
02181 #else
02182     static int input  (yyscan_t yyscanner)
02183 #endif
02184 
02185 {
02186         int c;
02187     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02188 
02189         *yyg->yy_c_buf_p = yyg->yy_hold_char;
02190 
02191         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02192                 {
02193                 /* yy_c_buf_p now points to the character we want to return.
02194                  * If this occurs *before* the EOB characters, then it's a
02195                  * valid NUL; if not, then we've hit the end of the buffer.
02196                  */
02197                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02198                         /* This was really a NUL. */
02199                         *yyg->yy_c_buf_p = '\0';
02200 
02201                 else
02202                         { /* need more input */
02203                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02204                         ++yyg->yy_c_buf_p;
02205 
02206                         switch ( yy_get_next_buffer( yyscanner ) )
02207                                 {
02208                                 case EOB_ACT_LAST_MATCH:
02209                                         /* This happens because yy_g_n_b()
02210                                          * sees that we've accumulated a
02211                                          * token and flags that we need to
02212                                          * try matching the token before
02213                                          * proceeding.  But for input(),
02214                                          * there's no matching to consider.
02215                                          * So convert the EOB_ACT_LAST_MATCH
02216                                          * to EOB_ACT_END_OF_FILE.
02217                                          */
02218 
02219                                         /* Reset buffer status. */
02220                                         osilrestart(yyin ,yyscanner);
02221 
02222                                         /*FALLTHROUGH*/
02223 
02224                                 case EOB_ACT_END_OF_FILE:
02225                                         {
02226                                         if ( osilwrap(yyscanner ) )
02227                                                 return EOF;
02228 
02229                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02230                                                 YY_NEW_FILE;
02231 #ifdef __cplusplus
02232                                         return yyinput(yyscanner);
02233 #else
02234                                         return input(yyscanner);
02235 #endif
02236                                         }
02237 
02238                                 case EOB_ACT_CONTINUE_SCAN:
02239                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
02240                                         break;
02241                                 }
02242                         }
02243                 }
02244 
02245         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
02246         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
02247         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
02248 
02249         if ( c == '\n' )
02250                    
02251     do{ yylineno++;
02252         yycolumn=0;
02253     }while(0)
02254 ;
02255 
02256         return c;
02257 }
02258 #endif  /* ifndef YY_NO_INPUT */
02259 
02265     void osilrestart  (FILE * input_file , yyscan_t yyscanner)
02266 {
02267     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02268 
02269         if ( ! YY_CURRENT_BUFFER ){
02270         osilensure_buffer_stack (yyscanner);
02271                 YY_CURRENT_BUFFER_LVALUE =
02272             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02273         }
02274 
02275         osil_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
02276         osil_load_buffer_state(yyscanner );
02277 }
02278 
02283     void osil_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
02284 {
02285     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02286 
02287         /* TODO. We should be able to replace this entire function body
02288          * with
02289          *              osilpop_buffer_state();
02290          *              osilpush_buffer_state(new_buffer);
02291      */
02292         osilensure_buffer_stack (yyscanner);
02293         if ( YY_CURRENT_BUFFER == new_buffer )
02294                 return;
02295 
02296         if ( YY_CURRENT_BUFFER )
02297                 {
02298                 /* Flush out information for old buffer. */
02299                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02300                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02301                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02302                 }
02303 
02304         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02305         osil_load_buffer_state(yyscanner );
02306 
02307         /* We don't actually know whether we did this switch during
02308          * EOF (osilwrap()) processing, but the only time this flag
02309          * is looked at is after osilwrap() is called, so it's safe
02310          * to go ahead and always set it.
02311          */
02312         yyg->yy_did_buffer_switch_on_eof = 1;
02313 }
02314 
02315 static void osil_load_buffer_state  (yyscan_t yyscanner)
02316 {
02317     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02318         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02319         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02320         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02321         yyg->yy_hold_char = *yyg->yy_c_buf_p;
02322 }
02323 
02330     YY_BUFFER_STATE osil_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
02331 {
02332         YY_BUFFER_STATE b;
02333     
02334         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02335         if ( ! b )
02336                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02337 
02338         b->yy_buf_size = size;
02339 
02340         /* yy_ch_buf has to be 2 characters longer than the size given because
02341          * we need to put in 2 end-of-buffer characters.
02342          */
02343         b->yy_ch_buf = (char *) osilalloc(b->yy_buf_size + 2 ,yyscanner );
02344         if ( ! b->yy_ch_buf )
02345                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02346 
02347         b->yy_is_our_buffer = 1;
02348 
02349         osil_init_buffer(b,file ,yyscanner);
02350 
02351         return b;
02352 }
02353 
02358     void osil_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02359 {
02360     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02361 
02362         if ( ! b )
02363                 return;
02364 
02365         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02366                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02367 
02368         if ( b->yy_is_our_buffer )
02369                 osilfree((void *) b->yy_ch_buf ,yyscanner );
02370 
02371         osilfree((void *) b ,yyscanner );
02372 }
02373 
02374 #ifndef __cplusplus
02375 extern int isatty (int );
02376 #endif /* __cplusplus */
02377     
02378 /* Initializes or reinitializes a buffer.
02379  * This function is sometimes called more than once on the same buffer,
02380  * such as during a osilrestart() or at EOF.
02381  */
02382     static void osil_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
02383 
02384 {
02385         int oerrno = errno;
02386     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02387 
02388         osil_flush_buffer(b ,yyscanner);
02389 
02390         b->yy_input_file = file;
02391         b->yy_fill_buffer = 1;
02392 
02393     /* If b is the current buffer, then osil_init_buffer was _probably_
02394      * called from osilrestart() or through yy_get_next_buffer.
02395      * In that case, we don't want to reset the lineno or column.
02396      */
02397     if (b != YY_CURRENT_BUFFER){
02398         b->yy_bs_lineno = 1;
02399         b->yy_bs_column = 0;
02400     }
02401 
02402         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02403     
02404         errno = oerrno;
02405 }
02406 
02411     void osil_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02412 {
02413     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02414         if ( ! b )
02415                 return;
02416 
02417         b->yy_n_chars = 0;
02418 
02419         /* We always need two end-of-buffer characters.  The first causes
02420          * a transition to the end-of-buffer state.  The second causes
02421          * a jam in that state.
02422          */
02423         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02424         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02425 
02426         b->yy_buf_pos = &b->yy_ch_buf[0];
02427 
02428         b->yy_at_bol = 1;
02429         b->yy_buffer_status = YY_BUFFER_NEW;
02430 
02431         if ( b == YY_CURRENT_BUFFER )
02432                 osil_load_buffer_state(yyscanner );
02433 }
02434 
02441 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02442 {
02443     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02444         if (new_buffer == NULL)
02445                 return;
02446 
02447         osilensure_buffer_stack(yyscanner);
02448 
02449         /* This block is copied from osil_switch_to_buffer. */
02450         if ( YY_CURRENT_BUFFER )
02451                 {
02452                 /* Flush out information for old buffer. */
02453                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02454                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02455                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02456                 }
02457 
02458         /* Only push if top exists. Otherwise, replace top. */
02459         if (YY_CURRENT_BUFFER)
02460                 yyg->yy_buffer_stack_top++;
02461         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02462 
02463         /* copied from osil_switch_to_buffer. */
02464         osil_load_buffer_state(yyscanner );
02465         yyg->yy_did_buffer_switch_on_eof = 1;
02466 }
02467 
02472 void osilpop_buffer_state (yyscan_t yyscanner)
02473 {
02474     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02475         if (!YY_CURRENT_BUFFER)
02476                 return;
02477 
02478         osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02479         YY_CURRENT_BUFFER_LVALUE = NULL;
02480         if (yyg->yy_buffer_stack_top > 0)
02481                 --yyg->yy_buffer_stack_top;
02482 
02483         if (YY_CURRENT_BUFFER) {
02484                 osil_load_buffer_state(yyscanner );
02485                 yyg->yy_did_buffer_switch_on_eof = 1;
02486         }
02487 }
02488 
02489 /* Allocates the stack if it does not exist.
02490  *  Guarantees space for at least one push.
02491  */
02492 static void osilensure_buffer_stack (yyscan_t yyscanner)
02493 {
02494         int num_to_alloc;
02495     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02496 
02497         if (!yyg->yy_buffer_stack) {
02498 
02499                 /* First allocation is just for 2 elements, since we don't know if this
02500                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
02501                  * immediate realloc on the next call.
02502          */
02503                 num_to_alloc = 1;
02504                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilalloc
02505                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02506                                                                 , yyscanner);
02507                 
02508                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02509                                 
02510                 yyg->yy_buffer_stack_max = num_to_alloc;
02511                 yyg->yy_buffer_stack_top = 0;
02512                 return;
02513         }
02514 
02515         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02516 
02517                 /* Increase the buffer to prepare for a possible push. */
02518                 int grow_size = 8 /* arbitrary grow size */;
02519 
02520                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02521                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilrealloc
02522                                                                 (yyg->yy_buffer_stack,
02523                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02524                                                                 , yyscanner);
02525 
02526                 /* zero only the new slots.*/
02527                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02528                 yyg->yy_buffer_stack_max = num_to_alloc;
02529         }
02530 }
02531 
02538 YY_BUFFER_STATE osil_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
02539 {
02540         YY_BUFFER_STATE b;
02541     
02542         if ( size < 2 ||
02543              base[size-2] != YY_END_OF_BUFFER_CHAR ||
02544              base[size-1] != YY_END_OF_BUFFER_CHAR )
02545                 /* They forgot to leave room for the EOB's. */
02546                 return 0;
02547 
02548         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02549         if ( ! b )
02550                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_buffer()" );
02551 
02552         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
02553         b->yy_buf_pos = b->yy_ch_buf = base;
02554         b->yy_is_our_buffer = 0;
02555         b->yy_input_file = 0;
02556         b->yy_n_chars = b->yy_buf_size;
02557         b->yy_is_interactive = 0;
02558         b->yy_at_bol = 1;
02559         b->yy_fill_buffer = 0;
02560         b->yy_buffer_status = YY_BUFFER_NEW;
02561 
02562         osil_switch_to_buffer(b ,yyscanner );
02563 
02564         return b;
02565 }
02566 
02575 YY_BUFFER_STATE osil_scan_string (yyconst char * yystr , yyscan_t yyscanner)
02576 {
02577     
02578         return osil_scan_bytes(yystr,strlen(yystr) ,yyscanner);
02579 }
02580 
02588 YY_BUFFER_STATE osil_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
02589 {
02590         YY_BUFFER_STATE b;
02591         char *buf;
02592         yy_size_t n;
02593         int i;
02594     
02595         /* Get memory for full buffer, including space for trailing EOB's. */
02596         n = _yybytes_len + 2;
02597         buf = (char *) osilalloc(n ,yyscanner );
02598         if ( ! buf )
02599                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_bytes()" );
02600 
02601         for ( i = 0; i < _yybytes_len; ++i )
02602                 buf[i] = yybytes[i];
02603 
02604         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02605 
02606         b = osil_scan_buffer(buf,n ,yyscanner);
02607         if ( ! b )
02608                 YY_FATAL_ERROR( "bad buffer in osil_scan_bytes()" );
02609 
02610         /* It's okay to grow etc. this buffer, and we should throw it
02611          * away when we're done.
02612          */
02613         b->yy_is_our_buffer = 1;
02614 
02615         return b;
02616 }
02617 
02618 #ifndef YY_EXIT_FAILURE
02619 #define YY_EXIT_FAILURE 2
02620 #endif
02621 
02622 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
02623 {
02624         (void) fprintf( stderr, "%s\n", msg );
02625         exit( YY_EXIT_FAILURE );
02626 }
02627 
02628 /* Redefine yyless() so it works in section 3 code. */
02629 
02630 #undef yyless
02631 #define yyless(n) \
02632         do \
02633                 { \
02634                 /* Undo effects of setting up yytext. */ \
02635         int yyless_macro_arg = (n); \
02636         YY_LESS_LINENO(yyless_macro_arg);\
02637                 yytext[yyleng] = yyg->yy_hold_char; \
02638                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
02639                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
02640                 *yyg->yy_c_buf_p = '\0'; \
02641                 yyleng = yyless_macro_arg; \
02642                 } \
02643         while ( 0 )
02644 
02645 /* Accessor  methods (get/set functions) to struct members. */
02646 
02650 YY_EXTRA_TYPE osilget_extra  (yyscan_t yyscanner)
02651 {
02652     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02653     return yyextra;
02654 }
02655 
02659 int osilget_lineno  (yyscan_t yyscanner)
02660 {
02661     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02662     
02663         if (! YY_CURRENT_BUFFER)
02664             return 0;
02665     
02666     return yylineno;
02667 }
02668 
02672 int osilget_column  (yyscan_t yyscanner)
02673 {
02674     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02675     
02676         if (! YY_CURRENT_BUFFER)
02677             return 0;
02678     
02679     return yycolumn;
02680 }
02681 
02685 FILE *osilget_in  (yyscan_t yyscanner)
02686 {
02687     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02688     return yyin;
02689 }
02690 
02694 FILE *osilget_out  (yyscan_t yyscanner)
02695 {
02696     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02697     return yyout;
02698 }
02699 
02703 int osilget_leng  (yyscan_t yyscanner)
02704 {
02705     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02706     return yyleng;
02707 }
02708 
02713 char *osilget_text  (yyscan_t yyscanner)
02714 {
02715     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02716     return yytext;
02717 }
02718 
02723 void osilset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
02724 {
02725     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02726     yyextra = user_defined ;
02727 }
02728 
02733 void osilset_lineno (int  line_number , yyscan_t yyscanner)
02734 {
02735     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02736 
02737         /* lineno is only valid if an input buffer exists. */
02738         if (! YY_CURRENT_BUFFER )
02739            yy_fatal_error( "osilset_lineno called with no buffer" , yyscanner); 
02740     
02741     yylineno = line_number;
02742 }
02743 
02748 void osilset_column (int  column_no , yyscan_t yyscanner)
02749 {
02750     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02751 
02752         /* column is only valid if an input buffer exists. */
02753         if (! YY_CURRENT_BUFFER )
02754            yy_fatal_error( "osilset_column called with no buffer" , yyscanner); 
02755     
02756     yycolumn = column_no;
02757 }
02758 
02765 void osilset_in (FILE *  in_str , yyscan_t yyscanner)
02766 {
02767     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02768     yyin = in_str ;
02769 }
02770 
02771 void osilset_out (FILE *  out_str , yyscan_t yyscanner)
02772 {
02773     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02774     yyout = out_str ;
02775 }
02776 
02777 int osilget_debug  (yyscan_t yyscanner)
02778 {
02779     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02780     return yy_flex_debug;
02781 }
02782 
02783 void osilset_debug (int  bdebug , yyscan_t yyscanner)
02784 {
02785     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02786     yy_flex_debug = bdebug ;
02787 }
02788 
02789 /* Accessor methods for yylval and yylloc */
02790 
02791 YYSTYPE * osilget_lval  (yyscan_t yyscanner)
02792 {
02793     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02794     return yylval;
02795 }
02796 
02797 void osilset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
02798 {
02799     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02800     yylval = yylval_param;
02801 }
02802 
02803 YYLTYPE *osilget_lloc  (yyscan_t yyscanner)
02804 {
02805     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02806     return yylloc;
02807 }
02808     
02809 void osilset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
02810 {
02811     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02812     yylloc = yylloc_param;
02813 }
02814     
02815 /* User-visible API */
02816 
02817 /* osillex_init is special because it creates the scanner itself, so it is
02818  * the ONLY reentrant function that doesn't take the scanner as the last argument.
02819  * That's why we explicitly handle the declaration, instead of using our macros.
02820  */
02821 
02822 int osillex_init(yyscan_t* ptr_yy_globals)
02823 
02824 {
02825     if (ptr_yy_globals == NULL){
02826         errno = EINVAL;
02827         return 1;
02828     }
02829 
02830     *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), NULL );
02831 
02832     if (*ptr_yy_globals == NULL){
02833         errno = ENOMEM;
02834         return 1;
02835     }
02836 
02837     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
02838     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
02839 
02840     return yy_init_globals ( *ptr_yy_globals );
02841 }
02842 
02843 static int yy_init_globals (yyscan_t yyscanner)
02844 {
02845     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02846     /* Initialization is the same as for the non-reentrant scanner.
02847      * This function is called from osillex_destroy(), so don't allocate here.
02848      */
02849 
02850     yyg->yy_buffer_stack = 0;
02851     yyg->yy_buffer_stack_top = 0;
02852     yyg->yy_buffer_stack_max = 0;
02853     yyg->yy_c_buf_p = (char *) 0;
02854     yyg->yy_init = 0;
02855     yyg->yy_start = 0;
02856 
02857     yyg->yy_start_stack_ptr = 0;
02858     yyg->yy_start_stack_depth = 0;
02859     yyg->yy_start_stack =  NULL;
02860 
02861 /* Defined in main.c */
02862 #ifdef YY_STDINIT
02863     yyin = stdin;
02864     yyout = stdout;
02865 #else
02866     yyin = (FILE *) 0;
02867     yyout = (FILE *) 0;
02868 #endif
02869 
02870     /* For future reference: Set errno on error, since we are called by
02871      * osillex_init()
02872      */
02873     return 0;
02874 }
02875 
02876 /* osillex_destroy is for both reentrant and non-reentrant scanners. */
02877 int osillex_destroy  (yyscan_t yyscanner)
02878 {
02879     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02880 
02881     /* Pop the buffer stack, destroying each element. */
02882         while(YY_CURRENT_BUFFER){
02883                 osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
02884                 YY_CURRENT_BUFFER_LVALUE = NULL;
02885                 osilpop_buffer_state(yyscanner);
02886         }
02887 
02888         /* Destroy the stack itself. */
02889         osilfree(yyg->yy_buffer_stack ,yyscanner);
02890         yyg->yy_buffer_stack = NULL;
02891 
02892     /* Destroy the start condition stack. */
02893         osilfree(yyg->yy_start_stack ,yyscanner );
02894         yyg->yy_start_stack = NULL;
02895 
02896     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02897      * osillex() is called, initialization will occur. */
02898     yy_init_globals( yyscanner);
02899 
02900     /* Destroy the main struct (reentrant only). */
02901     osilfree ( yyscanner , yyscanner );
02902     yyscanner = NULL;
02903     return 0;
02904 }
02905 
02906 /*
02907  * Internal utility routines.
02908  */
02909 
02910 #ifndef yytext_ptr
02911 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
02912 {
02913         register int i;
02914         for ( i = 0; i < n; ++i )
02915                 s1[i] = s2[i];
02916 }
02917 #endif
02918 
02919 #ifdef YY_NEED_STRLEN
02920 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
02921 {
02922         register int n;
02923         for ( n = 0; s[n]; ++n )
02924                 ;
02925 
02926         return n;
02927 }
02928 #endif
02929 
02930 void *osilalloc (yy_size_t  size , yyscan_t yyscanner)
02931 {
02932         return (void *) malloc( size );
02933 }
02934 
02935 void *osilrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
02936 {
02937         /* The cast to (char *) in the following accommodates both
02938          * implementations that use char* generic pointers, and those
02939          * that use void* generic pointers.  It works with the latter
02940          * because both ANSI C and C++ allow castless assignment from
02941          * any pointer type to void*, and deal with argument conversions
02942          * as though doing an assignment.
02943          */
02944         return (void *) realloc( (char *) ptr, size );
02945 }
02946 
02947 void osilfree (void * ptr , yyscan_t yyscanner)
02948 {
02949         free( (char *) ptr );   /* see osilrealloc() for (char *) cast */
02950 }
02951 
02952 #define YYTABLES_NAME "yytables"
02953 
02954 #line 215 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/parseosil.l"
02955 
02956 
02957 
02958 

Generated on Thu May 15 22:15:05 2008 by  doxygen 1.4.7