/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp

Go to the documentation of this file.
00001 #line 2 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp"
00002 
00003 #line 4 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 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 114
00372 #define YY_END_OF_BUFFER 115
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[762] =
00381     {   0,
00382         0,    0,  111,  111,  112,  112,    0,    0,    0,    0,
00383         0,    0,    0,    0,    0,    0,  115,  113,    1,    1,
00384         1,    2,  113,    5,  113,    4,  113,    3,  113,  111,
00385       114,  112,  104,  105,  104,  108,  109,  108,    0,    0,
00386         0,    3,    0,    0,    0,    0,    0,    0,    0,    5,
00387         4,    0,    5,    0,    6,    0,    0,  107,   77,    0,
00388         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00389         0,    0,    0,    0,    0,  111,  112,    0,  110,    0,
00390         0,    0,    0,    0,    0,    0,    0,    0,    5,    0,
00391         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00392 
00393         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
00394         0,    0,    0,    0,    0,    0,    0,    0,   35,    0,
00395         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00396         0,    0,    0,    5,  106,    0,    0,    0,    0,    0,
00397         0,    0,    0,    0,    0,  103,    0,   78,    0,    0,
00398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00400         0,    0,    0,    0,    0,    0,    0,    0,   97,    0,
00401         0,    0,    0,   63,    0,    0,   49,    0,    0,    0,
00402         0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
00403 
00404         0,    0,    0,    0,   95,    0,    0,    0,   21,   22,
00405         0,   13,    0,    0,    0,    0,    0,    0,    0,   78,
00406         0,   80,    0,    0,    0,    0,    0,    0,    0,   64,
00407         0,    0,    0,   50,    0,    0,    0,    0,   36,    0,
00408         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00409         0,    0,    0,    0,    0,    0,   61,    0,    0,    0,
00410        57,    0,    0,   59,   63,    0,   49,    0,   65,    0,
00411        67,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00412         0,    0,   55,    0,    0,    0,    0,   69,    0,    0,
00413         0,   16,    0,   13,    0,    0,    0,    0,    0,    0,
00414 
00415         0,    0,    0,   80,    0,   62,    0,    0,   98,    0,
00416         0,   58,    0,    0,   60,   64,    0,    0,   50,    0,
00417        66,    0,   68,    0,    0,   36,    0,    0,    0,  100,
00418         0,    0,    0,    0,    0,    0,    0,    0,   56,    0,
00419         0,    0,    0,   70,    0,    0,   96,    0,   61,    0,
00420         0,   57,    0,   59,    0,   65,   67,    0,    0,    0,
00421         0,    0,    0,   41,    0,    0,   31,    0,   55,    0,
00422        51,    0,   87,   69,    0,    0,    0,   16,    0,    0,
00423         0,    0,   25,   26,    0,    0,   20,    0,    0,   23,
00424        24,    0,   17,   62,    0,   98,    0,   58,    0,   60,
00425 
00426         0,    0,   66,   68,    0,    0,    0,    0,  100,    0,
00427         0,   27,    0,   42,    0,    0,    0,    0,   56,    0,
00428        52,    0,    0,   70,    0,    0,   96,    0,    0,    0,
00429         0,    0,    0,   43,    0,    0,   75,    0,   41,    0,
00430        47,    0,    0,   51,    0,   85,    0,    0,   37,    0,
00431         0,    0,   14,    0,   15,    0,   20,    0,   17,    0,
00432         0,    0,    0,    0,    0,   44,    0,    0,    0,    0,
00433        27,   42,    0,   48,    0,    0,   32,    0,   52,    0,
00434         0,   88,    0,    0,    0,   38,    0,    0,    0,    0,
00435        39,    0,   43,    0,   45,    0,    0,   47,    0,    0,
00436 
00437         0,   53,    0,   37,    0,    0,   19,   14,   15,    0,
00438         0,    0,    0,    0,   40,    0,    0,   44,    0,   46,
00439         0,    0,   76,    0,   48,    0,   32,    0,    0,   54,
00440        88,    0,   86,    0,   38,    0,    0,   71,    0,   39,
00441       101,   45,    0,    0,    0,   73,    0,   53,    0,   81,
00442        19,    0,    0,    0,    0,    0,    0,    0,   18,    0,
00443        72,    0,   40,    0,    0,   46,    0,   76,    0,    0,
00444        74,    0,   54,   86,    0,    0,   71,    0,    0,    0,
00445        73,    0,    0,   89,    0,    0,    0,    0,    0,    0,
00446        18,   72,    0,    0,    0,  102,    0,    0,   74,    0,
00447 
00448         0,    0,   82,    0,    0,    0,   93,    0,   83,    0,
00449         0,    0,    0,    0,    0,    0,    0,  102,    0,    0,
00450         0,    0,   82,    0,   90,   91,    0,    0,    0,    0,
00451         0,    0,    0,    0,    0,    0,    0,    0,   94,    0,
00452         0,   84,   90,    0,    0,    0,    0,    0,    0,    0,
00453         0,    0,   92,    0,    0,   94,    0,   84,    0,    0,
00454         0,    0,    0,    0,    0,    0,   92,    0,   28,    0,
00455         0,    0,    0,    0,    0,    0,    0,    0,    9,    0,
00456        28,    0,    0,    0,    0,    0,    0,    0,    0,    9,
00457         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00458 
00459         0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
00460         0,    0,    0,    0,    0,    0,    0,   12,    0,   10,
00461         0,    0,    0,    0,    0,   11,    0,   12,    0,    0,
00462         0,   33,    0,   11,    0,    0,    0,    0,   29,    0,
00463         0,    0,   34,    0,    0,    0,    8,   34,    0,   30,
00464         0,    8,   30,    0,    0,    0,    0,    0,    7,    7,
00465         0
00466     } ;
00467 
00468 static yyconst flex_int32_t yy_ec[256] =
00469     {   0,
00470         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00471         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00472         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00473         1,    4,    5,    6,    1,    1,    1,    1,    7,    1,
00474         1,    1,    8,    1,    9,   10,   11,   12,   12,   12,
00475        12,   12,   12,   12,   12,   12,   12,    1,    1,   13,
00476        14,   15,   16,    1,    1,    1,   17,   18,   19,   20,
00477         1,    1,   21,    1,    1,    1,    1,   22,   23,   24,
00478        25,    1,   26,   27,    1,   28,    1,    1,    1,    1,
00479         1,    1,    1,    1,    1,    1,   29,   30,   31,   32,
00480 
00481        33,   34,   35,   36,   37,   38,    1,   39,   40,   41,
00482        42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
00483        52,   53,    1,   54,    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,    1,    1,    1,
00486         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00487         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00488         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00489         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00490         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00491 
00492         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00493         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00495         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00497         1,    1,    1,    1,    1
00498     } ;
00499 
00500 static yyconst flex_int32_t yy_meta[55] =
00501     {   0,
00502         1,    1,    1,    1,    1,    2,    3,    1,    1,    1,
00503         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00504         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00505         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00506         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00507         1,    1,    1,    1
00508     } ;
00509 
00510 static yyconst flex_int16_t yy_base[770] =
00511     {   0,
00512         0,   53, 1632, 1631, 1629, 1628,    0,    0,    0,    0,
00513         0,    0,    5,   13,    2,   14, 1634, 1639,  106,    0,
00514         0, 1639,   13,    7, 1618,   17,  151, 1639, 1610,    0,
00515      1639,    0, 1639, 1639, 1622, 1639, 1639, 1615,    0, 1614,
00516        15, 1639, 1586, 1585, 1594,    3, 1578, 1572, 1594,   16,
00517        34, 1600,   57,   29, 1639, 1612,  182, 1639, 1639, 1599,
00518         3, 1577, 1581, 1566,   11, 1575,   10,   38, 1585,   33,
00519        31,   44, 1577, 1584, 1592,    0,    0, 1596, 1639, 1577,
00520      1564,   80, 1568, 1567, 1577, 1562, 1565, 1591, 1590, 1592,
00521        96, 1579,   31, 1557, 1561, 1546,   55, 1555,   56,   64,
00522 
00523        72,   81,   68,   85, 1558, 1565, 1639, 1547, 1553,    2,
00524      1542, 1547,  136, 1542,  142, 1537, 1546, 1551, 1639, 1544,
00525      1544, 1545, 1534, 1531, 1538, 1546, 1549, 1536,   56, 1547,
00526      1535, 1534, 1528, 1639, 1639, 1538, 1534,  111,  157,  230,
00527      1537, 1539, 1523, 1534, 1518, 1639,  170,  132,  174, 1519,
00528      1525,  108, 1514, 1519,  201,   81,  205, 1510, 1519, 1524,
00529       233, 1517, 1517, 1518, 1518, 1506, 1503, 1510, 1518, 1521,
00530      1508,  120, 1519, 1507, 1506, 1500,  236, 1526, 1497,  239,
00531      1505,  243,  257,  260, 1508,  263,  266,  271,  277, 1511,
00532      1500, 1508, 1504, 1490, 1502, 1502, 1488, 1500,  280, 1484,
00533 
00534      1501, 1494,  285, 1495, 1490,  294, 1473,  299, 1639, 1639,
00535       307,  310, 1484, 1474,  313, 1490, 1475,  316, 1488,  320,
00536       329,  332,  335, 1502,  338,  343, 1482,  352,  357,  360,
00537      1471, 1484,  366,  371,  374,  383, 1487,  388,  391, 1476,
00538      1484,  397, 1474, 1466, 1478, 1478, 1464, 1476,  402, 1460,
00539      1477, 1470,  405, 1471,  411,  419,  425, 1466, 1455,  434,
00540       437, 1469,  440,  443,  448, 1455,  454,  457,  460,  463,
00541       466, 1453, 1451, 1460, 1463, 1464,  471, 1449, 1445, 1452,
00542      1446,  477,  480,  485, 1445, 1456,  491,  494,  112, 1459,
00543       499,  505, 1445,  508, 1453, 1443,  512,  515, 1439,  521,
00544 
00545       525,  530,  541,  544,  547,  550, 1446,  554,  557, 1435,
00546       561,  564, 1449,  568,  571,  575, 1451, 1434,  578,  582,
00547       585,  588,  591, 1432, 1430,  596, 1439, 1442,  602,  605,
00548      1443,  608,  611, 1428, 1421, 1408, 1402,  616,  625,  630,
00549      1387, 1385,  633,  636,  123,  639,  647, 1388,  653, 1367,
00550      1354,  656, 1339,  659, 1322,  662,  665,  668, 1323, 1314,
00551      1308, 1305,  671,  674,  677, 1303, 1639, 1304,  685,  691,
00552       694, 1275, 1261,  697, 1260,  700, 1255,  705, 1243,  708,
00553       714,  717, 1639, 1639, 1256,  723,  727, 1246,  732, 1639,
00554      1639,  738,  741,  744, 1242,  747, 1217,  751, 1228,  754,
00555 
00556      1215, 1206,  757,  760,  763, 1220, 1198, 1193,  766, 1189,
00557       769,  772,  777,  783,  786, 1200,  791, 1201,  794,  800,
00558       805, 1189,  808,  814, 1163,  817,  822, 1121, 1100, 1104,
00559       825, 1096,  831,  834,  840, 1078, 1639, 1073,  845,  848,
00560       854, 1058, 1044,  857,  862, 1639, 1050,  865,  868, 1046,
00561       871,  879,  884,  887,  892, 1037,  895, 1019,  900, 1034,
00562      1025,  903, 1021, 1020,  906,  909,  912, 1013,  920,  990,
00563       926,  929,  934,  937,  975,  940,  943,  974,  948,  954,
00564       957,  960,  963,  973,  971,  977,  960,  980,  957,  985,
00565       988,  954,  994,  999, 1002,  956,  928, 1005, 1008,  939,
00566 
00567      1013, 1016,  942, 1022,  937, 1027, 1030, 1033, 1036, 1025,
00568      1041, 1054,  931, 1057, 1060,  921,  914, 1063, 1071, 1074,
00569       919, 1077, 1080,  885, 1085, 1091, 1094,  889, 1097, 1100,
00570      1105, 1111, 1114,  896, 1117,  887, 1120, 1125,  878, 1128,
00571      1639, 1134,  872,  867, 1137, 1140,  861, 1143,  847,  833,
00572      1146,  836,  834,  832,  805,  798,  812, 1151, 1154, 1157,
00573      1160,  798, 1164,  813, 1167, 1171,  785, 1174,  789, 1177,
00574      1181,  783, 1184, 1187,  776, 1191, 1194,  758,  781,  753,
00575      1197,  774,  742, 1639,  741,  736,  695,  703,  685,  668,
00576      1200, 1205,  658,  662, 1208, 1211,  671,  639, 1214,  667,
00577 
00578       641, 1217, 1222, 1225,  607,  601, 1639,  605, 1639,  600,
00579       605,  597,  593,  589,  585,  575,  569, 1231,  551, 1239,
00580       559, 1242, 1245, 1248, 1256, 1639,  553,  508,  493,  501,
00581       500,  485,  487,  476, 1262,  475,  456, 1265, 1268,  458,
00582      1271, 1279, 1285,  445,  451,  432,  435,  424,  425,  407,
00583       405, 1288, 1291, 1294,  388, 1297,  398, 1302,  392,  390,
00584       390,  385,  379,  364, 1308,  371, 1311, 1314, 1317,  369,
00585       363,  350,  351,  346,  353,  331,  342, 1321, 1324,  338,
00586      1328,  320,  328,  311,  321,  310,  304,  315,  312, 1334,
00587       283,  282,  295,  270,  267,  252,  275,  247,  264, 1337,
00588 
00589       253,  248,  235,  243,  225,  205, 1340,  222, 1343, 1346,
00590       210,  217,  208,  189, 1356,  184, 1359, 1362,  173, 1365,
00591       176,  171,  164,  155, 1372, 1375,  154, 1378,  156,  141,
00592       139, 1639,  135, 1381,  146,  125, 1385,  120, 1639,  104,
00593      1388, 1391, 1394, 1401,  102, 1405, 1408, 1411, 1418, 1421,
00594        87, 1424, 1427,   63,   46,   27, 1432, 1435, 1438, 1441,
00595      1639, 1449, 1452, 1455, 1458, 1461, 1464, 1467, 1470
00596     } ;
00597 
00598 static yyconst flex_int16_t yy_def[770] =
00599     {   0,
00600       762,  762,  763,  763,  764,  764,  765,  765,  765,  765,
00601       765,  765,  766,  766,  767,  767,  761,  761,  761,   19,
00602        19,  761,  761,  761,  761,  761,  761,  761,  761,  768,
00603       761,  769,  761,  761,  761,  761,  761,  761,   19,  761,
00604        27,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00605       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00606       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00607       761,  761,  761,  761,  761,  768,  769,  761,  761,  761,
00608       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00609       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00610 
00611       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00612       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00613       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00614       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00615       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00616       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00617       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00618       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00619       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00620       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00621 
00622       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00623       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00624       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00625       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00626       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00627       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00628       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00629       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00630       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00631       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00632 
00633       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00634       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00635       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00636       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00637       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00638       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00639       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00640       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00641       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00642       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00643 
00644       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00645       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00646       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00647       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00648       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00649       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00650       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00651       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00652       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00653       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00654 
00655       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00656       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00657       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00658       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00659       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00660       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00661       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00662       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00663       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00664       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00665 
00666       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00667       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00668       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00669       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00670       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00671       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00672       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00673       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00674       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00675       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00676 
00677       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00678       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00679       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00680       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00681       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00682       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00683         0,  761,  761,  761,  761,  761,  761,  761,  761
00684     } ;
00685 
00686 static yyconst flex_int16_t yy_nxt[1694] =
00687     {   0,
00688       761,   19,   20,   21,   37,   22,   22,   34,   23,   24,
00689        25,   26,   27,   35,   28,   34,   37,   38,   53,  761,
00690        29,   35,   50,  761,   51,   54,   50,   53,   51,   38,
00691       761,   83,  108,   52,   54,   54,   88,   88,  116,   54,
00692        89,  109,  179,   50,  113,   51,  117,  180,   54,   54,
00693        84,  114,   54,   22,   19,   20,   21,  126,   22,   22,
00694       150,   23,   24,   25,   26,   27,   54,   28,   53,  151,
00695       118,  123,  757,   29,  124,   54,  119,  125,  127,  120,
00696       128,  138,  138,  138,  158,  121,  756,  129,  155,   54,
00697       130,  131,  159,  139,  169,  156,  160,  147,  147,  147,
00698 
00699       200,  164,  161,  201,  755,  162,   22,   39,   39,   39,
00700       148,  163,  138,  138,  138,  170,   40,  165,   41,  166,
00701        42,  171,  167,  754,  139,  168,  231,  232,  172,  375,
00702       140,  173,  174,  220,  220,  220,   43,  183,  183,  183,
00703       425,   44,   45,  186,  186,  186,   46,  751,  225,  745,
00704       184,   47,   48,  226,   49,   56,  187,  376,  208,  208,
00705       208,   57,  209,  210,  250,  744,   58,  251,  426,   59,
00706       741,  147,  147,  147,   60,  221,  221,  221,  740,   61,
00707       739,   62,   63,   64,  148,  738,  737,   65,  222,   66,
00708        67,   68,   69,   70,   71,  736,   72,   73,  735,   74,
00709 
00710        91,  733,  229,  229,  229,   92,  233,  233,  233,  732,
00711        93,  731,   94,   95,   96,  230,  730,  729,   97,  234,
00712        98,   99,  100,  101,  102,  103,  727,  104,  105,  724,
00713       106,  211,  211,  211,  238,  238,  238,  256,  256,  256,
00714       260,  260,  260,  212,  263,  263,  263,  239,  723,  722,
00715       257,  721,  213,  261,  719,  716,  214,  264,  183,  183,
00716       183,  265,  265,  265,  186,  186,  186,  267,  267,  267,
00717       715,  184,  268,  268,  268,  714,  713,  187,  270,  270,
00718       270,  282,  282,  282,  712,  269,  287,  287,  287,  711,
00719       708,  271,  707,  706,  283,  291,  291,  291,  705,  288,
00720 
00721       208,  208,  208,  704,  209,  210,  703,  292,  211,  211,
00722       211,  294,  294,  294,  297,  297,  297,  301,  301,  301,
00723       212,  220,  220,  220,  272,  702,  298,  701,  700,  302,
00724       221,  221,  221,  304,  304,  304,  305,  305,  305,  308,
00725       308,  308,  699,  222,  311,  311,  311,  698,  697,  306,
00726       696,  695,  309,  314,  314,  314,  694,  312,  229,  229,
00727       229,  316,  316,  316,  693,  692,  315,  233,  233,  233,
00728       691,  230,  319,  319,  319,  320,  320,  320,  689,  688,
00729       234,  687,  686,  310,  322,  322,  322,  685,  321,  238,
00730       238,  238,  326,  326,  326,  684,  683,  323,  329,  329,
00731 
00732       329,  682,  239,  338,  338,  338,  343,  343,  343,  680,
00733       677,  330,  346,  346,  346,  676,  339,  675,  674,  344,
00734       256,  256,  256,  673,  672,  347,  349,  349,  349,  331,
00735       324,  671,  670,  257,  666,  260,  260,  260,  352,  352,
00736       352,  263,  263,  263,  354,  354,  354,  348,  261,  265,
00737       265,  265,  665,  664,  264,  267,  267,  267,  268,  268,
00738       268,  356,  356,  356,  270,  270,  270,  357,  357,  357,
00739       663,  269,  363,  363,  363,  662,  661,  271,  282,  282,
00740       282,  369,  369,  369,  660,  364,  370,  370,  370,  659,
00741       657,  283,  287,  287,  287,  374,  374,  374,  655,  371,
00742 
00743       291,  291,  291,  654,  651,  288,  378,  378,  378,  294,
00744       294,  294,  292,  297,  297,  297,  382,  382,  382,  650,
00745       383,  384,  386,  386,  386,  298,  301,  301,  301,  649,
00746       648,  389,  389,  389,  387,  390,  391,  647,  302,  646,
00747       645,  388,  392,  392,  392,  304,  304,  304,  305,  305,
00748       305,  394,  394,  394,  393,  308,  308,  308,  396,  396,
00749       396,  306,  311,  311,  311,  398,  398,  398,  309,  314,
00750       314,  314,  400,  400,  400,  312,  316,  316,  316,  319,
00751       319,  319,  315,  320,  320,  320,  403,  403,  403,  322,
00752       322,  322,  404,  404,  404,  644,  321,  326,  326,  326,
00753 
00754       640,  637,  323,  329,  329,  329,  409,  409,  409,  411,
00755       411,  411,  413,  413,  413,  636,  330,  338,  338,  338,
00756       635,  634,  412,  633,  632,  414,  419,  419,  419,  631,
00757       339,  420,  420,  420,  343,  343,  343,  424,  424,  424,
00758       346,  346,  346,  630,  421,  629,  628,  344,  427,  427,
00759       427,  627,  626,  347,  349,  349,  349,  352,  352,  352,
00760       354,  354,  354,  356,  356,  356,  357,  357,  357,  433,
00761       433,  433,  363,  363,  363,  439,  439,  439,  440,  440,
00762       440,  622,  434,  621,  620,  364,  369,  369,  369,  619,
00763       617,  441,  370,  370,  370,  444,  444,  444,  374,  374,
00764 
00765       374,  448,  448,  448,  616,  371,  378,  378,  378,  452,
00766       452,  452,  615,  614,  449,  454,  454,  454,  382,  382,
00767       382,  453,  383,  384,  386,  386,  386,  455,  457,  457,
00768       457,  613,  612,  389,  389,  389,  387,  390,  391,  392,
00769       392,  392,  459,  459,  459,  394,  394,  394,  396,  396,
00770       396,  393,  398,  398,  398,  400,  400,  400,  403,  403,
00771       403,  404,  404,  404,  465,  465,  465,  409,  409,  409,
00772       411,  411,  411,  471,  471,  471,  611,  466,  413,  413,
00773       413,  610,  609,  412,  472,  472,  472,  473,  473,  473,
00774       608,  414,  476,  476,  476,  419,  419,  419,  607,  606,
00775 
00776       474,  420,  420,  420,  605,  477,  479,  479,  479,  481,
00777       481,  481,  601,  600,  421,  424,  424,  424,  485,  485,
00778       485,  598,  482,  427,  427,  427,  490,  490,  490,  597,
00779       594,  486,  433,  433,  433,  493,  493,  493,  593,  491,
00780       590,  494,  494,  494,  589,  434,  439,  439,  439,  440,
00781       440,  440,  588,  483,  495,  498,  498,  498,  444,  444,
00782       444,  587,  441,  501,  501,  501,  448,  448,  448,  504,
00783       504,  504,  506,  506,  506,  586,  502,  585,  584,  449,
00784       452,  452,  452,  583,  507,  508,  508,  508,  454,  454,
00785       454,  582,  453,  509,  509,  509,  457,  457,  457,  580,
00786 
00787       455,  459,  459,  459,  514,  514,  514,  465,  465,  465,
00788       518,  518,  518,  519,  519,  519,  579,  515,  578,  576,
00789       466,  522,  522,  522,  575,  572,  520,  471,  471,  471,
00790       472,  472,  472,  569,  523,  473,  473,  473,  525,  525,
00791       525,  476,  476,  476,  527,  527,  527,  567,  474,  479,
00792       479,  479,  565,  564,  477,  529,  529,  529,  481,  481,
00793       481,  531,  531,  531,  532,  532,  532,  562,  530,  550,
00794       549,  482,  485,  485,  485,  547,  544,  533,  535,  535,
00795       535,  537,  537,  537,  543,  486,  490,  490,  490,  540,
00796       540,  540,  541,  539,  538,  493,  493,  493,  536,  491,
00797 
00798       494,  494,  494,  542,  542,  542,  498,  498,  498,  545,
00799       545,  545,  534,  495,  501,  501,  501,  548,  548,  548,
00800       528,  526,  546,  504,  504,  504,  524,  502,  506,  506,
00801       506,  551,  551,  551,  508,  508,  508,  509,  509,  509,
00802       507,  552,  558,  558,  558,  521,  553,  554,  517,  555,
00803       556,  516,  557,  513,  559,  560,  560,  560,  514,  514,
00804       514,  563,  563,  563,  518,  518,  518,  512,  561,  511,
00805       510,  515,  519,  519,  519,  566,  566,  566,  522,  522,
00806       522,  568,  568,  568,  505,  520,  525,  525,  525,  503,
00807       500,  523,  570,  570,  570,  527,  527,  527,  529,  529,
00808 
00809       529,  573,  573,  573,  499,  571,  531,  531,  531,  497,
00810       496,  530,  532,  532,  532,  574,  574,  574,  535,  535,
00811       535,  537,  537,  537,  492,  533,  577,  577,  577,  540,
00812       540,  540,  489,  488,  538,  542,  542,  542,  545,  545,
00813       545,  581,  581,  581,  548,  548,  548,  551,  551,  551,
00814       487,  546,  558,  558,  558,  591,  591,  591,  560,  560,
00815       560,  592,  592,  592,  559,  563,  563,  563,  595,  595,
00816       595,  561,  566,  566,  566,  568,  568,  568,  570,  570,
00817       570,  596,  599,  599,  599,  573,  573,  573,  574,  574,
00818       574,  571,  602,  602,  602,  577,  577,  577,  581,  581,
00819 
00820       581,  591,  591,  591,  484,  603,  592,  592,  592,  595,
00821       595,  595,  618,  618,  618,  599,  599,  599,  602,  602,
00822       602,  480,  596,  623,  623,  623,  624,  624,  624,  478,
00823       475,  603,  618,  618,  618,  470,  604,  469,  468,  625,
00824       638,  638,  638,  641,  641,  641,  623,  623,  623,  624,
00825       624,  624,  467,  639,  464,  463,  642,  643,  643,  643,
00826       462,  461,  625,  652,  652,  652,  638,  638,  638,  656,
00827       656,  656,  641,  641,  641,  460,  653,  458,  456,  639,
00828       658,  658,  658,  451,  450,  642,  643,  643,  643,  652,
00829       652,  652,  667,  667,  667,  668,  668,  668,  656,  656,
00830 
00831       656,  447,  653,  658,  658,  658,  446,  445,  669,  678,
00832       678,  678,  667,  667,  667,  668,  668,  668,  681,  681,
00833       681,  679,  678,  678,  678,  690,  690,  690,  669,  681,
00834       681,  681,  443,  442,  679,  690,  690,  690,  709,  709,
00835       709,  717,  717,  717,  709,  709,  709,  720,  720,  720,
00836       710,  438,  437,  718,  436,  435,  710,  725,  725,  725,
00837       717,  717,  717,  728,  728,  728,  720,  720,  720,  726,
00838       432,  431,  718,  725,  725,  725,  734,  734,  734,  728,
00839       728,  728,  734,  734,  734,  726,  742,  742,  742,  746,
00840       746,  746,  742,  742,  742,  748,  748,  748,  430,  743,
00841 
00842       429,  747,  749,  749,  749,  743,  746,  746,  746,  752,
00843       752,  752,  748,  748,  748,  750,  428,  423,  747,  749,
00844       749,  749,  753,  753,  753,  752,  752,  752,  753,  753,
00845       753,  422,  750,  758,  758,  758,  758,  758,  758,  760,
00846       760,  760,  760,  760,  760,  759,  418,  417,  759,   18,
00847        18,   18,   30,   30,   30,   32,   32,   32,   31,   31,
00848        31,   33,   33,   33,   36,   36,   36,   76,  416,   76,
00849        77,   77,  415,  410,  408,  407,  406,  405,  402,  401,
00850       399,  397,  395,  385,  381,  380,  379,  377,  373,  372,
00851       368,  367,  366,  365,  362,  361,  360,  359,  358,  355,
00852 
00853       353,  351,  350,  345,  342,  341,  340,  337,  336,  335,
00854       334,  333,  332,  328,  327,  325,  318,  317,  313,  307,
00855       303,  300,  299,  296,  295,  293,  290,  289,  286,  285,
00856       284,  281,  280,  279,  278,  277,  276,  275,  274,  273,
00857       266,  262,  259,  258,  255,  254,  253,  252,  249,  248,
00858       247,  246,  245,  244,  243,  242,  241,  240,  237,  236,
00859       235,  228,  227,  224,  223,  219,  218,  217,  216,  215,
00860       207,  206,  205,  204,  203,  202,  199,  198,  197,  196,
00861       195,  194,  193,  192,  191,  190,  189,  188,  185,  182,
00862       181,  178,  177,  176,  175,  157,  154,  153,  152,  149,
00863 
00864       146,   89,   89,  145,  144,  143,  142,  141,  137,  136,
00865       135,  134,  133,  132,  122,  115,  112,  111,  110,  107,
00866        90,   75,   87,   86,   85,   82,   81,   80,   55,   79,
00867        78,   75,   55,  761,   31,   31,   31,   31,   17,  761,
00868       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00869       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00870       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00871       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00872       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
00873       761,  761,  761
00874 
00875     } ;
00876 
00877 static yyconst flex_int16_t yy_chk[1694] =
00878     {   0,
00879         0,    1,    1,    1,   15,    1,    1,   13,    1,    1,
00880         1,    1,    1,   13,    1,   14,   16,   15,   24,   41,
00881         1,   14,   23,    0,   23,   24,   26,   50,   26,   16,
00882        41,   46,   61,   23,   50,   26,   54,   54,   67,   24,
00883        54,   61,  110,   51,   65,   51,   67,  110,   50,   26,
00884        46,   65,   51,    1,    2,    2,    2,   71,    2,    2,
00885        93,    2,    2,    2,    2,    2,   51,    2,   53,   93,
00886        68,   70,  756,    2,   70,   53,   68,   70,   71,   68,
00887        72,   82,   82,   82,   99,   68,  755,   72,   97,   53,
00888        72,   72,   99,   82,  103,   97,  100,   91,   91,   91,
00889 
00890       129,  101,  100,  129,  754,  100,    2,   19,   19,   19,
00891        91,  100,  138,  138,  138,  103,   19,  101,   19,  102,
00892        19,  104,  102,  751,  138,  102,  156,  156,  104,  289,
00893        82,  104,  104,  148,  148,  148,   19,  113,  113,  113,
00894       345,   19,   19,  115,  115,  115,   19,  745,  152,  740,
00895       113,   19,   19,  152,   19,   27,  115,  289,  139,  139,
00896       139,   27,  139,  139,  172,  738,   27,  172,  345,   27,
00897       736,  147,  147,  147,   27,  149,  149,  149,  735,   27,
00898       733,   27,   27,   27,  147,  731,  730,   27,  149,   27,
00899        27,   27,   27,   27,   27,  729,   27,   27,  727,   27,
00900 
00901        57,  724,  155,  155,  155,   57,  157,  157,  157,  723,
00902        57,  722,   57,   57,   57,  155,  721,  719,   57,  157,
00903        57,   57,   57,   57,   57,   57,  716,   57,   57,  714,
00904        57,  140,  140,  140,  161,  161,  161,  177,  177,  177,
00905       180,  180,  180,  140,  182,  182,  182,  161,  713,  712,
00906       177,  711,  140,  180,  708,  706,  140,  182,  183,  183,
00907       183,  184,  184,  184,  186,  186,  186,  187,  187,  187,
00908       705,  183,  188,  188,  188,  704,  703,  186,  189,  189,
00909       189,  199,  199,  199,  702,  188,  203,  203,  203,  701,
00910       699,  189,  698,  697,  199,  206,  206,  206,  696,  203,
00911 
00912       208,  208,  208,  695,  208,  208,  694,  206,  211,  211,
00913       211,  212,  212,  212,  215,  215,  215,  218,  218,  218,
00914       211,  220,  220,  220,  189,  693,  215,  692,  691,  218,
00915       221,  221,  221,  222,  222,  222,  223,  223,  223,  225,
00916       225,  225,  689,  221,  226,  226,  226,  688,  687,  223,
00917       686,  685,  225,  228,  228,  228,  684,  226,  229,  229,
00918       229,  230,  230,  230,  683,  682,  228,  233,  233,  233,
00919       680,  229,  234,  234,  234,  235,  235,  235,  677,  676,
00920       233,  675,  674,  225,  236,  236,  236,  673,  235,  238,
00921       238,  238,  239,  239,  239,  672,  671,  236,  242,  242,
00922 
00923       242,  670,  238,  249,  249,  249,  253,  253,  253,  666,
00924       664,  242,  255,  255,  255,  663,  249,  662,  661,  253,
00925       256,  256,  256,  660,  659,  255,  257,  257,  257,  242,
00926       236,  657,  655,  256,  651,  260,  260,  260,  261,  261,
00927       261,  263,  263,  263,  264,  264,  264,  255,  260,  265,
00928       265,  265,  650,  649,  263,  267,  267,  267,  268,  268,
00929       268,  269,  269,  269,  270,  270,  270,  271,  271,  271,
00930       648,  268,  277,  277,  277,  647,  646,  270,  282,  282,
00931       282,  283,  283,  283,  645,  277,  284,  284,  284,  644,
00932       640,  282,  287,  287,  287,  288,  288,  288,  637,  284,
00933 
00934       291,  291,  291,  636,  634,  287,  292,  292,  292,  294,
00935       294,  294,  291,  297,  297,  297,  298,  298,  298,  633,
00936       298,  298,  300,  300,  300,  297,  301,  301,  301,  632,
00937       631,  302,  302,  302,  300,  302,  302,  630,  301,  629,
00938       628,  300,  303,  303,  303,  304,  304,  304,  305,  305,
00939       305,  306,  306,  306,  303,  308,  308,  308,  309,  309,
00940       309,  305,  311,  311,  311,  312,  312,  312,  308,  314,
00941       314,  314,  315,  315,  315,  311,  316,  316,  316,  319,
00942       319,  319,  314,  320,  320,  320,  321,  321,  321,  322,
00943       322,  322,  323,  323,  323,  627,  320,  326,  326,  326,
00944 
00945       621,  619,  322,  329,  329,  329,  330,  330,  330,  332,
00946       332,  332,  333,  333,  333,  617,  329,  338,  338,  338,
00947       616,  615,  332,  614,  613,  333,  339,  339,  339,  612,
00948       338,  340,  340,  340,  343,  343,  343,  344,  344,  344,
00949       346,  346,  346,  611,  340,  610,  608,  343,  347,  347,
00950       347,  606,  605,  346,  349,  349,  349,  352,  352,  352,
00951       354,  354,  354,  356,  356,  356,  357,  357,  357,  358,
00952       358,  358,  363,  363,  363,  364,  364,  364,  365,  365,
00953       365,  601,  358,  600,  598,  363,  369,  369,  369,  597,
00954       594,  365,  370,  370,  370,  371,  371,  371,  374,  374,
00955 
00956       374,  376,  376,  376,  593,  370,  378,  378,  378,  380,
00957       380,  380,  590,  589,  376,  381,  381,  381,  382,  382,
00958       382,  380,  382,  382,  386,  386,  386,  381,  387,  387,
00959       387,  588,  587,  389,  389,  389,  386,  389,  389,  392,
00960       392,  392,  393,  393,  393,  394,  394,  394,  396,  396,
00961       396,  392,  398,  398,  398,  400,  400,  400,  403,  403,
00962       403,  404,  404,  404,  405,  405,  405,  409,  409,  409,
00963       411,  411,  411,  412,  412,  412,  586,  405,  413,  413,
00964       413,  585,  583,  411,  414,  414,  414,  415,  415,  415,
00965       582,  413,  417,  417,  417,  419,  419,  419,  580,  579,
00966 
00967       415,  420,  420,  420,  578,  417,  421,  421,  421,  423,
00968       423,  423,  575,  572,  420,  424,  424,  424,  426,  426,
00969       426,  569,  423,  427,  427,  427,  431,  431,  431,  567,
00970       564,  426,  433,  433,  433,  434,  434,  434,  562,  431,
00971       557,  435,  435,  435,  556,  433,  439,  439,  439,  440,
00972       440,  440,  555,  423,  435,  441,  441,  441,  444,  444,
00973       444,  554,  440,  445,  445,  445,  448,  448,  448,  449,
00974       449,  449,  451,  451,  451,  553,  445,  552,  550,  448,
00975       452,  452,  452,  549,  451,  453,  453,  453,  454,  454,
00976       454,  547,  452,  455,  455,  455,  457,  457,  457,  544,
00977 
00978       454,  459,  459,  459,  462,  462,  462,  465,  465,  465,
00979       466,  466,  466,  467,  467,  467,  543,  462,  539,  536,
00980       465,  469,  469,  469,  534,  528,  467,  471,  471,  471,
00981       472,  472,  472,  524,  469,  473,  473,  473,  474,  474,
00982       474,  476,  476,  476,  477,  477,  477,  521,  473,  479,
00983       479,  479,  517,  516,  476,  480,  480,  480,  481,  481,
00984       481,  482,  482,  482,  483,  483,  483,  513,  480,  505,
00985       503,  481,  485,  485,  485,  500,  497,  483,  486,  486,
00986       486,  488,  488,  488,  496,  485,  490,  490,  490,  491,
00987       491,  491,  492,  489,  488,  493,  493,  493,  487,  490,
00988 
00989       494,  494,  494,  495,  495,  495,  498,  498,  498,  499,
00990       499,  499,  484,  494,  501,  501,  501,  502,  502,  502,
00991       478,  475,  499,  504,  504,  504,  470,  501,  506,  506,
00992       506,  507,  507,  507,  508,  508,  508,  509,  509,  509,
00993       506,  510,  511,  511,  511,  468,  510,  510,  464,  510,
00994       510,  463,  510,  461,  511,  512,  512,  512,  514,  514,
00995       514,  515,  515,  515,  518,  518,  518,  460,  512,  458,
00996       456,  514,  519,  519,  519,  520,  520,  520,  522,  522,
00997       522,  523,  523,  523,  450,  519,  525,  525,  525,  447,
00998       443,  522,  526,  526,  526,  527,  527,  527,  529,  529,
00999 
01000       529,  530,  530,  530,  442,  526,  531,  531,  531,  438,
01001       436,  529,  532,  532,  532,  533,  533,  533,  535,  535,
01002       535,  537,  537,  537,  432,  532,  538,  538,  538,  540,
01003       540,  540,  430,  429,  537,  542,  542,  542,  545,  545,
01004       545,  546,  546,  546,  548,  548,  548,  551,  551,  551,
01005       428,  545,  558,  558,  558,  559,  559,  559,  560,  560,
01006       560,  561,  561,  561,  558,  563,  563,  563,  565,  565,
01007       565,  560,  566,  566,  566,  568,  568,  568,  570,  570,
01008       570,  565,  571,  571,  571,  573,  573,  573,  574,  574,
01009       574,  570,  576,  576,  576,  577,  577,  577,  581,  581,
01010 
01011       581,  591,  591,  591,  425,  576,  592,  592,  592,  595,
01012       595,  595,  596,  596,  596,  599,  599,  599,  602,  602,
01013       602,  422,  595,  603,  603,  603,  604,  604,  604,  418,
01014       416,  602,  618,  618,  618,  410,  576,  408,  407,  604,
01015       620,  620,  620,  622,  622,  622,  623,  623,  623,  624,
01016       624,  624,  406,  620,  402,  401,  622,  625,  625,  625,
01017       399,  397,  624,  635,  635,  635,  638,  638,  638,  639,
01018       639,  639,  641,  641,  641,  395,  635,  388,  385,  638,
01019       642,  642,  642,  379,  377,  641,  643,  643,  643,  652,
01020       652,  652,  653,  653,  653,  654,  654,  654,  656,  656,
01021 
01022       656,  375,  652,  658,  658,  658,  373,  372,  654,  665,
01023       665,  665,  667,  667,  667,  668,  668,  668,  669,  669,
01024       669,  665,  678,  678,  678,  679,  679,  679,  668,  681,
01025       681,  681,  368,  366,  678,  690,  690,  690,  700,  700,
01026       700,  707,  707,  707,  709,  709,  709,  710,  710,  710,
01027       700,  362,  361,  707,  360,  359,  709,  715,  715,  715,
01028       717,  717,  717,  718,  718,  718,  720,  720,  720,  715,
01029       355,  353,  717,  725,  725,  725,  726,  726,  726,  728,
01030       728,  728,  734,  734,  734,  725,  737,  737,  737,  741,
01031       741,  741,  742,  742,  742,  743,  743,  743,  351,  737,
01032 
01033       350,  741,  744,  744,  744,  742,  746,  746,  746,  747,
01034       747,  747,  748,  748,  748,  744,  348,  342,  746,  749,
01035       749,  749,  750,  750,  750,  752,  752,  752,  753,  753,
01036       753,  341,  749,  757,  757,  757,  758,  758,  758,  759,
01037       759,  759,  760,  760,  760,  757,  337,  336,  758,  762,
01038       762,  762,  763,  763,  763,  764,  764,  764,  765,  765,
01039       765,  766,  766,  766,  767,  767,  767,  768,  335,  768,
01040       769,  769,  334,  331,  328,  327,  325,  324,  318,  317,
01041       313,  310,  307,  299,  296,  295,  293,  290,  286,  285,
01042       281,  280,  279,  278,  276,  275,  274,  273,  272,  266,
01043 
01044       262,  259,  258,  254,  252,  251,  250,  248,  247,  246,
01045       245,  244,  243,  241,  240,  237,  232,  231,  227,  224,
01046       219,  217,  216,  214,  213,  207,  205,  204,  202,  201,
01047       200,  198,  197,  196,  195,  194,  193,  192,  191,  190,
01048       185,  181,  179,  178,  176,  175,  174,  173,  171,  170,
01049       169,  168,  167,  166,  165,  164,  163,  162,  160,  159,
01050       158,  154,  153,  151,  150,  145,  144,  143,  142,  141,
01051       137,  136,  133,  132,  131,  130,  128,  127,  126,  125,
01052       124,  123,  122,  121,  120,  118,  117,  116,  114,  112,
01053       111,  109,  108,  106,  105,   98,   96,   95,   94,   92,
01054 
01055        90,   89,   88,   87,   86,   85,   84,   83,   81,   80,
01056        78,   75,   74,   73,   69,   66,   64,   63,   62,   60,
01057        56,   52,   49,   48,   47,   45,   44,   43,   40,   38,
01058        35,   29,   25,   17,    6,    5,    4,    3,  761,  761,
01059       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
01060       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
01061       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
01062       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
01063       761,  761,  761,  761,  761,  761,  761,  761,  761,  761,
01064       761,  761,  761
01065 
01066     } ;
01067 
01068 /* Table of booleans, true if rule could match eol. */
01069 static yyconst flex_int32_t yy_rule_can_match_eol[115] =
01070     {   0,
01071 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01072     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01073     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01074     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01075     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
01076     1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0,     };
01077 
01078 /* The intent behind this definition is that it'll catch
01079  * any uses of REJECT which flex missed.
01080  */
01081 #define REJECT reject_used_but_not_detected
01082 #define yymore() yymore_used_but_not_detected
01083 #define YY_MORE_ADJ 0
01084 #define YY_RESTORE_YY_MORE_OFFSET
01085 #line 1 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01086 
01100 #line 16 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01101 
01102 
01103 #include "OSDataStructures.h"
01104 #include "OSMathUtil.h"
01105 #include "OSConfig.h"
01106 
01107 #include <iostream>
01108 
01109 
01110 
01111 #ifdef HAVE_CSTDIO
01112 # include <cstdio>
01113 #else
01114 # ifdef HAVE_STDIO_H
01115 #  include <stdio.h>
01116 # else
01117 #  error "don't have header file for stdio"
01118 # endif
01119 #endif
01120 
01121 #ifdef HAVE_CTIME
01122 # include <ctime>
01123 #else
01124 # ifdef HAVE_TIME_H
01125 #  include <time.h>
01126 # else
01127 #  error "don't have header file for time"
01128 # endif
01129 #endif
01130 
01131 #ifdef HAVE_CMATH
01132 # include <cmath>
01133 #else
01134 # ifdef HAVE_MATH_H
01135 #  include <math.h>
01136 # else
01137 #  error "don't have header file for math"
01138 # endif
01139 #endif
01140 
01141 #include <sstream>  
01142 #include "OSiLParserData.h"
01143 
01144 
01145 
01146 #include "OSErrorClass.h"
01147 #include "OSParseosil.tab.hpp"
01148 #include "OSInstance.h"
01149 
01150 
01151 
01152 
01153 #ifdef PARSERDEBUG
01154         #define YY_PRINT  printf("%s", yytext);
01155 #else     
01156         #define YY_PRINT ;
01157 #endif
01158 
01159 
01160 
01161 #ifdef WIN_
01162   #define YY_NO_UNISTD_H
01163   #include <io.h>
01164   #include <process.h>
01165   #ifdef USE_OLD_UNISTD
01166      #include<sys/unistd.h>
01167   #endif
01168 #endif
01169 using std::cout;
01170 using std::endl;
01171 using std::ostringstream;
01172 
01173 
01174 
01175 
01176 
01177 
01178 
01179 #line 106 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01180 #define YY_EXTRA_TYPE OSiLParserData*
01181 #line 1182 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp"
01182 
01183 #define INITIAL 0
01184 #define doublequoteattributetext 1
01185 #define singlequoteattributetext 2
01186 #define startelement 3
01187 #define osilattributetext 4
01188 #define elementtext 5
01189 #define comment 6
01190 #define xmldeclaration 7
01191 
01192 #ifndef YY_NO_UNISTD_H
01193 /* Special case for "unistd.h", since it is non-ANSI. We include it way
01194  * down here because we want the user's section 1 to have been scanned first.
01195  * The user has a chance to override it with an option.
01196  */
01197 #include <unistd.h>
01198 #endif
01199 
01200 #ifndef YY_EXTRA_TYPE
01201 #define YY_EXTRA_TYPE void *
01202 #endif
01203 
01204 /* Holds the entire state of the reentrant scanner. */
01205 struct yyguts_t
01206     {
01207 
01208     /* User-defined. Not touched by flex. */
01209     YY_EXTRA_TYPE yyextra_r;
01210 
01211     /* The rest are the same as the globals declared in the non-reentrant scanner. */
01212     FILE *yyin_r, *yyout_r;
01213     size_t yy_buffer_stack_top; 
01214     size_t yy_buffer_stack_max; 
01215     YY_BUFFER_STATE * yy_buffer_stack; 
01216     char yy_hold_char;
01217     int yy_n_chars;
01218     int yyleng_r;
01219     char *yy_c_buf_p;
01220     int yy_init;
01221     int yy_start;
01222     int yy_did_buffer_switch_on_eof;
01223     int yy_start_stack_ptr;
01224     int yy_start_stack_depth;
01225     int *yy_start_stack;
01226     yy_state_type yy_last_accepting_state;
01227     char* yy_last_accepting_cpos;
01228 
01229     int yylineno_r;
01230     int yy_flex_debug_r;
01231 
01232     char *yytext_r;
01233     int yy_more_flag;
01234     int yy_more_len;
01235 
01236     YYSTYPE * yylval_r;
01237 
01238     YYLTYPE * yylloc_r;
01239 
01240     }; /* end struct yyguts_t */
01241 
01242 static int yy_init_globals (yyscan_t yyscanner );
01243 
01244     /* This must go here because YYSTYPE and YYLTYPE are included
01245      * from bison output in section 1.*/
01246     #    define yylval yyg->yylval_r
01247     
01248     #    define yylloc yyg->yylloc_r
01249     
01250 /* Accessor methods to globals.
01251    These are made visible to non-reentrant scanners for convenience. */
01252 
01253 int osillex_destroy (yyscan_t yyscanner );
01254 
01255 int osilget_debug (yyscan_t yyscanner );
01256 
01257 void osilset_debug (int debug_flag ,yyscan_t yyscanner );
01258 
01259 YY_EXTRA_TYPE osilget_extra (yyscan_t yyscanner );
01260 
01261 void osilset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
01262 
01263 FILE *osilget_in (yyscan_t yyscanner );
01264 
01265 void osilset_in  (FILE * in_str ,yyscan_t yyscanner );
01266 
01267 FILE *osilget_out (yyscan_t yyscanner );
01268 
01269 void osilset_out  (FILE * out_str ,yyscan_t yyscanner );
01270 
01271 int osilget_leng (yyscan_t yyscanner );
01272 
01273 char *osilget_text (yyscan_t yyscanner );
01274 
01275 int osilget_lineno (yyscan_t yyscanner );
01276 
01277 void osilset_lineno (int line_number ,yyscan_t yyscanner );
01278 
01279 YYSTYPE * osilget_lval (yyscan_t yyscanner );
01280 
01281 void osilset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
01282 
01283        YYLTYPE *osilget_lloc (yyscan_t yyscanner );
01284     
01285         void osilset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
01286     
01287 /* Macros after this point can all be overridden by user definitions in
01288  * section 1.
01289  */
01290 
01291 #ifndef YY_SKIP_YYWRAP
01292 #ifdef __cplusplus
01293 extern "C" int osilwrap (yyscan_t yyscanner );
01294 #else
01295 extern int osilwrap (yyscan_t yyscanner );
01296 #endif
01297 #endif
01298 
01299     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
01300     
01301 #ifndef yytext_ptr
01302 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
01303 #endif
01304 
01305 #ifdef YY_NEED_STRLEN
01306 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
01307 #endif
01308 
01309 #ifndef YY_NO_INPUT
01310 
01311 #ifdef __cplusplus
01312 static int yyinput (yyscan_t yyscanner );
01313 #else
01314 static int input (yyscan_t yyscanner );
01315 #endif
01316 
01317 #endif
01318 
01319 /* Amount of stuff to slurp up with each read. */
01320 #ifndef YY_READ_BUF_SIZE
01321 #define YY_READ_BUF_SIZE 8192
01322 #endif
01323 
01324 /* Copy whatever the last rule matched to the standard output. */
01325 #ifndef ECHO
01326 /* This used to be an fputs(), but since the string might contain NUL's,
01327  * we now use fwrite().
01328  */
01329 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01330 #endif
01331 
01332 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
01333  * is returned in "result".
01334  */
01335 #ifndef YY_INPUT
01336 #define YY_INPUT(buf,result,max_size) \
01337         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
01338                 { \
01339                 int c = '*'; \
01340                 size_t n; \
01341                 for ( n = 0; n < max_size && \
01342                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
01343                         buf[n] = (char) c; \
01344                 if ( c == '\n' ) \
01345                         buf[n++] = (char) c; \
01346                 if ( c == EOF && ferror( yyin ) ) \
01347                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
01348                 result = n; \
01349                 } \
01350         else \
01351                 { \
01352                 errno=0; \
01353                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
01354                         { \
01355                         if( errno != EINTR) \
01356                                 { \
01357                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
01358                                 break; \
01359                                 } \
01360                         errno=0; \
01361                         clearerr(yyin); \
01362                         } \
01363                 }\
01364 \
01365 
01366 #endif
01367 
01368 /* No semi-colon after return; correct usage is to write "yyterminate();" -
01369  * we don't want an extra ';' after the "return" because that will cause
01370  * some compilers to complain about unreachable statements.
01371  */
01372 #ifndef yyterminate
01373 #define yyterminate() return YY_NULL
01374 #endif
01375 
01376 /* Number of entries by which start-condition stack grows. */
01377 #ifndef YY_START_STACK_INCR
01378 #define YY_START_STACK_INCR 25
01379 #endif
01380 
01381 /* Report a fatal error. */
01382 #ifndef YY_FATAL_ERROR
01383 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
01384 #endif
01385 
01386 /* end tables serialization structures and prototypes */
01387 
01388 /* Default declaration of generated scanner - a define so the user can
01389  * easily add parameters.
01390  */
01391 #ifndef YY_DECL
01392 #define YY_DECL_IS_OURS 1
01393 
01394 extern int osillex (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
01395 
01396 #define YY_DECL int osillex (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
01397 #endif /* !YY_DECL */
01398 
01399 /* Code executed at the beginning of each rule, after yytext and yyleng
01400  * have been set up.
01401  */
01402 #ifndef YY_USER_ACTION
01403 #define YY_USER_ACTION
01404 #endif
01405 
01406 /* Code executed at the end of each rule. */
01407 #ifndef YY_BREAK
01408 #define YY_BREAK break;
01409 #endif
01410 
01411 #define YY_RULE_SETUP \
01412         YY_USER_ACTION
01413 
01416 YY_DECL
01417 {
01418         register yy_state_type yy_current_state;
01419         register char *yy_cp, *yy_bp;
01420         register int yy_act;
01421     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01422 
01423 #line 117 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01424 
01425  
01426 #line 1427 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp"
01427 
01428     yylval = yylval_param;
01429 
01430     yylloc = yylloc_param;
01431 
01432         if ( !yyg->yy_init )
01433                 {
01434                 yyg->yy_init = 1;
01435 
01436 #ifdef YY_USER_INIT
01437                 YY_USER_INIT;
01438 #endif
01439 
01440                 if ( ! yyg->yy_start )
01441                         yyg->yy_start = 1;      /* first start state */
01442 
01443                 if ( ! yyin )
01444                         yyin = stdin;
01445 
01446                 if ( ! yyout )
01447                         yyout = stdout;
01448 
01449                 if ( ! YY_CURRENT_BUFFER ) {
01450                         osilensure_buffer_stack (yyscanner);
01451                         YY_CURRENT_BUFFER_LVALUE =
01452                                 osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01453                 }
01454 
01455                 osil_load_buffer_state(yyscanner );
01456                 }
01457 
01458         while ( 1 )             /* loops until end-of-file is reached */
01459                 {
01460                 yy_cp = yyg->yy_c_buf_p;
01461 
01462                 /* Support of yytext. */
01463                 *yy_cp = yyg->yy_hold_char;
01464 
01465                 /* yy_bp points to the position in yy_ch_buf of the start of
01466                  * the current run.
01467                  */
01468                 yy_bp = yy_cp;
01469 
01470                 yy_current_state = yyg->yy_start;
01471 yy_match:
01472                 do
01473                         {
01474                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01475                         if ( yy_accept[yy_current_state] )
01476                                 {
01477                                 yyg->yy_last_accepting_state = yy_current_state;
01478                                 yyg->yy_last_accepting_cpos = yy_cp;
01479                                 }
01480                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01481                                 {
01482                                 yy_current_state = (int) yy_def[yy_current_state];
01483                                 if ( yy_current_state >= 762 )
01484                                         yy_c = yy_meta[(unsigned int) yy_c];
01485                                 }
01486                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01487                         ++yy_cp;
01488                         }
01489                 while ( yy_base[yy_current_state] != 1639 );
01490 
01491 yy_find_action:
01492                 yy_act = yy_accept[yy_current_state];
01493                 if ( yy_act == 0 )
01494                         { /* have to back up */
01495                         yy_cp = yyg->yy_last_accepting_cpos;
01496                         yy_current_state = yyg->yy_last_accepting_state;
01497                         yy_act = yy_accept[yy_current_state];
01498                         }
01499 
01500                 YY_DO_BEFORE_ACTION;
01501 
01502                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
01503                         {
01504                         int yyl;
01505                         for ( yyl = 0; yyl < yyleng; ++yyl )
01506                                 if ( yytext[yyl] == '\n' )
01507                                            
01508     do{ yylineno++;
01509         yycolumn=0;
01510     }while(0)
01511 ;
01512                         }
01513 
01514 do_action:      /* This label is used only to access EOF actions. */
01515 
01516                 switch ( yy_act )
01517         { /* beginning of action switch */
01518                         case 0: /* must back up */
01519                         /* undo the effects of YY_DO_BEFORE_ACTION */
01520                         *yy_cp = yyg->yy_hold_char;
01521                         yy_cp = yyg->yy_last_accepting_cpos;
01522                         yy_current_state = yyg->yy_last_accepting_state;
01523                         goto yy_find_action;
01524 
01525 case 1:
01526 /* rule 1 can match eol */
01527 YY_RULE_SETUP
01528 #line 119 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01529 
01530         YY_BREAK
01531 /* General patterns matched in more than one element */
01532 case 2:
01533 YY_RULE_SETUP
01534 #line 124 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01535 {YY_PRINT;  yylval->sval = yytext; return(QUOTE);}
01536         YY_BREAK
01537 case 3:
01538 /* rule 3 can match eol */
01539 YY_RULE_SETUP
01540 #line 125 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01541 {YY_PRINT; return(GREATERTHAN);}
01542         YY_BREAK
01543 case 4:
01544 YY_RULE_SETUP
01545 #line 126 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01546 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
01547         YY_BREAK
01548 case 5:
01549 YY_RULE_SETUP
01550 #line 128 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01551 {YY_PRINT; 
01552 char *yytextEnd;
01553 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
01554         if( (unsigned)(yytextEnd - yytext) != strlen( yytext)){
01555                 std::ostringstream outStr;
01556                 outStr << "encountered a spurious character in the lexer" << endl;
01557                 outStr << "The first character is: ";
01558                 outStr <<  yytext;
01559                 outStr << endl;
01560                 outStr << "See line number: " << yylineno << endl;  
01561                 throw ErrorClass( outStr.str());
01562         }
01563 return(DOUBLE);}
01564         YY_BREAK
01565 case 6:
01566 /* rule 6 can match eol */
01567 YY_RULE_SETUP
01568 #line 144 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01569 {YY_PRINT;  return(ENDOFELEMENT);}
01570         YY_BREAK
01571 case 7:
01572 /* rule 7 can match eol */
01573 YY_RULE_SETUP
01574 #line 147 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01575 {YY_PRINT; return(NUMBEROFNONLINEAREXPRESSIONS);}
01576         YY_BREAK
01577 case 8:
01578 /* rule 8 can match eol */
01579 YY_RULE_SETUP
01580 #line 148 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01581 {YY_PRINT; return(NUMBEROFQTERMSATT);}
01582         YY_BREAK
01583 case 9:
01584 /* rule 9 can match eol */
01585 YY_RULE_SETUP
01586 #line 149 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01587 {YY_PRINT; return(NUMBEROFSTAGESATT);}
01588         YY_BREAK
01589 case 10:
01590 /* rule 10 can match eol */
01591 YY_RULE_SETUP
01592 #line 150 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01593 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
01594         YY_BREAK
01595 case 11:
01596 /* rule 11 can match eol */
01597 YY_RULE_SETUP
01598 #line 151 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01599 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
01600         YY_BREAK
01601 case 12:
01602 /* rule 12 can match eol */
01603 YY_RULE_SETUP
01604 #line 152 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01605 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
01606         YY_BREAK
01607 case 13:
01608 /* rule 13 can match eol */
01609 YY_RULE_SETUP
01610 #line 154 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01611 {YY_PRINT;   return(IDXATT);}
01612         YY_BREAK
01613 case 14:
01614 /* rule 14 can match eol */
01615 YY_RULE_SETUP
01616 #line 155 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01617 {YY_PRINT;   return(IDXONEATT);}
01618         YY_BREAK
01619 case 15:
01620 /* rule 15 can match eol */
01621 YY_RULE_SETUP
01622 #line 156 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01623 {YY_PRINT;   return(IDXTWOATT);}
01624         YY_BREAK
01625 case 16:
01626 /* rule 16 can match eol */
01627 YY_RULE_SETUP
01628 #line 157 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01629 {YY_PRINT;   return(COEFATT);}
01630         YY_BREAK
01631 case 17:
01632 /* rule 17 can match eol */
01633 YY_RULE_SETUP
01634 #line 158 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01635 {YY_PRINT;  return(VALUEATT);}
01636         YY_BREAK
01637 case 18:
01638 /* rule 18 can match eol */
01639 YY_RULE_SETUP
01640 #line 159 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01641 {YY_PRINT; return(STARTIDXATT);}
01642         YY_BREAK
01643 case 19:
01644 /* rule 19 can match eol */
01645 YY_RULE_SETUP
01646 #line 160 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01647 {YY_PRINT; return(HORIZONATT);}
01648         YY_BREAK
01649 case 20:
01650 /* rule 20 can match eol */
01651 YY_RULE_SETUP
01652 #line 161 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01653 {YY_PRINT; return(STARTATT);}
01654         YY_BREAK
01655 case 21:
01656 /* rule 21 can match eol */
01657 YY_RULE_SETUP
01658 #line 163 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01659 {YY_PRINT; BEGIN doublequoteattributetext; return(IDATT);}
01660         YY_BREAK
01661 case 22:
01662 /* rule 22 can match eol */
01663 YY_RULE_SETUP
01664 #line 164 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01665 {YY_PRINT; BEGIN singlequoteattributetext; return(IDATT);}
01666         YY_BREAK
01667 case 23:
01668 /* rule 23 can match eol */
01669 YY_RULE_SETUP
01670 #line 165 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01671 {YY_PRINT; BEGIN doublequoteattributetext; return(TYPEATT);}
01672         YY_BREAK
01673 case 24:
01674 /* rule 24 can match eol */
01675 YY_RULE_SETUP
01676 #line 166 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01677 {YY_PRINT; BEGIN singlequoteattributetext; return(TYPEATT);}
01678         YY_BREAK
01679 case 25:
01680 /* rule 25 can match eol */
01681 YY_RULE_SETUP
01682 #line 167 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01683 {YY_PRINT; BEGIN doublequoteattributetext; return(NAMEATT);}
01684         YY_BREAK
01685 case 26:
01686 /* rule 26 can match eol */
01687 YY_RULE_SETUP
01688 #line 168 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01689 {YY_PRINT; BEGIN singlequoteattributetext; return(NAMEATT);}
01690         YY_BREAK
01691 /* patterns for <quadraticCoefficients> */
01692 case 27:
01693 /* rule 27 can match eol */
01694 YY_RULE_SETUP
01695 #line 171 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01696 {YY_PRINT; return(OSILEND);}
01697         YY_BREAK
01698 case 28:
01699 /* rule 28 can match eol */
01700 YY_RULE_SETUP
01701 #line 172 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01702 {YY_PRINT; return(INSTANCEDATAEND);}
01703         YY_BREAK
01704 case 29:
01705 /* rule 29 can match eol */
01706 YY_RULE_SETUP
01707 #line 173 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01708 {YY_PRINT; return(QUADRATICCOEFFICIENTSSTART);}
01709         YY_BREAK
01710 case 30:
01711 /* rule 30 can match eol */
01712 YY_RULE_SETUP
01713 #line 174 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01714 {YY_PRINT; return(QUADRATICCOEFFICIENTSEND);}
01715         YY_BREAK
01716 case 31:
01717 /* rule 31 can match eol */
01718 YY_RULE_SETUP
01719 #line 175 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01720 {YY_PRINT; return(QTERMSTART);}
01721         YY_BREAK
01722 case 32:
01723 /* rule 32 can match eol */
01724 YY_RULE_SETUP
01725 #line 176 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01726 {YY_PRINT; return(QTERMEND);}
01727         YY_BREAK
01728 /* patterns for <nonlinearExpressions> */
01729 case 33:
01730 /* rule 33 can match eol */
01731 YY_RULE_SETUP
01732 #line 179 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01733 {YY_PRINT;  return(NONLINEAREXPRESSIONSSTART);}
01734         YY_BREAK
01735 case 34:
01736 /* rule 34 can match eol */
01737 YY_RULE_SETUP
01738 #line 180 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01739 {YY_PRINT; return(NONLINEAREXPRESSIONSEND);}
01740         YY_BREAK
01741 case 35:
01742 /* rule 35 can match eol */
01743 YY_RULE_SETUP
01744 #line 181 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01745 {YY_PRINT; return(NLSTART);}
01746         YY_BREAK
01747 case 36:
01748 /* rule 36 can match eol */
01749 YY_RULE_SETUP
01750 #line 182 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01751 {YY_PRINT; return(NLEND);}
01752         YY_BREAK
01753 case 37:
01754 /* rule 37 can match eol */
01755 YY_RULE_SETUP
01756 #line 183 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01757 {YY_PRINT; return(TIMESSTART);}
01758         YY_BREAK
01759 case 38:
01760 /* rule 38 can match eol */
01761 YY_RULE_SETUP
01762 #line 184 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01763 {YY_PRINT; return(TIMESEND);}
01764         YY_BREAK
01765 case 39:
01766 /* rule 39 can match eol */
01767 YY_RULE_SETUP
01768 #line 185 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01769 {YY_PRINT; return(DIVIDESTART);}
01770         YY_BREAK
01771 case 40:
01772 /* rule 40 can match eol */
01773 YY_RULE_SETUP
01774 #line 186 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01775 {YY_PRINT; return(DIVIDEEND);}
01776         YY_BREAK
01777 case 41:
01778 /* rule 41 can match eol */
01779 YY_RULE_SETUP
01780 #line 187 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01781 {YY_PRINT; return(PLUSSTART);}
01782         YY_BREAK
01783 case 42:
01784 /* rule 42 can match eol */
01785 YY_RULE_SETUP
01786 #line 188 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01787 {YY_PRINT; return(PLUSEND);}
01788         YY_BREAK
01789 case 43:
01790 /* rule 43 can match eol */
01791 YY_RULE_SETUP
01792 #line 189 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01793 {YY_PRINT; return(MINUSSTART);}
01794         YY_BREAK
01795 case 44:
01796 /* rule 44 can match eol */
01797 YY_RULE_SETUP
01798 #line 190 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01799 {YY_PRINT; return(MINUSEND);}
01800         YY_BREAK
01801 case 45:
01802 /* rule 45 can match eol */
01803 YY_RULE_SETUP
01804 #line 191 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01805 {YY_PRINT; return(NEGATESTART);}
01806         YY_BREAK
01807 case 46:
01808 /* rule 46 can match eol */
01809 YY_RULE_SETUP
01810 #line 192 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01811 {YY_PRINT; return(NEGATEEND);}
01812         YY_BREAK
01813 case 47:
01814 /* rule 47 can match eol */
01815 YY_RULE_SETUP
01816 #line 193 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01817 {YY_PRINT; return(POWERSTART);}
01818         YY_BREAK
01819 case 48:
01820 /* rule 48 can match eol */
01821 YY_RULE_SETUP
01822 #line 194 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01823 {YY_PRINT; return(POWEREND);}
01824         YY_BREAK
01825 case 49:
01826 /* rule 49 can match eol */
01827 YY_RULE_SETUP
01828 #line 195 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01829 {YY_PRINT; return(LNSTART);}
01830         YY_BREAK
01831 case 50:
01832 /* rule 50 can match eol */
01833 YY_RULE_SETUP
01834 #line 196 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01835 {YY_PRINT; return(LNEND);}
01836         YY_BREAK
01837 case 51:
01838 /* rule 51 can match eol */
01839 YY_RULE_SETUP
01840 #line 197 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01841 {YY_PRINT; return(SQRTSTART);}
01842         YY_BREAK
01843 case 52:
01844 /* rule 52 can match eol */
01845 YY_RULE_SETUP
01846 #line 198 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01847 {YY_PRINT; return(SQRTEND);}
01848         YY_BREAK
01849 case 53:
01850 /* rule 53 can match eol */
01851 YY_RULE_SETUP
01852 #line 199 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01853 {YY_PRINT; return(SQUARESTART);}
01854         YY_BREAK
01855 case 54:
01856 /* rule 54 can match eol */
01857 YY_RULE_SETUP
01858 #line 200 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01859 {YY_PRINT; return(SQUAREEND);}
01860         YY_BREAK
01861 case 55:
01862 /* rule 55 can match eol */
01863 YY_RULE_SETUP
01864 #line 201 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01865 {YY_PRINT; return(SINSTART);}
01866         YY_BREAK
01867 case 56:
01868 /* rule 56 can match eol */
01869 YY_RULE_SETUP
01870 #line 202 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01871 {YY_PRINT; return(SINEND);}
01872         YY_BREAK
01873 case 57:
01874 /* rule 57 can match eol */
01875 YY_RULE_SETUP
01876 #line 203 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01877 {YY_PRINT; return(COSSTART);}
01878         YY_BREAK
01879 case 58:
01880 /* rule 58 can match eol */
01881 YY_RULE_SETUP
01882 #line 204 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01883 {YY_PRINT; return(COSEND);}
01884         YY_BREAK
01885 case 59:
01886 /* rule 59 can match eol */
01887 YY_RULE_SETUP
01888 #line 205 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01889 {YY_PRINT; return(EXPSTART);}
01890         YY_BREAK
01891 case 60:
01892 /* rule 60 can match eol */
01893 YY_RULE_SETUP
01894 #line 206 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01895 {YY_PRINT; return(EXPEND);}
01896         YY_BREAK
01897 case 61:
01898 /* rule 61 can match eol */
01899 YY_RULE_SETUP
01900 #line 207 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01901 {YY_PRINT; return(ABSSTART);}
01902         YY_BREAK
01903 case 62:
01904 /* rule 62 can match eol */
01905 YY_RULE_SETUP
01906 #line 208 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01907 {YY_PRINT; return(ABSEND);}
01908         YY_BREAK
01909 case 63:
01910 /* rule 63 can match eol */
01911 YY_RULE_SETUP
01912 #line 209 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01913 {YY_PRINT; return(IFSTART);}
01914         YY_BREAK
01915 case 64:
01916 /* rule 64 can match eol */
01917 YY_RULE_SETUP
01918 #line 210 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01919 {YY_PRINT; return(IFEND);}
01920         YY_BREAK
01921 case 65:
01922 /* rule 65 can match eol */
01923 YY_RULE_SETUP
01924 #line 211 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01925 {YY_PRINT; return(MAXSTART);}
01926         YY_BREAK
01927 case 66:
01928 /* rule 66 can match eol */
01929 YY_RULE_SETUP
01930 #line 212 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01931 {YY_PRINT; return(MAXEND);}
01932         YY_BREAK
01933 case 67:
01934 /* rule 67 can match eol */
01935 YY_RULE_SETUP
01936 #line 213 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01937 {YY_PRINT; return(MINSTART);}
01938         YY_BREAK
01939 case 68:
01940 /* rule 68 can match eol */
01941 YY_RULE_SETUP
01942 #line 214 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01943 {YY_PRINT; return(MINEND);}
01944         YY_BREAK
01945 case 69:
01946 /* rule 69 can match eol */
01947 YY_RULE_SETUP
01948 #line 215 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01949 {YY_PRINT; return(SUMSTART);}
01950         YY_BREAK
01951 case 70:
01952 /* rule 70 can match eol */
01953 YY_RULE_SETUP
01954 #line 216 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01955 {YY_PRINT; return(SUMEND);}
01956         YY_BREAK
01957 case 71:
01958 /* rule 71 can match eol */
01959 YY_RULE_SETUP
01960 #line 217 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01961 {YY_PRINT; return(ALLDIFFSTART);}
01962         YY_BREAK
01963 case 72:
01964 /* rule 72 can match eol */
01965 YY_RULE_SETUP
01966 #line 218 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01967 {YY_PRINT; return(ALLDIFFEND);}
01968         YY_BREAK
01969 case 73:
01970 /* rule 73 can match eol */
01971 YY_RULE_SETUP
01972 #line 219 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01973 {YY_PRINT; return(PRODUCTSTART);}
01974         YY_BREAK
01975 case 74:
01976 /* rule 74 can match eol */
01977 YY_RULE_SETUP
01978 #line 220 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01979 {YY_PRINT; return(PRODUCTEND);}
01980         YY_BREAK
01981 case 75:
01982 /* rule 75 can match eol */
01983 YY_RULE_SETUP
01984 #line 222 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01985 {YY_PRINT; return(NUMBERSTART);}
01986         YY_BREAK
01987 case 76:
01988 /* rule 76 can match eol */
01989 YY_RULE_SETUP
01990 #line 223 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01991 {YY_PRINT; return(NUMBEREND);}
01992         YY_BREAK
01993 case 77:
01994 /* rule 77 can match eol */
01995 YY_RULE_SETUP
01996 #line 224 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
01997 {YY_PRINT; return(ESTART);}
01998         YY_BREAK
01999 case 78:
02000 /* rule 78 can match eol */
02001 YY_RULE_SETUP
02002 #line 225 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02003 {YY_PRINT; return(EEND);}
02004         YY_BREAK
02005 case 79:
02006 /* rule 79 can match eol */
02007 YY_RULE_SETUP
02008 #line 226 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02009 {YY_PRINT; return(PISTART);}
02010         YY_BREAK
02011 case 80:
02012 /* rule 80 can match eol */
02013 YY_RULE_SETUP
02014 #line 227 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02015 {YY_PRINT; return(PIEND);}
02016         YY_BREAK
02017 case 81:
02018 /* rule 81 can match eol */
02019 YY_RULE_SETUP
02020 #line 228 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02021 {YY_PRINT;  return(VARIABLESTART);}
02022         YY_BREAK
02023 case 82:
02024 /* rule 82 can match eol */
02025 YY_RULE_SETUP
02026 #line 229 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02027 {YY_PRINT; return(VARIABLEEND);}
02028         YY_BREAK
02029 /* patterns for <timeDomain> element */
02030 case 83:
02031 /* rule 83 can match eol */
02032 YY_RULE_SETUP
02033 #line 232 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02034 {YY_PRINT; return(TIMEDOMAINSTART);}
02035         YY_BREAK
02036 case 84:
02037 /* rule 84 can match eol */
02038 YY_RULE_SETUP
02039 #line 233 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02040 {YY_PRINT; return(TIMEDOMAINEND);}
02041         YY_BREAK
02042 case 85:
02043 /* rule 85 can match eol */
02044 YY_RULE_SETUP
02045 #line 234 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02046 {YY_PRINT; return(STAGESSTART);}
02047         YY_BREAK
02048 case 86:
02049 /* rule 86 can match eol */
02050 YY_RULE_SETUP
02051 #line 235 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02052 {YY_PRINT; return(STAGESEND);}
02053         YY_BREAK
02054 case 87:
02055 /* rule 87 can match eol */
02056 YY_RULE_SETUP
02057 #line 236 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02058 {YY_PRINT; return(STAGESTART);}
02059         YY_BREAK
02060 case 88:
02061 /* rule 88 can match eol */
02062 YY_RULE_SETUP
02063 #line 237 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02064 {YY_PRINT; return(STAGEEND);}
02065         YY_BREAK
02066 case 89:
02067 /* rule 89 can match eol */
02068 YY_RULE_SETUP
02069 #line 238 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02070 {YY_PRINT; return(VARIABLESSTART);}
02071         YY_BREAK
02072 case 90:
02073 /* rule 90 can match eol */
02074 YY_RULE_SETUP
02075 #line 239 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02076 {YY_PRINT; return(VARIABLESEND);}
02077         YY_BREAK
02078 case 91:
02079 /* rule 91 can match eol */
02080 YY_RULE_SETUP
02081 #line 240 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02082 {YY_PRINT; return(CONSTRAINTSSTART);}
02083         YY_BREAK
02084 case 92:
02085 /* rule 92 can match eol */
02086 YY_RULE_SETUP
02087 #line 241 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02088 {YY_PRINT; return(CONSTRAINTSEND);}
02089         YY_BREAK
02090 case 93:
02091 /* rule 93 can match eol */
02092 YY_RULE_SETUP
02093 #line 242 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02094 {YY_PRINT; return(OBJECTIVESSTART);}
02095         YY_BREAK
02096 case 94:
02097 /* rule 94 can match eol */
02098 YY_RULE_SETUP
02099 #line 243 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02100 {YY_PRINT; return(OBJECTIVESEND);}
02101         YY_BREAK
02102 case 95:
02103 /* rule 95 can match eol */
02104 YY_RULE_SETUP
02105 #line 244 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02106 {YY_PRINT; return(VARSTART);}
02107         YY_BREAK
02108 case 96:
02109 /* rule 96 can match eol */
02110 YY_RULE_SETUP
02111 #line 245 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02112 {YY_PRINT; return(VAREND);}
02113         YY_BREAK
02114 case 97:
02115 /* rule 97 can match eol */
02116 YY_RULE_SETUP
02117 #line 246 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02118 {YY_PRINT; return(CONSTART);}
02119         YY_BREAK
02120 case 98:
02121 /* rule 98 can match eol */
02122 YY_RULE_SETUP
02123 #line 247 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02124 {YY_PRINT; return(CONEND);}
02125         YY_BREAK
02126 case 99:
02127 /* rule 99 can match eol */
02128 YY_RULE_SETUP
02129 #line 248 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02130 {YY_PRINT; return(OBJSTART);}
02131         YY_BREAK
02132 case 100:
02133 /* rule 100 can match eol */
02134 YY_RULE_SETUP
02135 #line 249 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02136 {YY_PRINT; return(OBJEND);}
02137         YY_BREAK
02138 case 101:
02139 /* rule 101 can match eol */
02140 YY_RULE_SETUP
02141 #line 250 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02142 {YY_PRINT; return(INTERVALSTART);}
02143         YY_BREAK
02144 case 102:
02145 /* rule 102 can match eol */
02146 YY_RULE_SETUP
02147 #line 251 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02148 {YY_PRINT; return(INTERVALEND);}
02149         YY_BREAK
02150 case 103:
02151 YY_RULE_SETUP
02152 #line 254 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02153 BEGIN comment;
02154         YY_BREAK
02155 case 104:
02156 #line 256 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02157 case 105:
02158 /* rule 105 can match eol */
02159 YY_RULE_SETUP
02160 #line 256 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02161 ;
02162         YY_BREAK
02163 case 106:
02164 YY_RULE_SETUP
02165 #line 257 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02166 BEGIN 0;
02167         YY_BREAK
02168 case 107:
02169 YY_RULE_SETUP
02170 #line 259 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02171 BEGIN xmldeclaration;
02172         YY_BREAK
02173 case 108:
02174 #line 261 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02175 case 109:
02176 /* rule 109 can match eol */
02177 YY_RULE_SETUP
02178 #line 261 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02179 ;
02180         YY_BREAK
02181 case 110:
02182 YY_RULE_SETUP
02183 #line 262 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02184 BEGIN 0;
02185         YY_BREAK
02186 case 111:
02187 /* rule 111 can match eol */
02188 YY_RULE_SETUP
02189 #line 265 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02190 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/ yylval->sval = yytext; return(ATTRIBUTETEXT);}
02191         YY_BREAK
02192 case 112:
02193 /* rule 112 can match eol */
02194 YY_RULE_SETUP
02195 #line 266 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02196 {YY_PRINT;  BEGIN 0; /*yylval->sval = strdup(yytext);*/ yylval->sval = yytext; return(ATTRIBUTETEXT);}
02197         YY_BREAK
02198 case 113:
02199 YY_RULE_SETUP
02200 #line 268 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02201 {  
02202         std::string error;
02203         std::ostringstream outStr;
02204         outStr << "encountered a spurious character in the lexer" << endl;
02205         outStr << "The first character is: ";
02206         outStr <<  yytext;
02207         outStr << endl;
02208         outStr << "See line number: " << yylineno << endl;  
02209         error = outStr.str();
02210         throw ErrorClass( error);
02211 }
02212         YY_BREAK
02213 case 114:
02214 YY_RULE_SETUP
02215 #line 280 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
02216 ECHO;
02217         YY_BREAK
02218 #line 2219 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.cpp"
02219 case YY_STATE_EOF(INITIAL):
02220 case YY_STATE_EOF(doublequoteattributetext):
02221 case YY_STATE_EOF(singlequoteattributetext):
02222 case YY_STATE_EOF(startelement):
02223 case YY_STATE_EOF(osilattributetext):
02224 case YY_STATE_EOF(elementtext):
02225 case YY_STATE_EOF(comment):
02226 case YY_STATE_EOF(xmldeclaration):
02227         yyterminate();
02228 
02229         case YY_END_OF_BUFFER:
02230                 {
02231                 /* Amount of text matched not including the EOB char. */
02232                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
02233 
02234                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
02235                 *yy_cp = yyg->yy_hold_char;
02236                 YY_RESTORE_YY_MORE_OFFSET
02237 
02238                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
02239                         {
02240                         /* We're scanning a new file or input source.  It's
02241                          * possible that this happened because the user
02242                          * just pointed yyin at a new source and called
02243                          * osillex().  If so, then we have to assure
02244                          * consistency between YY_CURRENT_BUFFER and our
02245                          * globals.  Here is the right place to do so, because
02246                          * this is the first action (other than possibly a
02247                          * back-up) that will match for the new input source.
02248                          */
02249                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02250                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
02251                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
02252                         }
02253 
02254                 /* Note that here we test for yy_c_buf_p "<=" to the position
02255                  * of the first EOB in the buffer, since yy_c_buf_p will
02256                  * already have been incremented past the NUL character
02257                  * (since all states make transitions on EOB to the
02258                  * end-of-buffer state).  Contrast this with the test
02259                  * in input().
02260                  */
02261                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02262                         { /* This was really a NUL. */
02263                         yy_state_type yy_next_state;
02264 
02265                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
02266 
02267                         yy_current_state = yy_get_previous_state( yyscanner );
02268 
02269                         /* Okay, we're now positioned to make the NUL
02270                          * transition.  We couldn't have
02271                          * yy_get_previous_state() go ahead and do it
02272                          * for us because it doesn't know how to deal
02273                          * with the possibility of jamming (and we don't
02274                          * want to build jamming into it because then it
02275                          * will run more slowly).
02276                          */
02277 
02278                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
02279 
02280                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02281 
02282                         if ( yy_next_state )
02283                                 {
02284                                 /* Consume the NUL. */
02285                                 yy_cp = ++yyg->yy_c_buf_p;
02286                                 yy_current_state = yy_next_state;
02287                                 goto yy_match;
02288                                 }
02289 
02290                         else
02291                                 {
02292                                 yy_cp = yyg->yy_c_buf_p;
02293                                 goto yy_find_action;
02294                                 }
02295                         }
02296 
02297                 else switch ( yy_get_next_buffer( yyscanner ) )
02298                         {
02299                         case EOB_ACT_END_OF_FILE:
02300                                 {
02301                                 yyg->yy_did_buffer_switch_on_eof = 0;
02302 
02303                                 if ( osilwrap(yyscanner ) )
02304                                         {
02305                                         /* Note: because we've taken care in
02306                                          * yy_get_next_buffer() to have set up
02307                                          * yytext, we can now set up
02308                                          * yy_c_buf_p so that if some total
02309                                          * hoser (like flex itself) wants to
02310                                          * call the scanner after we return the
02311                                          * YY_NULL, it'll still work - another
02312                                          * YY_NULL will get returned.
02313                                          */
02314                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
02315 
02316                                         yy_act = YY_STATE_EOF(YY_START);
02317                                         goto do_action;
02318                                         }
02319 
02320                                 else
02321                                         {
02322                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02323                                                 YY_NEW_FILE;
02324                                         }
02325                                 break;
02326                                 }
02327 
02328                         case EOB_ACT_CONTINUE_SCAN:
02329                                 yyg->yy_c_buf_p =
02330                                         yyg->yytext_ptr + yy_amount_of_matched_text;
02331 
02332                                 yy_current_state = yy_get_previous_state( yyscanner );
02333 
02334                                 yy_cp = yyg->yy_c_buf_p;
02335                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02336                                 goto yy_match;
02337 
02338                         case EOB_ACT_LAST_MATCH:
02339                                 yyg->yy_c_buf_p =
02340                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
02341 
02342                                 yy_current_state = yy_get_previous_state( yyscanner );
02343 
02344                                 yy_cp = yyg->yy_c_buf_p;
02345                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
02346                                 goto yy_find_action;
02347                         }
02348                 break;
02349                 }
02350 
02351         default:
02352                 YY_FATAL_ERROR(
02353                         "fatal flex scanner internal error--no action found" );
02354         } /* end of action switch */
02355                 } /* end of scanning one token */
02356 } /* end of osillex */
02357 
02358 /* yy_get_next_buffer - try to read in a new buffer
02359  *
02360  * Returns a code representing an action:
02361  *      EOB_ACT_LAST_MATCH -
02362  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02363  *      EOB_ACT_END_OF_FILE - end of file
02364  */
02365 static int yy_get_next_buffer (yyscan_t yyscanner)
02366 {
02367     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02368         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02369         register char *source = yyg->yytext_ptr;
02370         register int number_to_move, i;
02371         int ret_val;
02372 
02373         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
02374                 YY_FATAL_ERROR(
02375                 "fatal flex scanner internal error--end of buffer missed" );
02376 
02377         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02378                 { /* Don't try to fill the buffer, so this is an EOF. */
02379                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
02380                         {
02381                         /* We matched a single character, the EOB, so
02382                          * treat this as a final EOF.
02383                          */
02384                         return EOB_ACT_END_OF_FILE;
02385                         }
02386 
02387                 else
02388                         {
02389                         /* We matched some text prior to the EOB, first
02390                          * process it.
02391                          */
02392                         return EOB_ACT_LAST_MATCH;
02393                         }
02394                 }
02395 
02396         /* Try to read more data. */
02397 
02398         /* First move last chars to start of buffer. */
02399         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
02400 
02401         for ( i = 0; i < number_to_move; ++i )
02402                 *(dest++) = *(source++);
02403 
02404         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02405                 /* don't do the read, it's not guaranteed to return an EOF,
02406                  * just force an EOF
02407                  */
02408                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
02409 
02410         else
02411                 {
02412                         int num_to_read =
02413                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02414 
02415                 while ( num_to_read <= 0 )
02416                         { /* Not enough room in the buffer - grow it. */
02417 
02418                         /* just a shorter name for the current buffer */
02419                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02420 
02421                         int yy_c_buf_p_offset =
02422                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
02423 
02424                         if ( b->yy_is_our_buffer )
02425                                 {
02426                                 int new_size = b->yy_buf_size * 2;
02427 
02428                                 if ( new_size <= 0 )
02429                                         b->yy_buf_size += b->yy_buf_size / 8;
02430                                 else
02431                                         b->yy_buf_size *= 2;
02432 
02433                                 b->yy_ch_buf = (char *)
02434                                         /* Include room in for 2 EOB chars. */
02435                                         osilrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
02436                                 }
02437                         else
02438                                 /* Can't grow it, we don't own it. */
02439                                 b->yy_ch_buf = 0;
02440 
02441                         if ( ! b->yy_ch_buf )
02442                                 YY_FATAL_ERROR(
02443                                 "fatal error - scanner input buffer overflow" );
02444 
02445                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02446 
02447                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02448                                                 number_to_move - 1;
02449 
02450                         }
02451 
02452                 if ( num_to_read > YY_READ_BUF_SIZE )
02453                         num_to_read = YY_READ_BUF_SIZE;
02454 
02455                 /* Read in more data. */
02456                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02457                         yyg->yy_n_chars, num_to_read );
02458 
02459                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02460                 }
02461 
02462         if ( yyg->yy_n_chars == 0 )
02463                 {
02464                 if ( number_to_move == YY_MORE_ADJ )
02465                         {
02466                         ret_val = EOB_ACT_END_OF_FILE;
02467                         osilrestart(yyin  ,yyscanner);
02468                         }
02469 
02470                 else
02471                         {
02472                         ret_val = EOB_ACT_LAST_MATCH;
02473                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02474                                 YY_BUFFER_EOF_PENDING;
02475                         }
02476                 }
02477 
02478         else
02479                 ret_val = EOB_ACT_CONTINUE_SCAN;
02480 
02481         yyg->yy_n_chars += number_to_move;
02482         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02483         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02484 
02485         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02486 
02487         return ret_val;
02488 }
02489 
02490 /* yy_get_previous_state - get the state just before the EOB char was reached */
02491 
02492     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
02493 {
02494         register yy_state_type yy_current_state;
02495         register char *yy_cp;
02496     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02497 
02498         yy_current_state = yyg->yy_start;
02499 
02500         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
02501                 {
02502                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02503                 if ( yy_accept[yy_current_state] )
02504                         {
02505                         yyg->yy_last_accepting_state = yy_current_state;
02506                         yyg->yy_last_accepting_cpos = yy_cp;
02507                         }
02508                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02509                         {
02510                         yy_current_state = (int) yy_def[yy_current_state];
02511                         if ( yy_current_state >= 762 )
02512                                 yy_c = yy_meta[(unsigned int) yy_c];
02513                         }
02514                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02515                 }
02516 
02517         return yy_current_state;
02518 }
02519 
02520 /* yy_try_NUL_trans - try to make a transition on the NUL character
02521  *
02522  * synopsis
02523  *      next_state = yy_try_NUL_trans( current_state );
02524  */
02525     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
02526 {
02527         register int yy_is_jam;
02528     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
02529         register char *yy_cp = yyg->yy_c_buf_p;
02530 
02531         register YY_CHAR yy_c = 1;
02532         if ( yy_accept[yy_current_state] )
02533                 {
02534                 yyg->yy_last_accepting_state = yy_current_state;
02535                 yyg->yy_last_accepting_cpos = yy_cp;
02536                 }
02537         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02538                 {
02539                 yy_current_state = (int) yy_def[yy_current_state];
02540                 if ( yy_current_state >= 762 )
02541                         yy_c = yy_meta[(unsigned int) yy_c];
02542                 }
02543         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02544         yy_is_jam = (yy_current_state == 761);
02545 
02546         return yy_is_jam ? 0 : yy_current_state;
02547 }
02548 
02549     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
02550 {
02551         register char *yy_cp;
02552     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02553 
02554     yy_cp = yyg->yy_c_buf_p;
02555 
02556         /* undo effects of setting up yytext */
02557         *yy_cp = yyg->yy_hold_char;
02558 
02559         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02560                 { /* need to shift things up to make room */
02561                 /* +2 for EOB chars. */
02562                 register int number_to_move = yyg->yy_n_chars + 2;
02563                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
02564                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
02565                 register char *source =
02566                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
02567 
02568                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02569                         *--dest = *--source;
02570 
02571                 yy_cp += (int) (dest - source);
02572                 yy_bp += (int) (dest - source);
02573                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
02574                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
02575 
02576                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
02577                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
02578                 }
02579 
02580         *--yy_cp = (char) c;
02581 
02582     if ( c == '\n' ){
02583         --yylineno;
02584     }
02585 
02586         yyg->yytext_ptr = yy_bp;
02587         yyg->yy_hold_char = *yy_cp;
02588         yyg->yy_c_buf_p = yy_cp;
02589 }
02590 
02591 #ifndef YY_NO_INPUT
02592 #ifdef __cplusplus
02593     static int yyinput (yyscan_t yyscanner)
02594 #else
02595     static int input  (yyscan_t yyscanner)
02596 #endif
02597 
02598 {
02599         int c;
02600     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02601 
02602         *yyg->yy_c_buf_p = yyg->yy_hold_char;
02603 
02604         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02605                 {
02606                 /* yy_c_buf_p now points to the character we want to return.
02607                  * If this occurs *before* the EOB characters, then it's a
02608                  * valid NUL; if not, then we've hit the end of the buffer.
02609                  */
02610                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
02611                         /* This was really a NUL. */
02612                         *yyg->yy_c_buf_p = '\0';
02613 
02614                 else
02615                         { /* need more input */
02616                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
02617                         ++yyg->yy_c_buf_p;
02618 
02619                         switch ( yy_get_next_buffer( yyscanner ) )
02620                                 {
02621                                 case EOB_ACT_LAST_MATCH:
02622                                         /* This happens because yy_g_n_b()
02623                                          * sees that we've accumulated a
02624                                          * token and flags that we need to
02625                                          * try matching the token before
02626                                          * proceeding.  But for input(),
02627                                          * there's no matching to consider.
02628                                          * So convert the EOB_ACT_LAST_MATCH
02629                                          * to EOB_ACT_END_OF_FILE.
02630                                          */
02631 
02632                                         /* Reset buffer status. */
02633                                         osilrestart(yyin ,yyscanner);
02634 
02635                                         /*FALLTHROUGH*/
02636 
02637                                 case EOB_ACT_END_OF_FILE:
02638                                         {
02639                                         if ( osilwrap(yyscanner ) )
02640                                                 return EOF;
02641 
02642                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
02643                                                 YY_NEW_FILE;
02644 #ifdef __cplusplus
02645                                         return yyinput(yyscanner);
02646 #else
02647                                         return input(yyscanner);
02648 #endif
02649                                         }
02650 
02651                                 case EOB_ACT_CONTINUE_SCAN:
02652                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
02653                                         break;
02654                                 }
02655                         }
02656                 }
02657 
02658         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
02659         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
02660         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
02661 
02662         if ( c == '\n' )
02663                    
02664     do{ yylineno++;
02665         yycolumn=0;
02666     }while(0)
02667 ;
02668 
02669         return c;
02670 }
02671 #endif  /* ifndef YY_NO_INPUT */
02672 
02678     void osilrestart  (FILE * input_file , yyscan_t yyscanner)
02679 {
02680     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02681 
02682         if ( ! YY_CURRENT_BUFFER ){
02683         osilensure_buffer_stack (yyscanner);
02684                 YY_CURRENT_BUFFER_LVALUE =
02685             osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
02686         }
02687 
02688         osil_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
02689         osil_load_buffer_state(yyscanner );
02690 }
02691 
02696     void osil_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
02697 {
02698     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02699 
02700         /* TODO. We should be able to replace this entire function body
02701          * with
02702          *              osilpop_buffer_state();
02703          *              osilpush_buffer_state(new_buffer);
02704      */
02705         osilensure_buffer_stack (yyscanner);
02706         if ( YY_CURRENT_BUFFER == new_buffer )
02707                 return;
02708 
02709         if ( YY_CURRENT_BUFFER )
02710                 {
02711                 /* Flush out information for old buffer. */
02712                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02713                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02714                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02715                 }
02716 
02717         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02718         osil_load_buffer_state(yyscanner );
02719 
02720         /* We don't actually know whether we did this switch during
02721          * EOF (osilwrap()) processing, but the only time this flag
02722          * is looked at is after osilwrap() is called, so it's safe
02723          * to go ahead and always set it.
02724          */
02725         yyg->yy_did_buffer_switch_on_eof = 1;
02726 }
02727 
02728 static void osil_load_buffer_state  (yyscan_t yyscanner)
02729 {
02730     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02731         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02732         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02733         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02734         yyg->yy_hold_char = *yyg->yy_c_buf_p;
02735 }
02736 
02743     YY_BUFFER_STATE osil_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
02744 {
02745         YY_BUFFER_STATE b;
02746     
02747         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02748         if ( ! b )
02749                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02750 
02751         b->yy_buf_size = size;
02752 
02753         /* yy_ch_buf has to be 2 characters longer than the size given because
02754          * we need to put in 2 end-of-buffer characters.
02755          */
02756         b->yy_ch_buf = (char *) osilalloc(b->yy_buf_size + 2 ,yyscanner );
02757         if ( ! b->yy_ch_buf )
02758                 YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
02759 
02760         b->yy_is_our_buffer = 1;
02761 
02762         osil_init_buffer(b,file ,yyscanner);
02763 
02764         return b;
02765 }
02766 
02771     void osil_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02772 {
02773     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02774 
02775         if ( ! b )
02776                 return;
02777 
02778         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02779                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02780 
02781         if ( b->yy_is_our_buffer )
02782                 osilfree((void *) b->yy_ch_buf ,yyscanner );
02783 
02784         osilfree((void *) b ,yyscanner );
02785 }
02786 
02787 #ifndef __cplusplus
02788 extern int isatty (int );
02789 #endif /* __cplusplus */
02790     
02791 /* Initializes or reinitializes a buffer.
02792  * This function is sometimes called more than once on the same buffer,
02793  * such as during a osilrestart() or at EOF.
02794  */
02795     static void osil_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
02796 
02797 {
02798         int oerrno = errno;
02799     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02800 
02801         osil_flush_buffer(b ,yyscanner);
02802 
02803         b->yy_input_file = file;
02804         b->yy_fill_buffer = 1;
02805 
02806     /* If b is the current buffer, then osil_init_buffer was _probably_
02807      * called from osilrestart() or through yy_get_next_buffer.
02808      * In that case, we don't want to reset the lineno or column.
02809      */
02810     if (b != YY_CURRENT_BUFFER){
02811         b->yy_bs_lineno = 1;
02812         b->yy_bs_column = 0;
02813     }
02814 
02815         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02816     
02817         errno = oerrno;
02818 }
02819 
02824     void osil_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
02825 {
02826     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02827         if ( ! b )
02828                 return;
02829 
02830         b->yy_n_chars = 0;
02831 
02832         /* We always need two end-of-buffer characters.  The first causes
02833          * a transition to the end-of-buffer state.  The second causes
02834          * a jam in that state.
02835          */
02836         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02837         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02838 
02839         b->yy_buf_pos = &b->yy_ch_buf[0];
02840 
02841         b->yy_at_bol = 1;
02842         b->yy_buffer_status = YY_BUFFER_NEW;
02843 
02844         if ( b == YY_CURRENT_BUFFER )
02845                 osil_load_buffer_state(yyscanner );
02846 }
02847 
02854 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02855 {
02856     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02857         if (new_buffer == NULL)
02858                 return;
02859 
02860         osilensure_buffer_stack(yyscanner);
02861 
02862         /* This block is copied from osil_switch_to_buffer. */
02863         if ( YY_CURRENT_BUFFER )
02864                 {
02865                 /* Flush out information for old buffer. */
02866                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02867                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02868                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02869                 }
02870 
02871         /* Only push if top exists. Otherwise, replace top. */
02872         if (YY_CURRENT_BUFFER)
02873                 yyg->yy_buffer_stack_top++;
02874         YY_CURRENT_BUFFER_LVALUE = new_buffer;
02875 
02876         /* copied from osil_switch_to_buffer. */
02877         osil_load_buffer_state(yyscanner );
02878         yyg->yy_did_buffer_switch_on_eof = 1;
02879 }
02880 
02885 void osilpop_buffer_state (yyscan_t yyscanner)
02886 {
02887     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02888         if (!YY_CURRENT_BUFFER)
02889                 return;
02890 
02891         osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02892         YY_CURRENT_BUFFER_LVALUE = NULL;
02893         if (yyg->yy_buffer_stack_top > 0)
02894                 --yyg->yy_buffer_stack_top;
02895 
02896         if (YY_CURRENT_BUFFER) {
02897                 osil_load_buffer_state(yyscanner );
02898                 yyg->yy_did_buffer_switch_on_eof = 1;
02899         }
02900 }
02901 
02902 /* Allocates the stack if it does not exist.
02903  *  Guarantees space for at least one push.
02904  */
02905 static void osilensure_buffer_stack (yyscan_t yyscanner)
02906 {
02907         int num_to_alloc;
02908     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02909 
02910         if (!yyg->yy_buffer_stack) {
02911 
02912                 /* First allocation is just for 2 elements, since we don't know if this
02913                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
02914                  * immediate realloc on the next call.
02915          */
02916                 num_to_alloc = 1;
02917                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilalloc
02918                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02919                                                                 , yyscanner);
02920                 
02921                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02922                                 
02923                 yyg->yy_buffer_stack_max = num_to_alloc;
02924                 yyg->yy_buffer_stack_top = 0;
02925                 return;
02926         }
02927 
02928         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02929 
02930                 /* Increase the buffer to prepare for a possible push. */
02931                 int grow_size = 8 /* arbitrary grow size */;
02932 
02933                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02934                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osilrealloc
02935                                                                 (yyg->yy_buffer_stack,
02936                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02937                                                                 , yyscanner);
02938 
02939                 /* zero only the new slots.*/
02940                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02941                 yyg->yy_buffer_stack_max = num_to_alloc;
02942         }
02943 }
02944 
02951 YY_BUFFER_STATE osil_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
02952 {
02953         YY_BUFFER_STATE b;
02954     
02955         if ( size < 2 ||
02956              base[size-2] != YY_END_OF_BUFFER_CHAR ||
02957              base[size-1] != YY_END_OF_BUFFER_CHAR )
02958                 /* They forgot to leave room for the EOB's. */
02959                 return 0;
02960 
02961         b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02962         if ( ! b )
02963                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_buffer()" );
02964 
02965         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
02966         b->yy_buf_pos = b->yy_ch_buf = base;
02967         b->yy_is_our_buffer = 0;
02968         b->yy_input_file = 0;
02969         b->yy_n_chars = b->yy_buf_size;
02970         b->yy_is_interactive = 0;
02971         b->yy_at_bol = 1;
02972         b->yy_fill_buffer = 0;
02973         b->yy_buffer_status = YY_BUFFER_NEW;
02974 
02975         osil_switch_to_buffer(b ,yyscanner );
02976 
02977         return b;
02978 }
02979 
02988 YY_BUFFER_STATE osil_scan_string (yyconst char * yystr , yyscan_t yyscanner)
02989 {
02990     
02991         return osil_scan_bytes(yystr,strlen(yystr) ,yyscanner);
02992 }
02993 
03001 YY_BUFFER_STATE osil_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
03002 {
03003         YY_BUFFER_STATE b;
03004         char *buf;
03005         yy_size_t n;
03006         int i;
03007     
03008         /* Get memory for full buffer, including space for trailing EOB's. */
03009         n = _yybytes_len + 2;
03010         buf = (char *) osilalloc(n ,yyscanner );
03011         if ( ! buf )
03012                 YY_FATAL_ERROR( "out of dynamic memory in osil_scan_bytes()" );
03013 
03014         for ( i = 0; i < _yybytes_len; ++i )
03015                 buf[i] = yybytes[i];
03016 
03017         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
03018 
03019         b = osil_scan_buffer(buf,n ,yyscanner);
03020         if ( ! b )
03021                 YY_FATAL_ERROR( "bad buffer in osil_scan_bytes()" );
03022 
03023         /* It's okay to grow etc. this buffer, and we should throw it
03024          * away when we're done.
03025          */
03026         b->yy_is_our_buffer = 1;
03027 
03028         return b;
03029 }
03030 
03031 #ifndef YY_EXIT_FAILURE
03032 #define YY_EXIT_FAILURE 2
03033 #endif
03034 
03035 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
03036 {
03037         (void) fprintf( stderr, "%s\n", msg );
03038         exit( YY_EXIT_FAILURE );
03039 }
03040 
03041 /* Redefine yyless() so it works in section 3 code. */
03042 
03043 #undef yyless
03044 #define yyless(n) \
03045         do \
03046                 { \
03047                 /* Undo effects of setting up yytext. */ \
03048         int yyless_macro_arg = (n); \
03049         YY_LESS_LINENO(yyless_macro_arg);\
03050                 yytext[yyleng] = yyg->yy_hold_char; \
03051                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
03052                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
03053                 *yyg->yy_c_buf_p = '\0'; \
03054                 yyleng = yyless_macro_arg; \
03055                 } \
03056         while ( 0 )
03057 
03058 /* Accessor  methods (get/set functions) to struct members. */
03059 
03063 YY_EXTRA_TYPE osilget_extra  (yyscan_t yyscanner)
03064 {
03065     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03066     return yyextra;
03067 }
03068 
03072 int osilget_lineno  (yyscan_t yyscanner)
03073 {
03074     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03075     
03076         if (! YY_CURRENT_BUFFER)
03077             return 0;
03078     
03079     return yylineno;
03080 }
03081 
03085 int osilget_column  (yyscan_t yyscanner)
03086 {
03087     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03088     
03089         if (! YY_CURRENT_BUFFER)
03090             return 0;
03091     
03092     return yycolumn;
03093 }
03094 
03098 FILE *osilget_in  (yyscan_t yyscanner)
03099 {
03100     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03101     return yyin;
03102 }
03103 
03107 FILE *osilget_out  (yyscan_t yyscanner)
03108 {
03109     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03110     return yyout;
03111 }
03112 
03116 int osilget_leng  (yyscan_t yyscanner)
03117 {
03118     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03119     return yyleng;
03120 }
03121 
03126 char *osilget_text  (yyscan_t yyscanner)
03127 {
03128     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03129     return yytext;
03130 }
03131 
03136 void osilset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
03137 {
03138     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03139     yyextra = user_defined ;
03140 }
03141 
03146 void osilset_lineno (int  line_number , yyscan_t yyscanner)
03147 {
03148     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03149 
03150         /* lineno is only valid if an input buffer exists. */
03151         if (! YY_CURRENT_BUFFER )
03152            yy_fatal_error( "osilset_lineno called with no buffer" , yyscanner); 
03153     
03154     yylineno = line_number;
03155 }
03156 
03161 void osilset_column (int  column_no , yyscan_t yyscanner)
03162 {
03163     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03164 
03165         /* column is only valid if an input buffer exists. */
03166         if (! YY_CURRENT_BUFFER )
03167            yy_fatal_error( "osilset_column called with no buffer" , yyscanner); 
03168     
03169     yycolumn = column_no;
03170 }
03171 
03178 void osilset_in (FILE *  in_str , yyscan_t yyscanner)
03179 {
03180     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03181     yyin = in_str ;
03182 }
03183 
03184 void osilset_out (FILE *  out_str , yyscan_t yyscanner)
03185 {
03186     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03187     yyout = out_str ;
03188 }
03189 
03190 int osilget_debug  (yyscan_t yyscanner)
03191 {
03192     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03193     return yy_flex_debug;
03194 }
03195 
03196 void osilset_debug (int  bdebug , yyscan_t yyscanner)
03197 {
03198     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03199     yy_flex_debug = bdebug ;
03200 }
03201 
03202 /* Accessor methods for yylval and yylloc */
03203 
03204 YYSTYPE * osilget_lval  (yyscan_t yyscanner)
03205 {
03206     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03207     return yylval;
03208 }
03209 
03210 void osilset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
03211 {
03212     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03213     yylval = yylval_param;
03214 }
03215 
03216 YYLTYPE *osilget_lloc  (yyscan_t yyscanner)
03217 {
03218     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03219     return yylloc;
03220 }
03221     
03222 void osilset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
03223 {
03224     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03225     yylloc = yylloc_param;
03226 }
03227     
03228 /* User-visible API */
03229 
03230 /* osillex_init is special because it creates the scanner itself, so it is
03231  * the ONLY reentrant function that doesn't take the scanner as the last argument.
03232  * That's why we explicitly handle the declaration, instead of using our macros.
03233  */
03234 
03235 int osillex_init(yyscan_t* ptr_yy_globals)
03236 
03237 {
03238     if (ptr_yy_globals == NULL){
03239         errno = EINVAL;
03240         return 1;
03241     }
03242 
03243     *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), NULL );
03244 
03245     if (*ptr_yy_globals == NULL){
03246         errno = ENOMEM;
03247         return 1;
03248     }
03249 
03250     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
03251     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
03252 
03253     return yy_init_globals ( *ptr_yy_globals );
03254 }
03255 
03256 static int yy_init_globals (yyscan_t yyscanner)
03257 {
03258     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03259     /* Initialization is the same as for the non-reentrant scanner.
03260      * This function is called from osillex_destroy(), so don't allocate here.
03261      */
03262 
03263     yyg->yy_buffer_stack = 0;
03264     yyg->yy_buffer_stack_top = 0;
03265     yyg->yy_buffer_stack_max = 0;
03266     yyg->yy_c_buf_p = (char *) 0;
03267     yyg->yy_init = 0;
03268     yyg->yy_start = 0;
03269 
03270     yyg->yy_start_stack_ptr = 0;
03271     yyg->yy_start_stack_depth = 0;
03272     yyg->yy_start_stack =  NULL;
03273 
03274 /* Defined in main.c */
03275 #ifdef YY_STDINIT
03276     yyin = stdin;
03277     yyout = stdout;
03278 #else
03279     yyin = (FILE *) 0;
03280     yyout = (FILE *) 0;
03281 #endif
03282 
03283     /* For future reference: Set errno on error, since we are called by
03284      * osillex_init()
03285      */
03286     return 0;
03287 }
03288 
03289 /* osillex_destroy is for both reentrant and non-reentrant scanners. */
03290 int osillex_destroy  (yyscan_t yyscanner)
03291 {
03292     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
03293 
03294     /* Pop the buffer stack, destroying each element. */
03295         while(YY_CURRENT_BUFFER){
03296                 osil_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
03297                 YY_CURRENT_BUFFER_LVALUE = NULL;
03298                 osilpop_buffer_state(yyscanner);
03299         }
03300 
03301         /* Destroy the stack itself. */
03302         osilfree(yyg->yy_buffer_stack ,yyscanner);
03303         yyg->yy_buffer_stack = NULL;
03304 
03305     /* Destroy the start condition stack. */
03306         osilfree(yyg->yy_start_stack ,yyscanner );
03307         yyg->yy_start_stack = NULL;
03308 
03309     /* Reset the globals. This is important in a non-reentrant scanner so the next time
03310      * osillex() is called, initialization will occur. */
03311     yy_init_globals( yyscanner);
03312 
03313     /* Destroy the main struct (reentrant only). */
03314     osilfree ( yyscanner , yyscanner );
03315     yyscanner = NULL;
03316     return 0;
03317 }
03318 
03319 /*
03320  * Internal utility routines.
03321  */
03322 
03323 #ifndef yytext_ptr
03324 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
03325 {
03326         register int i;
03327         for ( i = 0; i < n; ++i )
03328                 s1[i] = s2[i];
03329 }
03330 #endif
03331 
03332 #ifdef YY_NEED_STRLEN
03333 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
03334 {
03335         register int n;
03336         for ( n = 0; s[n]; ++n )
03337                 ;
03338 
03339         return n;
03340 }
03341 #endif
03342 
03343 void *osilalloc (yy_size_t  size , yyscan_t yyscanner)
03344 {
03345         return (void *) malloc( size );
03346 }
03347 
03348 void *osilrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
03349 {
03350         /* The cast to (char *) in the following accommodates both
03351          * implementations that use char* generic pointers, and those
03352          * that use void* generic pointers.  It works with the latter
03353          * because both ANSI C and C++ allow castless assignment from
03354          * any pointer type to void*, and deal with argument conversions
03355          * as though doing an assignment.
03356          */
03357         return (void *) realloc( (char *) ptr, size );
03358 }
03359 
03360 void osilfree (void * ptr , yyscan_t yyscanner)
03361 {
03362         free( (char *) ptr );   /* see osilrealloc() for (char *) cast */
03363 }
03364 
03365 #define YYTABLES_NAME "yytables"
03366 
03367 #line 280 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosil.l"
03368 
03369 
03370 
03371 

Generated on Sat Mar 29 22:38:02 2008 by  doxygen 1.5.3