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

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

Generated on Thu Mar 31 03:13:09 2011 by  doxygen 1.4.7