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

Go to the documentation of this file.
00001 #line 2 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.cpp"
00002 
00003 #line 4 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.cpp"
00004 
00005 #define  YY_INT_ALIGNED short int
00006 
00007 /* A lexical scanner generated by flex */
00008 
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 33
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016 
00017 /* First, we deal with  platform-specific or compiler-specific issues. */
00018 
00019 /* begin standard C headers. */
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024 
00025 /* end standard C headers. */
00026 
00027 /* flex integer type definitions */
00028 
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031 
00032 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00033 
00034 #if __STDC_VERSION__ >= 199901L
00035 
00036 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00037  * if you want the limit (max/min) macros for int types. 
00038  */
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042 
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t; 
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057 #endif /* ! C99 */
00058 
00059 /* Limits of integral types. */
00060 #ifndef INT8_MIN
00061 #define INT8_MIN               (-128)
00062 #endif
00063 #ifndef INT16_MIN
00064 #define INT16_MIN              (-32767-1)
00065 #endif
00066 #ifndef INT32_MIN
00067 #define INT32_MIN              (-2147483647-1)
00068 #endif
00069 #ifndef INT8_MAX
00070 #define INT8_MAX               (127)
00071 #endif
00072 #ifndef INT16_MAX
00073 #define INT16_MAX              (32767)
00074 #endif
00075 #ifndef INT32_MAX
00076 #define INT32_MAX              (2147483647)
00077 #endif
00078 #ifndef UINT8_MAX
00079 #define UINT8_MAX              (255U)
00080 #endif
00081 #ifndef UINT16_MAX
00082 #define UINT16_MAX             (65535U)
00083 #endif
00084 #ifndef UINT32_MAX
00085 #define UINT32_MAX             (4294967295U)
00086 #endif
00087 
00088 #endif /* ! FLEXINT_H */
00089 
00090 #ifdef __cplusplus
00091 
00092 /* The "const" storage-class-modifier is valid. */
00093 #define YY_USE_CONST
00094 
00095 #else   /* ! __cplusplus */
00096 
00097 #if __STDC__
00098 
00099 #define YY_USE_CONST
00100 
00101 #endif  /* __STDC__ */
00102 #endif  /* ! __cplusplus */
00103 
00104 #ifdef YY_USE_CONST
00105 #define yyconst const
00106 #else
00107 #define yyconst
00108 #endif
00109 
00110 /* Returned upon end-of-file. */
00111 #define YY_NULL 0
00112 
00113 /* Promotes a possibly negative, possibly signed char to an unsigned
00114  * integer for use as an array index.  If the signed char is negative,
00115  * we want to instead treat it as an 8-bit unsigned char, hence the
00116  * double cast.
00117  */
00118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00119 
00120 /* An opaque pointer. */
00121 #ifndef YY_TYPEDEF_YY_SCANNER_T
00122 #define YY_TYPEDEF_YY_SCANNER_T
00123 typedef void* yyscan_t;
00124 #endif
00125 
00126 /* For convenience, these vars (plus the bison vars far below)
00127    are macros in the reentrant scanner. */
00128 #define yyin yyg->yyin_r
00129 #define yyout yyg->yyout_r
00130 #define yyextra yyg->yyextra_r
00131 #define yyleng yyg->yyleng_r
00132 #define yytext yyg->yytext_r
00133 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00134 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00135 #define yy_flex_debug yyg->yy_flex_debug_r
00136 
00137 int ossslex_init (yyscan_t* scanner);
00138 
00139 /* Enter a start condition.  This macro really ought to take a parameter,
00140  * but we do it the disgusting crufty way forced on us by the ()-less
00141  * definition of BEGIN.
00142  */
00143 #define BEGIN yyg->yy_start = 1 + 2 *
00144 
00145 /* Translate the current start state into a value that can be later handed
00146  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00147  * compatibility.
00148  */
00149 #define YY_START ((yyg->yy_start - 1) / 2)
00150 #define YYSTATE YY_START
00151 
00152 /* Action number for EOF rule of a given start state. */
00153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00154 
00155 /* Special action meaning "start processing a new file". */
00156 #define YY_NEW_FILE osssrestart(yyin ,yyscanner )
00157 
00158 #define YY_END_OF_BUFFER_CHAR 0
00159 
00160 /* Size of default input buffer. */
00161 #ifndef YY_BUF_SIZE
00162 #define YY_BUF_SIZE 16384
00163 #endif
00164 
00165 /* The state buf must be large enough to hold one state per character in the main buffer.
00166  */
00167 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00168 
00169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00170 #define YY_TYPEDEF_YY_BUFFER_STATE
00171 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00172 #endif
00173 
00174 #define EOB_ACT_CONTINUE_SCAN 0
00175 #define EOB_ACT_END_OF_FILE 1
00176 #define EOB_ACT_LAST_MATCH 2
00177 
00178     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
00179      *       access to the local variable yy_act. Since yyless() is a macro, it would break
00180      *       existing scanners that call yyless() from OUTSIDE ossslex. 
00181      *       One obvious solution it to make yy_act a global. I tried that, and saw
00182      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
00183      *       normally declared as a register variable-- so it is not worth it.
00184      */
00185     #define  YY_LESS_LINENO(n) \
00186             do { \
00187                 int yyl;\
00188                 for ( yyl = n; yyl < yyleng; ++yyl )\
00189                     if ( yytext[yyl] == '\n' )\
00190                         --yylineno;\
00191             }while(0)
00192     
00193 /* Return all but the first "n" matched characters back to the input stream. */
00194 #define yyless(n) \
00195         do \
00196                 { \
00197                 /* Undo effects of setting up yytext. */ \
00198         int yyless_macro_arg = (n); \
00199         YY_LESS_LINENO(yyless_macro_arg);\
00200                 *yy_cp = yyg->yy_hold_char; \
00201                 YY_RESTORE_YY_MORE_OFFSET \
00202                 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00203                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00204                 } \
00205         while ( 0 )
00206 
00207 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00208 
00209 /* The following is because we cannot portably get our hands on size_t
00210  * (without autoconf's help, which isn't available because we want
00211  * flex-generated scanners to compile on their own).
00212  */
00213 
00214 #ifndef YY_TYPEDEF_YY_SIZE_T
00215 #define YY_TYPEDEF_YY_SIZE_T
00216 typedef unsigned int yy_size_t;
00217 #endif
00218 
00219 #ifndef YY_STRUCT_YY_BUFFER_STATE
00220 #define YY_STRUCT_YY_BUFFER_STATE
00221 struct yy_buffer_state
00222         {
00223         FILE *yy_input_file;
00224 
00225         char *yy_ch_buf;                /* input buffer */
00226         char *yy_buf_pos;               /* current position in input buffer */
00227 
00228         /* Size of input buffer in bytes, not including room for EOB
00229          * characters.
00230          */
00231         yy_size_t yy_buf_size;
00232 
00233         /* Number of characters read into yy_ch_buf, not including EOB
00234          * characters.
00235          */
00236         int yy_n_chars;
00237 
00238         /* Whether we "own" the buffer - i.e., we know we created it,
00239          * and can realloc() it to grow it, and should free() it to
00240          * delete it.
00241          */
00242         int yy_is_our_buffer;
00243 
00244         /* Whether this is an "interactive" input source; if so, and
00245          * if we're using stdio for input, then we want to use getc()
00246          * instead of fread(), to make sure we stop fetching input after
00247          * each newline.
00248          */
00249         int yy_is_interactive;
00250 
00251         /* Whether we're considered to be at the beginning of a line.
00252          * If so, '^' rules will be active on the next match, otherwise
00253          * not.
00254          */
00255         int yy_at_bol;
00256 
00257     int yy_bs_lineno; 
00258     int yy_bs_column; 
00260         /* Whether to try to fill the input buffer when we reach the
00261          * end of it.
00262          */
00263         int yy_fill_buffer;
00264 
00265         int yy_buffer_status;
00266 
00267 #define YY_BUFFER_NEW 0
00268 #define YY_BUFFER_NORMAL 1
00269         /* When an EOF's been seen but there's still some text to process
00270          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00271          * shouldn't try reading from the input source any more.  We might
00272          * still have a bunch of tokens to match, though, because of
00273          * possible backing-up.
00274          *
00275          * When we actually see the EOF, we change the status to "new"
00276          * (via osssrestart()), so that the user can continue scanning by
00277          * just pointing yyin at a new input file.
00278          */
00279 #define YY_BUFFER_EOF_PENDING 2
00280 
00281         };
00282 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00283 
00284 /* We provide macros for accessing buffer states in case in the
00285  * future we want to put the buffer states in a more general
00286  * "scanner state".
00287  *
00288  * Returns the top of the stack, or NULL.
00289  */
00290 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00291                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00292                           : NULL)
00293 
00294 /* Same as previous macro, but useful when we know that the buffer stack is not
00295  * NULL or when we need an lvalue. For internal use only.
00296  */
00297 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00298 
00299 void osssrestart (FILE *input_file ,yyscan_t yyscanner );
00300 void osss_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00301 YY_BUFFER_STATE osss_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00302 void osss_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00303 void osss_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00304 void ossspush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00305 void ossspop_buffer_state (yyscan_t yyscanner );
00306 
00307 static void osssensure_buffer_stack (yyscan_t yyscanner );
00308 static void osss_load_buffer_state (yyscan_t yyscanner );
00309 static void osss_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00310 
00311 #define YY_FLUSH_BUFFER osss_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00312 
00313 YY_BUFFER_STATE osss_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00314 YY_BUFFER_STATE osss_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00315 YY_BUFFER_STATE osss_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00316 
00317 void *osssalloc (yy_size_t ,yyscan_t yyscanner );
00318 void *osssrealloc (void *,yy_size_t ,yyscan_t yyscanner );
00319 void osssfree (void * ,yyscan_t yyscanner );
00320 
00321 #define yy_new_buffer osss_create_buffer
00322 
00323 #define yy_set_interactive(is_interactive) \
00324         { \
00325         if ( ! YY_CURRENT_BUFFER ){ \
00326         osssensure_buffer_stack (yyscanner); \
00327                 YY_CURRENT_BUFFER_LVALUE =    \
00328             osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00329         } \
00330         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00331         }
00332 
00333 #define yy_set_bol(at_bol) \
00334         { \
00335         if ( ! YY_CURRENT_BUFFER ){\
00336         osssensure_buffer_stack (yyscanner); \
00337                 YY_CURRENT_BUFFER_LVALUE =    \
00338             osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00339         } \
00340         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00341         }
00342 
00343 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00344 
00345 /* Begin user sect3 */
00346 
00347 #define ossswrap(n) 1
00348 #define YY_SKIP_YYWRAP
00349 
00350 typedef unsigned char YY_CHAR;
00351 
00352 typedef int yy_state_type;
00353 
00354 #define yytext_ptr yytext_r
00355 
00356 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00357 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
00358 static int yy_get_next_buffer (yyscan_t yyscanner );
00359 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00360 
00361 /* Done after the current pattern has been matched and before the
00362  * corresponding action - sets up yytext.
00363  */
00364 #define YY_DO_BEFORE_ACTION \
00365         yyg->yytext_ptr = yy_bp; \
00366         yyleng = (size_t) (yy_cp - yy_bp); \
00367         yyg->yy_hold_char = *yy_cp; \
00368         *yy_cp = '\0'; \
00369         yyg->yy_c_buf_p = yy_cp;
00370 
00371 #define YY_NUM_RULES 20
00372 #define YY_END_OF_BUFFER 21
00373 /* This struct is not used in this scanner,
00374    but its presence is necessary. */
00375 struct yy_trans_info
00376         {
00377         flex_int32_t yy_verify;
00378         flex_int32_t yy_nxt;
00379         };
00380 static yyconst flex_int16_t yy_accept[184] =
00381     {   0,
00382         1,    1,   21,   19,    1,    1,   19,    1,    0,    0,
00383         0,    4,    0,    0,    0,    0,    0,    6,    0,    0,
00384         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00385         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00386         0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
00387         0,    0,    0,    0,    0,    3,    0,    0,    0,    0,
00388         0,   15,    0,   16,    0,    0,    0,    0,    0,    0,
00389         0,    0,    0,    0,    0,    0,   15,    0,    7,    0,
00390        10,    0,    0,    0,    8,    0,    0,    0,    0,    0,
00391         0,    0,    7,    0,   10,    0,    0,    0,    8,    0,
00392 
00393         0,    5,    0,    0,    2,    0,    0,    0,    0,    0,
00394         0,   17,    0,   18,    0,    2,    0,    9,    0,    0,
00395         0,    0,    0,   17,    0,   18,    0,    9,    0,    0,
00396         0,    0,    0,   11,    0,    0,    0,    0,   11,    0,
00397        12,    0,    0,    0,   12,    0,    0,    0,    0,    0,
00398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00399         0,    0,   14,    0,    0,    0,    0,    0,    0,    0,
00400        14,    0,   13,    0,    0,    0,    0,    0,    0,    0,
00401         0,    0,    0
00402     } ;
00403 
00404 static yyconst flex_int32_t yy_ec[256] =
00405     {   0,
00406         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00407         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
00408         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00409         1,    2,    1,    4,    1,    5,    1,    1,    1,    1,
00410         1,    1,    1,    1,    6,    5,    5,    5,    5,    5,
00411         5,    5,    5,    5,    5,    5,    5,    5,    1,    1,
00412         1,    1,    1,    1,    5,    5,    5,    7,    5,    5,
00413         5,    5,    8,    9,    5,   10,   11,    5,   12,    5,
00414         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
00415         1,    1,    1,    1,    5,    1,   13,   14,   15,   16,
00416 
00417        17,   18,   19,   20,   21,    5,   22,   23,   24,   25,
00418        26,   27,    5,   28,   29,   30,   31,   32,   33,    5,
00419         5,    5,    1,    1,    1,    5,    1,    1,    1,    1,
00420         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00421         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00422         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00423         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00424         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00425         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00426         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00427 
00428         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00429         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00430         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00431         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00432         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00433         1,    1,    1,    1,    1
00434     } ;
00435 
00436 static yyconst flex_int32_t yy_meta[34] =
00437     {   0,
00438         1,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00439         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00440         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00441         2,    2,    2
00442     } ;
00443 
00444 static yyconst flex_int16_t yy_base[209] =
00445     {   0,
00446         0,    2,  318,  319,    7,    9,    7,   12,    3,  289,
00447       290,  319,  290,  287,  290,  283,    0,  319,  294,  293,
00448       283,  283,  278,  277,   16,   16,  277,  281,  280,  274,
00449       268,  282,  289,   22,   43,  275,  274,  273,  272,  262,
00450       261,  265,  262,  261,  268,  267,   46,   26,   49,   38,
00451        52,    8,   54,  266,  269,  319,  264,  267,  264,  253,
00452        55,   58,   60,  319,   63,   66,  256,  249,   69,  264,
00453       250,  251,  248,   72,  245,   73,  319,   75,   78,   80,
00454        83,  247,  243,   85,   88,  255,   91,  246,   93,   95,
00455        98,   99,  319,  101,  319,  239,  242,  103,  319,   98,
00456 
00457       108,  319,  111,  113,  116,  119,  238,  236,  240,  248,
00458       121,  124,  126,  129,  131,  319,  133,  136,  139,  234,
00459       248,  232,  140,  319,  142,  319,  144,  319,  147,  150,
00460       248,  240,  151,  154,  157,  229,  232,  159,  319,  161,
00461       164,  236,  240,  166,  319,  229,  169,  229,  171,  173,
00462       236,   13,  235,  160,  176,  221,  227,  223,  218,  222,
00463       223,  178,  181,  236,  221,  228,  214,  225,  208,  184,
00464       319,  213,  319,  216,  216,  219,  221,  217,  225,  200,
00465       224,  213,  319,  200,  227,  226,  202,  204,  225,  196,
00466       195,  206,  208,  210,  194,  193,  192,  212,  190,  214,
00467 
00468       216,  218,  189,  220,  187,  222,    5,  224
00469     } ;
00470 
00471 static yyconst flex_int16_t yy_def[209] =
00472     {   0,
00473       184,  184,  183,  183,  183,  183,  183,  183,  183,  183,
00474       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00475       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00476       183,  183,  183,  183,  185,  183,  183,  183,  183,  183,
00477       183,  183,  183,  183,  183,  183,  186,  187,  185,  183,
00478       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00479       188,  186,  187,  183,  189,  190,  183,  183,  191,  183,
00480       183,  183,  183,  183,  183,  188,  183,  192,  189,  193,
00481       190,  183,  183,  194,  191,  183,  183,  183,  183,  195,
00482       183,  192,  183,  193,  183,  183,  183,  194,  183,  183,
00483 
00484       196,  183,  197,  198,  195,  199,  183,  183,  183,  183,
00485       200,  196,  201,  197,  198,  183,  202,  199,  183,  183,
00486       183,  183,  200,  183,  201,  183,  202,  183,  203,  183,
00487       183,  183,  204,  203,  205,  183,  183,  204,  183,  206,
00488       205,  183,  183,  206,  183,  183,  183,  183,  183,  183,
00489       183,  183,  183,  183,  207,  183,  183,  183,  183,  183,
00490       183,  208,  207,  183,  183,  183,  183,  183,  183,  208,
00491       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00492       183,  183,    0,  183,  183,  183,  183,  183,  183,  183,
00493       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00494 
00495       183,  183,  183,  183,  183,  183,  183,  183
00496     } ;
00497 
00498 static yyconst flex_int16_t yy_nxt[353] =
00499     {   0,
00500       183,    5,    6,    5,    6,    7,  163,    7,    8,    8,
00501         8,    8,    9,    8,    8,   67,   27,   35,   35,   68,
00502        10,   11,   19,   47,   47,   28,   12,   13,   64,   64,
00503        14,   15,   16,  157,   20,   17,   36,  158,   18,   65,
00504        65,   37,   38,   39,   35,   35,   48,   47,   47,   61,
00505       183,  183,  183,   66,   66,   69,   69,   77,   77,  183,
00506       183,  183,   64,   64,   65,   65,   78,   66,   66,   80,
00507        69,   69,   84,   90,   90,   77,   77,   93,   93,  183,
00508       183,  183,   95,   95,  183,  183,  183,   99,   99,  183,
00509       183,  183,  101,  101,  103,  103,   90,   90,  104,  106,
00510 
00511       106,   93,   93,   95,   95,   99,   99,  109,  110,  101,
00512       101,  111,  103,  103,  113,  116,  116,  183,  183,  183,
00513       106,  106,  117,  124,  124,  183,  183,  183,  126,  126,
00514       183,  183,  183,  116,  116,  128,  128,  183,  183,  183,
00515       129,  129,  124,  124,  126,  126,  128,  128,  129,  129,
00516       133,  135,  135,  139,  139,  183,  183,  183,  135,  135,
00517       140,  139,  139,  145,  145,  183,  183,  183,  145,  145,
00518       149,  149,  149,  149,  155,  155,  160,  155,  155,  162,
00519       171,  171,  183,  183,  183,  161,  171,  171,  141,  151,
00520       134,  118,  152,  114,  112,  105,   85,   81,  153,  154,
00521 
00522         4,    4,   63,   63,   76,   76,   92,   92,   94,   94,
00523        98,   98,  115,  115,  123,  123,  125,  125,  127,  127,
00524       138,  138,  144,  144,  170,  170,   79,   62,   49,  173,
00525       173,  182,  181,  180,  179,  173,  178,  173,  177,  176,
00526       173,  175,  174,  173,  172,  169,  168,  167,  166,  165,
00527       164,  159,  156,  150,  148,  147,  146,  143,  142,  137,
00528       136,  132,  131,  130,  122,  121,  120,  119,  108,  107,
00529       102,  100,   97,   96,   91,   89,   88,   87,   86,   83,
00530        82,   75,   74,   73,   72,   71,   70,   60,   59,   58,
00531        57,   56,   55,   54,   53,   52,   51,   50,   46,   45,
00532 
00533        44,   43,   42,   41,   40,   34,   33,   32,   31,   30,
00534        29,   26,   25,   24,   23,   22,   21,  183,    3,  183,
00535       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00536       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00537       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00538       183,  183
00539     } ;
00540 
00541 static yyconst flex_int16_t yy_chk[353] =
00542     {   0,
00543         0,    1,    1,    2,    2,    1,  207,    2,    5,    5,
00544         6,    6,    7,    8,    8,   52,   17,   25,   25,   52,
00545         7,    7,    9,   34,   34,   17,    7,    7,   48,   48,
00546         7,    7,    7,  152,    9,    7,   26,  152,    7,   50,
00547        50,   26,   26,   26,   35,   35,   35,   47,   47,   47,
00548        49,   49,   49,   51,   51,   53,   53,   61,   61,   62,
00549        62,   62,   63,   63,   65,   65,   65,   66,   66,   66,
00550        69,   69,   69,   74,   74,   76,   76,   78,   78,   79,
00551        79,   79,   80,   80,   81,   81,   81,   84,   84,   85,
00552        85,   85,   87,   87,   89,   89,   90,   90,   90,   91,
00553 
00554        91,   92,   92,   94,   94,   98,   98,  100,  100,  101,
00555       101,  101,  103,  103,  103,  104,  104,  105,  105,  105,
00556       106,  106,  106,  111,  111,  112,  112,  112,  113,  113,
00557       114,  114,  114,  115,  115,  117,  117,  118,  118,  118,
00558       119,  119,  123,  123,  125,  125,  127,  127,  129,  129,
00559       129,  130,  130,  133,  133,  134,  134,  134,  135,  135,
00560       135,  138,  138,  140,  140,  141,  141,  141,  144,  144,
00561       147,  147,  149,  149,  150,  150,  154,  155,  155,  155,
00562       162,  162,  163,  163,  163,  154,  170,  170,  205,  149,
00563       203,  199,  149,  197,  196,  195,  191,  190,  149,  149,
00564 
00565       184,  184,  187,  187,  188,  188,  192,  192,  193,  193,
00566       194,  194,  198,  198,  200,  200,  201,  201,  202,  202,
00567       204,  204,  206,  206,  208,  208,  189,  186,  185,  182,
00568       181,  180,  179,  178,  177,  176,  175,  174,  172,  169,
00569       168,  167,  166,  165,  164,  161,  160,  159,  158,  157,
00570       156,  153,  151,  148,  146,  143,  142,  137,  136,  132,
00571       131,  122,  121,  120,  110,  109,  108,  107,   97,   96,
00572        88,   86,   83,   82,   75,   73,   72,   71,   70,   68,
00573        67,   60,   59,   58,   57,   55,   54,   46,   45,   44,
00574        43,   42,   41,   40,   39,   38,   37,   36,   33,   32,
00575 
00576        31,   30,   29,   28,   27,   24,   23,   22,   21,   20,
00577        19,   16,   15,   14,   13,   11,   10,    3,  183,  183,
00578       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00579       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00580       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
00581       183,  183
00582     } ;
00583 
00584 /* Table of booleans, true if rule could match eol. */
00585 static yyconst flex_int32_t yy_rule_can_match_eol[21] =
00586     {   0,
00587 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
00588     0,     };
00589 
00590 /* The intent behind this definition is that it'll catch
00591  * any uses of REJECT which flex missed.
00592  */
00593 #define REJECT reject_used_but_not_detected
00594 #define yymore() yymore_used_but_not_detected
00595 #define YY_MORE_ADJ 0
00596 #define YY_RESTORE_YY_MORE_OFFSET
00597 #line 1 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
00598 
00612 #line 17 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
00613 
00614 
00615 #include <iostream>
00616 #include "OSConfig.h"
00617 
00618 
00619 #ifdef HAVE_CSTRING
00620 # include <cstring>
00621 #else
00622 # ifdef HAVE_STRING_H
00623 #  include <string.h>
00624 # else
00625 #  error "don't have header file for string"
00626 # endif
00627 #endif
00628 
00629 #ifdef HAVE_CSTDIO
00630 # include <cstdio>
00631 #else
00632 # ifdef HAVE_STDIO_H
00633 #  include <stdio.h>
00634 # else
00635 #  error "don't have header file for stdio"
00636 # endif
00637 #endif
00638 #include "OSErrorClass.h"
00639 #include <sstream>   
00640 #include "OSOptionsStruc.h" 
00641 
00642 
00643 using std::cout;
00644 using std::endl;
00645 using std::ostringstream;
00646 
00647   
00648 #define PARSERDEBUG
00649 #ifdef PARSERDEBUG
00650         #define YY_PRINT  printf("%s", yytext);
00651 #else     
00652         #define YY_PRINT  ;
00653 #endif
00654 
00655 
00656 #ifdef WIN_
00657   #define YY_NO_UNISTD_H
00658   #include <io.h>
00659   #include <process.h>
00660   #ifdef USE_OLD_UNISTD
00661      #include<sys/unistd.h>  
00662   #endif
00663 #endif
00664 
00665 
00666 #define YY_EXTRA_TYPE struct osOptionsStruc*
00667 
00668 void setyyextra( osOptionsStruc *osoptions, void* scanner);
00669 
00670  /*
00671  * INPUTS:
00672  * -osil xxx.osil (file name on local machine of optimization instance, 
00673  *       this is "" by default, however if this remains "" a problem
00674  *               instance must be specified in the osol file)
00675  * -osol xxx.osol (file name on local machine of solver options, 
00676  *       default default value is "")
00677  * -osrl xxx.osrl (file name on local machine where the optimization 
00678  *       result is put, default is "")
00679  * -serviceLocation location URL (the URL  of the server that is called 
00680  *       remotely if the problem not solved locally, default is "")
00681  * -serviceMethod  (send, solve, kill, knock, getJobID, retrieve, 
00682  *       default value is solve)
00683  * -osplInput xxx.ospl  (Not used for now -- ignore)
00684  * -osplOutput xxx.ospl (Not used for now -- ignore)
00685  * -mps xxxx.mps (converts mps format to osil and has same effect as -osil)
00686  * -nl xxxx.nl (converts nl format to osil and has same effect as -osil)
00687  * -solver solverName (the name of the solver to be invoked)
00688  * -browser path location to browser e.g. 
00689  *       /Applications/Firefox.app/Contents/MacOS/firefox (default is "")
00690  * -config pathToConfigFile is the path to a configure file with the problem 
00691  *           parameters
00692  * -insList xxx.dat (used only for LINDO, file location on local 
00693  *       machine of LINDO instruction list)
00694 */
00695 
00696 
00697 #line 698 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.cpp"
00698 
00699 #define INITIAL 0
00700 
00701 #ifndef YY_NO_UNISTD_H
00702 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00703  * down here because we want the user's section 1 to have been scanned first.
00704  * The user has a chance to override it with an option.
00705  */
00706 #include <unistd.h>
00707 #endif
00708 
00709 #ifndef YY_EXTRA_TYPE
00710 #define YY_EXTRA_TYPE void *
00711 #endif
00712 
00713 /* Holds the entire state of the reentrant scanner. */
00714 struct yyguts_t
00715     {
00716 
00717     /* User-defined. Not touched by flex. */
00718     YY_EXTRA_TYPE yyextra_r;
00719 
00720     /* The rest are the same as the globals declared in the non-reentrant scanner. */
00721     FILE *yyin_r, *yyout_r;
00722     size_t yy_buffer_stack_top; 
00723     size_t yy_buffer_stack_max; 
00724     YY_BUFFER_STATE * yy_buffer_stack; 
00725     char yy_hold_char;
00726     int yy_n_chars;
00727     int yyleng_r;
00728     char *yy_c_buf_p;
00729     int yy_init;
00730     int yy_start;
00731     int yy_did_buffer_switch_on_eof;
00732     int yy_start_stack_ptr;
00733     int yy_start_stack_depth;
00734     int *yy_start_stack;
00735     yy_state_type yy_last_accepting_state;
00736     char* yy_last_accepting_cpos;
00737 
00738     int yylineno_r;
00739     int yy_flex_debug_r;
00740 
00741     char *yytext_r;
00742     int yy_more_flag;
00743     int yy_more_len;
00744 
00745     }; /* end struct yyguts_t */
00746 
00747 static int yy_init_globals (yyscan_t yyscanner );
00748 
00749 /* Accessor methods to globals.
00750    These are made visible to non-reentrant scanners for convenience. */
00751 
00752 int ossslex_destroy (yyscan_t yyscanner );
00753 
00754 int osssget_debug (yyscan_t yyscanner );
00755 
00756 void osssset_debug (int debug_flag ,yyscan_t yyscanner );
00757 
00758 YY_EXTRA_TYPE osssget_extra (yyscan_t yyscanner );
00759 
00760 void osssset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
00761 
00762 FILE *osssget_in (yyscan_t yyscanner );
00763 
00764 void osssset_in  (FILE * in_str ,yyscan_t yyscanner );
00765 
00766 FILE *osssget_out (yyscan_t yyscanner );
00767 
00768 void osssset_out  (FILE * out_str ,yyscan_t yyscanner );
00769 
00770 int osssget_leng (yyscan_t yyscanner );
00771 
00772 char *osssget_text (yyscan_t yyscanner );
00773 
00774 int osssget_lineno (yyscan_t yyscanner );
00775 
00776 void osssset_lineno (int line_number ,yyscan_t yyscanner );
00777 
00778 /* Macros after this point can all be overridden by user definitions in
00779  * section 1.
00780  */
00781 
00782 #ifndef YY_SKIP_YYWRAP
00783 #ifdef __cplusplus
00784 extern "C" int ossswrap (yyscan_t yyscanner );
00785 #else
00786 extern int ossswrap (yyscan_t yyscanner );
00787 #endif
00788 #endif
00789 
00790     static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
00791     
00792 #ifndef yytext_ptr
00793 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
00794 #endif
00795 
00796 #ifdef YY_NEED_STRLEN
00797 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
00798 #endif
00799 
00800 #ifndef YY_NO_INPUT
00801 
00802 #ifdef __cplusplus
00803 static int yyinput (yyscan_t yyscanner );
00804 #else
00805 static int input (yyscan_t yyscanner );
00806 #endif
00807 
00808 #endif
00809 
00810 /* Amount of stuff to slurp up with each read. */
00811 #ifndef YY_READ_BUF_SIZE
00812 #define YY_READ_BUF_SIZE 8192
00813 #endif
00814 
00815 /* Copy whatever the last rule matched to the standard output. */
00816 #ifndef ECHO
00817 /* This used to be an fputs(), but since the string might contain NUL's,
00818  * we now use fwrite().
00819  */
00820 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
00821 #endif
00822 
00823 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00824  * is returned in "result".
00825  */
00826 #ifndef YY_INPUT
00827 #define YY_INPUT(buf,result,max_size) \
00828         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00829                 { \
00830                 int c = '*'; \
00831                 size_t n; \
00832                 for ( n = 0; n < max_size && \
00833                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00834                         buf[n] = (char) c; \
00835                 if ( c == '\n' ) \
00836                         buf[n++] = (char) c; \
00837                 if ( c == EOF && ferror( yyin ) ) \
00838                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
00839                 result = n; \
00840                 } \
00841         else \
00842                 { \
00843                 errno=0; \
00844                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00845                         { \
00846                         if( errno != EINTR) \
00847                                 { \
00848                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00849                                 break; \
00850                                 } \
00851                         errno=0; \
00852                         clearerr(yyin); \
00853                         } \
00854                 }\
00855 \
00856 
00857 #endif
00858 
00859 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00860  * we don't want an extra ';' after the "return" because that will cause
00861  * some compilers to complain about unreachable statements.
00862  */
00863 #ifndef yyterminate
00864 #define yyterminate() return YY_NULL
00865 #endif
00866 
00867 /* Number of entries by which start-condition stack grows. */
00868 #ifndef YY_START_STACK_INCR
00869 #define YY_START_STACK_INCR 25
00870 #endif
00871 
00872 /* Report a fatal error. */
00873 #ifndef YY_FATAL_ERROR
00874 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
00875 #endif
00876 
00877 /* end tables serialization structures and prototypes */
00878 
00879 /* Default declaration of generated scanner - a define so the user can
00880  * easily add parameters.
00881  */
00882 #ifndef YY_DECL
00883 #define YY_DECL_IS_OURS 1
00884 
00885 extern int ossslex (yyscan_t yyscanner);
00886 
00887 #define YY_DECL int ossslex (yyscan_t yyscanner)
00888 #endif /* !YY_DECL */
00889 
00890 /* Code executed at the beginning of each rule, after yytext and yyleng
00891  * have been set up.
00892  */
00893 #ifndef YY_USER_ACTION
00894 #define YY_USER_ACTION
00895 #endif
00896 
00897 /* Code executed at the end of each rule. */
00898 #ifndef YY_BREAK
00899 #define YY_BREAK break;
00900 #endif
00901 
00902 #define YY_RULE_SETUP \
00903         YY_USER_ACTION
00904 
00907 YY_DECL
00908 {
00909         register yy_state_type yy_current_state;
00910         register char *yy_cp, *yy_bp;
00911         register int yy_act;
00912     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
00913 
00914 #line 114 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
00915 
00916 
00917 #line 918 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.cpp"
00918 
00919         if ( !yyg->yy_init )
00920                 {
00921                 yyg->yy_init = 1;
00922 
00923 #ifdef YY_USER_INIT
00924                 YY_USER_INIT;
00925 #endif
00926 
00927                 if ( ! yyg->yy_start )
00928                         yyg->yy_start = 1;      /* first start state */
00929 
00930                 if ( ! yyin )
00931                         yyin = stdin;
00932 
00933                 if ( ! yyout )
00934                         yyout = stdout;
00935 
00936                 if ( ! YY_CURRENT_BUFFER ) {
00937                         osssensure_buffer_stack (yyscanner);
00938                         YY_CURRENT_BUFFER_LVALUE =
00939                                 osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
00940                 }
00941 
00942                 osss_load_buffer_state(yyscanner );
00943                 }
00944 
00945         while ( 1 )             /* loops until end-of-file is reached */
00946                 {
00947                 yy_cp = yyg->yy_c_buf_p;
00948 
00949                 /* Support of yytext. */
00950                 *yy_cp = yyg->yy_hold_char;
00951 
00952                 /* yy_bp points to the position in yy_ch_buf of the start of
00953                  * the current run.
00954                  */
00955                 yy_bp = yy_cp;
00956 
00957                 yy_current_state = yyg->yy_start;
00958 yy_match:
00959                 do
00960                         {
00961                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
00962                         if ( yy_accept[yy_current_state] )
00963                                 {
00964                                 yyg->yy_last_accepting_state = yy_current_state;
00965                                 yyg->yy_last_accepting_cpos = yy_cp;
00966                                 }
00967                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
00968                                 {
00969                                 yy_current_state = (int) yy_def[yy_current_state];
00970                                 if ( yy_current_state >= 184 )
00971                                         yy_c = yy_meta[(unsigned int) yy_c];
00972                                 }
00973                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
00974                         ++yy_cp;
00975                         }
00976                 while ( yy_base[yy_current_state] != 319 );
00977 
00978 yy_find_action:
00979                 yy_act = yy_accept[yy_current_state];
00980                 if ( yy_act == 0 )
00981                         { /* have to back up */
00982                         yy_cp = yyg->yy_last_accepting_cpos;
00983                         yy_current_state = yyg->yy_last_accepting_state;
00984                         yy_act = yy_accept[yy_current_state];
00985                         }
00986 
00987                 YY_DO_BEFORE_ACTION;
00988 
00989                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
00990                         {
00991                         int yyl;
00992                         for ( yyl = 0; yyl < yyleng; ++yyl )
00993                                 if ( yytext[yyl] == '\n' )
00994                                            
00995     do{ yylineno++;
00996         yycolumn=0;
00997     }while(0)
00998 ;
00999                         }
01000 
01001 do_action:      /* This label is used only to access EOF actions. */
01002 
01003                 switch ( yy_act )
01004         { /* beginning of action switch */
01005                         case 0: /* must back up */
01006                         /* undo the effects of YY_DO_BEFORE_ACTION */
01007                         *yy_cp = yyg->yy_hold_char;
01008                         yy_cp = yyg->yy_last_accepting_cpos;
01009                         yy_current_state = yyg->yy_last_accepting_state;
01010                         goto yy_find_action;
01011 
01012 case 1:
01013 /* rule 1 can match eol */
01014 YY_RULE_SETUP
01015 #line 116 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01016 
01017         YY_BREAK
01018 case 2:
01019 /* rule 2 can match eol */
01020 YY_RULE_SETUP
01021 #line 120 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01022 {
01023         printf("Found option:  %s\n", yytext);  
01024         //char *ch = strdup(yytext);
01025         char *ch = yytext;
01026         // move past -config
01027         ch+=7;
01028         for(; isspace(*ch); ch++);
01029         std::string str(  ch);
01030         yyextra->configFile = str;
01031         //printf("gsgersdf= %d\n", gster);
01032 }
01033         YY_BREAK
01034 case 3:
01035 YY_RULE_SETUP
01036 #line 133 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01037 {
01038         printf("Found option:  %s\n", yytext);  
01039         yyextra->invokeHelp = true;
01040         //printf("gsgersdf= %d\n", gster);
01041 }
01042         YY_BREAK
01043 case 4:
01044 YY_RULE_SETUP
01045 #line 139 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01046 {
01047         printf("Found option:  %s\n", yytext); 
01048         yyextra->invokeHelp = true;
01049         //printf("gsgersdf= %d\n", gster); 
01050         
01051 }
01052         YY_BREAK
01053 case 5:
01054 YY_RULE_SETUP
01055 #line 146 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01056 {
01057         printf("Found option:  %s\n", yytext);  
01058         yyextra->writeVersion = true;
01059         //printf("gsgersdf= %d\n", gster);
01060 }
01061         YY_BREAK
01062 case 6:
01063 YY_RULE_SETUP
01064 #line 152 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01065 {
01066         printf("Found option:  %s\n", yytext); 
01067         yyextra->writeVersion = true;
01068         //printf("gsgersdf= %d\n", gster); 
01069         
01070 }
01071         YY_BREAK
01072 case 7:
01073 /* rule 7 can match eol */
01074 YY_RULE_SETUP
01075 #line 161 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01076 {
01077         if(yyextra->osilFile == ""){
01078                 printf("Found option:  %s\n", yytext);  
01079                 //char *ch = strdup(yytext);
01080                 char *ch = yytext;
01081                 // move past -osil
01082                 ch+=5;
01083                 for(; isspace(*ch); ch++);
01084                 std::string str(  ch);
01085                 yyextra->osilFile = str;
01086         } 
01087 }
01088         YY_BREAK
01089 case 8:
01090 /* rule 8 can match eol */
01091 YY_RULE_SETUP
01092 #line 174 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01093 {
01094         if(yyextra->osrlFile == ""){
01095                 printf("Found option:  %s\n", yytext); 
01096                 //char *ch = strdup(yytext);
01097                 char *ch = yytext;
01098                 // move past -osrl
01099                 ch+=5;
01100                 for(; isspace(*ch); ch++);
01101                 std::string str(  ch);
01102                 yyextra->osrlFile = str;
01103         }  
01104 }  
01105         YY_BREAK
01106 case 9:
01107 /* rule 9 can match eol */
01108 YY_RULE_SETUP
01109 #line 187 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01110 {
01111         if(yyextra->insListFile == ""){
01112                 printf("Found option:  %s\n", yytext); 
01113                 //char *ch = strdup(yytext);
01114                 char *ch = yytext;
01115                 // move past -insList
01116                 ch+=8;
01117                 for(; isspace(*ch); ch++);
01118                 std::string str(  ch);
01119                 yyextra->insListFile = str;
01120         }  
01121 }  
01122         YY_BREAK
01123 case 10:
01124 /* rule 10 can match eol */
01125 YY_RULE_SETUP
01126 #line 200 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01127 {
01128         if(yyextra->osolFile == ""){
01129                 printf("Found option:  %s\n", yytext); 
01130                 //char *ch = strdup(yytext);
01131                 char *ch = yytext;
01132                 // move past -osol
01133                 ch+=5;
01134                 for(; isspace(*ch); ch++);
01135                 std::string str(  ch);
01136                 yyextra->osolFile = str;  
01137         }
01138 }
01139         YY_BREAK
01140 case 11:
01141 /* rule 11 can match eol */
01142 YY_RULE_SETUP
01143 #line 215 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01144 {
01145         if(yyextra->osplInputFile == ""){
01146                 printf("Found option:  %s\n", yytext); 
01147                 //char *ch = strdup(yytext);
01148                 char *ch = yytext;
01149                 // move past -osplInput
01150                 ch+=10;
01151                 for(; isspace(*ch); ch++);
01152                 std::string str(  ch);
01153                 yyextra->osplInputFile = str;  
01154         }
01155 }
01156         YY_BREAK
01157 case 12:
01158 /* rule 12 can match eol */
01159 YY_RULE_SETUP
01160 #line 228 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01161 {
01162         if(yyextra->osplOutputFile == ""){
01163                 printf("Found option:  %s\n", yytext); 
01164                 //char *ch = strdup(yytext);
01165                 char *ch = yytext;
01166                 // move past -osplInput
01167                 ch+=11;
01168                 for(; isspace(*ch); ch++);
01169                 std::string str(  ch);
01170                 yyextra->osplOutputFile = str;  
01171         }
01172 }
01173         YY_BREAK
01174 case 13:
01175 /* rule 13 can match eol */
01176 YY_RULE_SETUP
01177 #line 241 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01178 {
01179         if(yyextra->serviceMethod == ""){
01180                 printf("Found option:  %s\n", yytext); 
01181                 //char *ch = strdup(yytext);
01182                 char *ch = yytext;
01183                 // move past -serviceMethod
01184                 ch+=14;
01185                 for(; isspace(*ch); ch++);
01186                 std::string str(  ch);
01187                 yyextra->serviceMethod = str; 
01188         }
01189 }
01190         YY_BREAK
01191 case 14:
01192 /* rule 14 can match eol */
01193 YY_RULE_SETUP
01194 #line 254 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01195 {
01196         if(yyextra->serviceLocation == ""){
01197                 printf("Found option:  %s\n", yytext); 
01198                 //yyextra->serviceLocation = strdup(yytext);
01199                 yyextra->serviceLocation =  yytext;
01200                 //char *ch = strdup(yytext);
01201                 char *ch = yytext;
01202                 // move past -serviceLocation
01203                 ch+=16;
01204                 for(; isspace(*ch); ch++);
01205                 std::string str(  ch);
01206                 yyextra->serviceLocation = str; 
01207         }
01208 }
01209         YY_BREAK
01210 case 15:
01211 /* rule 15 can match eol */
01212 YY_RULE_SETUP
01213 #line 269 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01214 {
01215         if(yyextra->mpsFile == ""){
01216                 printf("Found option:  %s\n", yytext); 
01217                 //char *ch = strdup(yytext);
01218                 char *ch = yytext;
01219                 // move past -mps
01220                 ch+=4;
01221                 for(; isspace(*ch); ch++);
01222                 std::string str(  ch);
01223                 yyextra->mpsFile = str; 
01224         }
01225 }
01226         YY_BREAK
01227 case 16:
01228 /* rule 16 can match eol */
01229 YY_RULE_SETUP
01230 #line 282 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01231 {
01232         if(yyextra->nlFile == ""){
01233                 printf("Found option:  %s\n", yytext);
01234                 //char *ch = strdup(yytext);
01235                 char *ch = yytext;
01236                 // move past -nl
01237                 ch+=3;
01238                 for(; isspace(*ch); ch++);
01239                 std::string str(  ch);
01240                 yyextra->nlFile = str;
01241         } 
01242 }
01243         YY_BREAK
01244 case 17:
01245 /* rule 17 can match eol */
01246 YY_RULE_SETUP
01247 #line 295 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01248 {
01249         if(yyextra->solverName == ""){
01250                 printf("Found option:  %s\n", yytext); 
01251                 //char *ch = strdup(yytext);
01252                 char *ch = yytext;
01253                 // move past -solver
01254                 ch+=7;
01255                 for(; isspace(*ch); ch++);
01256                 std::string str(  ch);
01257                 yyextra->solverName = str;
01258         } 
01259 }
01260         YY_BREAK
01261 case 18:
01262 /* rule 18 can match eol */
01263 YY_RULE_SETUP
01264 #line 308 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01265 {
01266         if(yyextra->browser == ""){
01267                 printf("Found option:  %s\n", yytext);  
01268                 //char *ch = strdup(yytext);
01269                 char *ch = yytext;
01270                 // move past -browser
01271                 ch+=8;
01272                 for(; isspace(*ch); ch++);
01273                 std::string str(  ch);
01274                 yyextra->browser = str; 
01275         }
01276 }
01277         YY_BREAK
01278 case 19:
01279 YY_RULE_SETUP
01280 #line 321 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01281 {
01282         std::string error;
01283         std::ostringstream outStr;
01284         outStr << "ecountered a spurious character in the lexer" << endl;
01285         outStr << "The first character is: ";
01286         outStr <<  yytext;
01287         outStr << endl;
01288         //outStr << "See line number: " << yylineno << endl;  
01289         error = outStr.str();
01290         throw ErrorClass( error);  
01291 }
01292         YY_BREAK
01293 case 20:
01294 YY_RULE_SETUP
01295 #line 332 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
01296 ECHO;
01297         YY_BREAK
01298 #line 1299 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.cpp"
01299 case YY_STATE_EOF(INITIAL):
01300         yyterminate();
01301 
01302         case YY_END_OF_BUFFER:
01303                 {
01304                 /* Amount of text matched not including the EOB char. */
01305                 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
01306 
01307                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
01308                 *yy_cp = yyg->yy_hold_char;
01309                 YY_RESTORE_YY_MORE_OFFSET
01310 
01311                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01312                         {
01313                         /* We're scanning a new file or input source.  It's
01314                          * possible that this happened because the user
01315                          * just pointed yyin at a new source and called
01316                          * ossslex().  If so, then we have to assure
01317                          * consistency between YY_CURRENT_BUFFER and our
01318                          * globals.  Here is the right place to do so, because
01319                          * this is the first action (other than possibly a
01320                          * back-up) that will match for the new input source.
01321                          */
01322                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01323                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01324                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01325                         }
01326 
01327                 /* Note that here we test for yy_c_buf_p "<=" to the position
01328                  * of the first EOB in the buffer, since yy_c_buf_p will
01329                  * already have been incremented past the NUL character
01330                  * (since all states make transitions on EOB to the
01331                  * end-of-buffer state).  Contrast this with the test
01332                  * in input().
01333                  */
01334                 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01335                         { /* This was really a NUL. */
01336                         yy_state_type yy_next_state;
01337 
01338                         yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
01339 
01340                         yy_current_state = yy_get_previous_state( yyscanner );
01341 
01342                         /* Okay, we're now positioned to make the NUL
01343                          * transition.  We couldn't have
01344                          * yy_get_previous_state() go ahead and do it
01345                          * for us because it doesn't know how to deal
01346                          * with the possibility of jamming (and we don't
01347                          * want to build jamming into it because then it
01348                          * will run more slowly).
01349                          */
01350 
01351                         yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
01352 
01353                         yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01354 
01355                         if ( yy_next_state )
01356                                 {
01357                                 /* Consume the NUL. */
01358                                 yy_cp = ++yyg->yy_c_buf_p;
01359                                 yy_current_state = yy_next_state;
01360                                 goto yy_match;
01361                                 }
01362 
01363                         else
01364                                 {
01365                                 yy_cp = yyg->yy_c_buf_p;
01366                                 goto yy_find_action;
01367                                 }
01368                         }
01369 
01370                 else switch ( yy_get_next_buffer( yyscanner ) )
01371                         {
01372                         case EOB_ACT_END_OF_FILE:
01373                                 {
01374                                 yyg->yy_did_buffer_switch_on_eof = 0;
01375 
01376                                 if ( ossswrap(yyscanner ) )
01377                                         {
01378                                         /* Note: because we've taken care in
01379                                          * yy_get_next_buffer() to have set up
01380                                          * yytext, we can now set up
01381                                          * yy_c_buf_p so that if some total
01382                                          * hoser (like flex itself) wants to
01383                                          * call the scanner after we return the
01384                                          * YY_NULL, it'll still work - another
01385                                          * YY_NULL will get returned.
01386                                          */
01387                                         yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
01388 
01389                                         yy_act = YY_STATE_EOF(YY_START);
01390                                         goto do_action;
01391                                         }
01392 
01393                                 else
01394                                         {
01395                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
01396                                                 YY_NEW_FILE;
01397                                         }
01398                                 break;
01399                                 }
01400 
01401                         case EOB_ACT_CONTINUE_SCAN:
01402                                 yyg->yy_c_buf_p =
01403                                         yyg->yytext_ptr + yy_amount_of_matched_text;
01404 
01405                                 yy_current_state = yy_get_previous_state( yyscanner );
01406 
01407                                 yy_cp = yyg->yy_c_buf_p;
01408                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01409                                 goto yy_match;
01410 
01411                         case EOB_ACT_LAST_MATCH:
01412                                 yyg->yy_c_buf_p =
01413                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
01414 
01415                                 yy_current_state = yy_get_previous_state( yyscanner );
01416 
01417                                 yy_cp = yyg->yy_c_buf_p;
01418                                 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01419                                 goto yy_find_action;
01420                         }
01421                 break;
01422                 }
01423 
01424         default:
01425                 YY_FATAL_ERROR(
01426                         "fatal flex scanner internal error--no action found" );
01427         } /* end of action switch */
01428                 } /* end of scanning one token */
01429 } /* end of ossslex */
01430 
01431 /* yy_get_next_buffer - try to read in a new buffer
01432  *
01433  * Returns a code representing an action:
01434  *      EOB_ACT_LAST_MATCH -
01435  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
01436  *      EOB_ACT_END_OF_FILE - end of file
01437  */
01438 static int yy_get_next_buffer (yyscan_t yyscanner)
01439 {
01440     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01441         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01442         register char *source = yyg->yytext_ptr;
01443         register int number_to_move, i;
01444         int ret_val;
01445 
01446         if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
01447                 YY_FATAL_ERROR(
01448                 "fatal flex scanner internal error--end of buffer missed" );
01449 
01450         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01451                 { /* Don't try to fill the buffer, so this is an EOF. */
01452                 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
01453                         {
01454                         /* We matched a single character, the EOB, so
01455                          * treat this as a final EOF.
01456                          */
01457                         return EOB_ACT_END_OF_FILE;
01458                         }
01459 
01460                 else
01461                         {
01462                         /* We matched some text prior to the EOB, first
01463                          * process it.
01464                          */
01465                         return EOB_ACT_LAST_MATCH;
01466                         }
01467                 }
01468 
01469         /* Try to read more data. */
01470 
01471         /* First move last chars to start of buffer. */
01472         number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
01473 
01474         for ( i = 0; i < number_to_move; ++i )
01475                 *(dest++) = *(source++);
01476 
01477         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01478                 /* don't do the read, it's not guaranteed to return an EOF,
01479                  * just force an EOF
01480                  */
01481                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
01482 
01483         else
01484                 {
01485                         int num_to_read =
01486                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01487 
01488                 while ( num_to_read <= 0 )
01489                         { /* Not enough room in the buffer - grow it. */
01490 
01491                         /* just a shorter name for the current buffer */
01492                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
01493 
01494                         int yy_c_buf_p_offset =
01495                                 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
01496 
01497                         if ( b->yy_is_our_buffer )
01498                                 {
01499                                 int new_size = b->yy_buf_size * 2;
01500 
01501                                 if ( new_size <= 0 )
01502                                         b->yy_buf_size += b->yy_buf_size / 8;
01503                                 else
01504                                         b->yy_buf_size *= 2;
01505 
01506                                 b->yy_ch_buf = (char *)
01507                                         /* Include room in for 2 EOB chars. */
01508                                         osssrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
01509                                 }
01510                         else
01511                                 /* Can't grow it, we don't own it. */
01512                                 b->yy_ch_buf = 0;
01513 
01514                         if ( ! b->yy_ch_buf )
01515                                 YY_FATAL_ERROR(
01516                                 "fatal error - scanner input buffer overflow" );
01517 
01518                         yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
01519 
01520                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01521                                                 number_to_move - 1;
01522 
01523                         }
01524 
01525                 if ( num_to_read > YY_READ_BUF_SIZE )
01526                         num_to_read = YY_READ_BUF_SIZE;
01527 
01528                 /* Read in more data. */
01529                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01530                         yyg->yy_n_chars, num_to_read );
01531 
01532                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
01533                 }
01534 
01535         if ( yyg->yy_n_chars == 0 )
01536                 {
01537                 if ( number_to_move == YY_MORE_ADJ )
01538                         {
01539                         ret_val = EOB_ACT_END_OF_FILE;
01540                         osssrestart(yyin  ,yyscanner);
01541                         }
01542 
01543                 else
01544                         {
01545                         ret_val = EOB_ACT_LAST_MATCH;
01546                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01547                                 YY_BUFFER_EOF_PENDING;
01548                         }
01549                 }
01550 
01551         else
01552                 ret_val = EOB_ACT_CONTINUE_SCAN;
01553 
01554         yyg->yy_n_chars += number_to_move;
01555         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01556         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01557 
01558         yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01559 
01560         return ret_val;
01561 }
01562 
01563 /* yy_get_previous_state - get the state just before the EOB char was reached */
01564 
01565     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
01566 {
01567         register yy_state_type yy_current_state;
01568         register char *yy_cp;
01569     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01570 
01571         yy_current_state = yyg->yy_start;
01572 
01573         for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
01574                 {
01575                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01576                 if ( yy_accept[yy_current_state] )
01577                         {
01578                         yyg->yy_last_accepting_state = yy_current_state;
01579                         yyg->yy_last_accepting_cpos = yy_cp;
01580                         }
01581                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01582                         {
01583                         yy_current_state = (int) yy_def[yy_current_state];
01584                         if ( yy_current_state >= 184 )
01585                                 yy_c = yy_meta[(unsigned int) yy_c];
01586                         }
01587                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01588                 }
01589 
01590         return yy_current_state;
01591 }
01592 
01593 /* yy_try_NUL_trans - try to make a transition on the NUL character
01594  *
01595  * synopsis
01596  *      next_state = yy_try_NUL_trans( current_state );
01597  */
01598     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
01599 {
01600         register int yy_is_jam;
01601     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
01602         register char *yy_cp = yyg->yy_c_buf_p;
01603 
01604         register YY_CHAR yy_c = 1;
01605         if ( yy_accept[yy_current_state] )
01606                 {
01607                 yyg->yy_last_accepting_state = yy_current_state;
01608                 yyg->yy_last_accepting_cpos = yy_cp;
01609                 }
01610         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01611                 {
01612                 yy_current_state = (int) yy_def[yy_current_state];
01613                 if ( yy_current_state >= 184 )
01614                         yy_c = yy_meta[(unsigned int) yy_c];
01615                 }
01616         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01617         yy_is_jam = (yy_current_state == 183);
01618 
01619         return yy_is_jam ? 0 : yy_current_state;
01620 }
01621 
01622     static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
01623 {
01624         register char *yy_cp;
01625     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01626 
01627     yy_cp = yyg->yy_c_buf_p;
01628 
01629         /* undo effects of setting up yytext */
01630         *yy_cp = yyg->yy_hold_char;
01631 
01632         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01633                 { /* need to shift things up to make room */
01634                 /* +2 for EOB chars. */
01635                 register int number_to_move = yyg->yy_n_chars + 2;
01636                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
01637                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
01638                 register char *source =
01639                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
01640 
01641                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01642                         *--dest = *--source;
01643 
01644                 yy_cp += (int) (dest - source);
01645                 yy_bp += (int) (dest - source);
01646                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
01647                         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
01648 
01649                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
01650                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
01651                 }
01652 
01653         *--yy_cp = (char) c;
01654 
01655     if ( c == '\n' ){
01656         --yylineno;
01657     }
01658 
01659         yyg->yytext_ptr = yy_bp;
01660         yyg->yy_hold_char = *yy_cp;
01661         yyg->yy_c_buf_p = yy_cp;
01662 }
01663 
01664 #ifndef YY_NO_INPUT
01665 #ifdef __cplusplus
01666     static int yyinput (yyscan_t yyscanner)
01667 #else
01668     static int input  (yyscan_t yyscanner)
01669 #endif
01670 
01671 {
01672         int c;
01673     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01674 
01675         *yyg->yy_c_buf_p = yyg->yy_hold_char;
01676 
01677         if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01678                 {
01679                 /* yy_c_buf_p now points to the character we want to return.
01680                  * If this occurs *before* the EOB characters, then it's a
01681                  * valid NUL; if not, then we've hit the end of the buffer.
01682                  */
01683                 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01684                         /* This was really a NUL. */
01685                         *yyg->yy_c_buf_p = '\0';
01686 
01687                 else
01688                         { /* need more input */
01689                         int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
01690                         ++yyg->yy_c_buf_p;
01691 
01692                         switch ( yy_get_next_buffer( yyscanner ) )
01693                                 {
01694                                 case EOB_ACT_LAST_MATCH:
01695                                         /* This happens because yy_g_n_b()
01696                                          * sees that we've accumulated a
01697                                          * token and flags that we need to
01698                                          * try matching the token before
01699                                          * proceeding.  But for input(),
01700                                          * there's no matching to consider.
01701                                          * So convert the EOB_ACT_LAST_MATCH
01702                                          * to EOB_ACT_END_OF_FILE.
01703                                          */
01704 
01705                                         /* Reset buffer status. */
01706                                         osssrestart(yyin ,yyscanner);
01707 
01708                                         /*FALLTHROUGH*/
01709 
01710                                 case EOB_ACT_END_OF_FILE:
01711                                         {
01712                                         if ( ossswrap(yyscanner ) )
01713                                                 return EOF;
01714 
01715                                         if ( ! yyg->yy_did_buffer_switch_on_eof )
01716                                                 YY_NEW_FILE;
01717 #ifdef __cplusplus
01718                                         return yyinput(yyscanner);
01719 #else
01720                                         return input(yyscanner);
01721 #endif
01722                                         }
01723 
01724                                 case EOB_ACT_CONTINUE_SCAN:
01725                                         yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
01726                                         break;
01727                                 }
01728                         }
01729                 }
01730 
01731         c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
01732         *yyg->yy_c_buf_p = '\0';        /* preserve yytext */
01733         yyg->yy_hold_char = *++yyg->yy_c_buf_p;
01734 
01735         if ( c == '\n' )
01736                    
01737     do{ yylineno++;
01738         yycolumn=0;
01739     }while(0)
01740 ;
01741 
01742         return c;
01743 }
01744 #endif  /* ifndef YY_NO_INPUT */
01745 
01751     void osssrestart  (FILE * input_file , yyscan_t yyscanner)
01752 {
01753     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01754 
01755         if ( ! YY_CURRENT_BUFFER ){
01756         osssensure_buffer_stack (yyscanner);
01757                 YY_CURRENT_BUFFER_LVALUE =
01758             osss_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01759         }
01760 
01761         osss_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
01762         osss_load_buffer_state(yyscanner );
01763 }
01764 
01769     void osss_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
01770 {
01771     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01772 
01773         /* TODO. We should be able to replace this entire function body
01774          * with
01775          *              ossspop_buffer_state();
01776          *              ossspush_buffer_state(new_buffer);
01777      */
01778         osssensure_buffer_stack (yyscanner);
01779         if ( YY_CURRENT_BUFFER == new_buffer )
01780                 return;
01781 
01782         if ( YY_CURRENT_BUFFER )
01783                 {
01784                 /* Flush out information for old buffer. */
01785                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
01786                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
01787                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
01788                 }
01789 
01790         YY_CURRENT_BUFFER_LVALUE = new_buffer;
01791         osss_load_buffer_state(yyscanner );
01792 
01793         /* We don't actually know whether we did this switch during
01794          * EOF (ossswrap()) processing, but the only time this flag
01795          * is looked at is after ossswrap() is called, so it's safe
01796          * to go ahead and always set it.
01797          */
01798         yyg->yy_did_buffer_switch_on_eof = 1;
01799 }
01800 
01801 static void osss_load_buffer_state  (yyscan_t yyscanner)
01802 {
01803     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01804         yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01805         yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
01806         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
01807         yyg->yy_hold_char = *yyg->yy_c_buf_p;
01808 }
01809 
01816     YY_BUFFER_STATE osss_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
01817 {
01818         YY_BUFFER_STATE b;
01819     
01820         b = (YY_BUFFER_STATE) osssalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
01821         if ( ! b )
01822                 YY_FATAL_ERROR( "out of dynamic memory in osss_create_buffer()" );
01823 
01824         b->yy_buf_size = size;
01825 
01826         /* yy_ch_buf has to be 2 characters longer than the size given because
01827          * we need to put in 2 end-of-buffer characters.
01828          */
01829         b->yy_ch_buf = (char *) osssalloc(b->yy_buf_size + 2 ,yyscanner );
01830         if ( ! b->yy_ch_buf )
01831                 YY_FATAL_ERROR( "out of dynamic memory in osss_create_buffer()" );
01832 
01833         b->yy_is_our_buffer = 1;
01834 
01835         osss_init_buffer(b,file ,yyscanner);
01836 
01837         return b;
01838 }
01839 
01844     void osss_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
01845 {
01846     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01847 
01848         if ( ! b )
01849                 return;
01850 
01851         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
01852                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
01853 
01854         if ( b->yy_is_our_buffer )
01855                 osssfree((void *) b->yy_ch_buf ,yyscanner );
01856 
01857         osssfree((void *) b ,yyscanner );
01858 }
01859 
01860 #ifndef __cplusplus
01861 extern int isatty (int );
01862 #endif /* __cplusplus */
01863     
01864 /* Initializes or reinitializes a buffer.
01865  * This function is sometimes called more than once on the same buffer,
01866  * such as during a osssrestart() or at EOF.
01867  */
01868     static void osss_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
01869 
01870 {
01871         int oerrno = errno;
01872     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01873 
01874         osss_flush_buffer(b ,yyscanner);
01875 
01876         b->yy_input_file = file;
01877         b->yy_fill_buffer = 1;
01878 
01879     /* If b is the current buffer, then osss_init_buffer was _probably_
01880      * called from osssrestart() or through yy_get_next_buffer.
01881      * In that case, we don't want to reset the lineno or column.
01882      */
01883     if (b != YY_CURRENT_BUFFER){
01884         b->yy_bs_lineno = 1;
01885         b->yy_bs_column = 0;
01886     }
01887 
01888         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
01889     
01890         errno = oerrno;
01891 }
01892 
01897     void osss_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
01898 {
01899     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01900         if ( ! b )
01901                 return;
01902 
01903         b->yy_n_chars = 0;
01904 
01905         /* We always need two end-of-buffer characters.  The first causes
01906          * a transition to the end-of-buffer state.  The second causes
01907          * a jam in that state.
01908          */
01909         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
01910         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
01911 
01912         b->yy_buf_pos = &b->yy_ch_buf[0];
01913 
01914         b->yy_at_bol = 1;
01915         b->yy_buffer_status = YY_BUFFER_NEW;
01916 
01917         if ( b == YY_CURRENT_BUFFER )
01918                 osss_load_buffer_state(yyscanner );
01919 }
01920 
01927 void ossspush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
01928 {
01929     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01930         if (new_buffer == NULL)
01931                 return;
01932 
01933         osssensure_buffer_stack(yyscanner);
01934 
01935         /* This block is copied from osss_switch_to_buffer. */
01936         if ( YY_CURRENT_BUFFER )
01937                 {
01938                 /* Flush out information for old buffer. */
01939                 *yyg->yy_c_buf_p = yyg->yy_hold_char;
01940                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
01941                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
01942                 }
01943 
01944         /* Only push if top exists. Otherwise, replace top. */
01945         if (YY_CURRENT_BUFFER)
01946                 yyg->yy_buffer_stack_top++;
01947         YY_CURRENT_BUFFER_LVALUE = new_buffer;
01948 
01949         /* copied from osss_switch_to_buffer. */
01950         osss_load_buffer_state(yyscanner );
01951         yyg->yy_did_buffer_switch_on_eof = 1;
01952 }
01953 
01958 void ossspop_buffer_state (yyscan_t yyscanner)
01959 {
01960     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01961         if (!YY_CURRENT_BUFFER)
01962                 return;
01963 
01964         osss_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
01965         YY_CURRENT_BUFFER_LVALUE = NULL;
01966         if (yyg->yy_buffer_stack_top > 0)
01967                 --yyg->yy_buffer_stack_top;
01968 
01969         if (YY_CURRENT_BUFFER) {
01970                 osss_load_buffer_state(yyscanner );
01971                 yyg->yy_did_buffer_switch_on_eof = 1;
01972         }
01973 }
01974 
01975 /* Allocates the stack if it does not exist.
01976  *  Guarantees space for at least one push.
01977  */
01978 static void osssensure_buffer_stack (yyscan_t yyscanner)
01979 {
01980         int num_to_alloc;
01981     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01982 
01983         if (!yyg->yy_buffer_stack) {
01984 
01985                 /* First allocation is just for 2 elements, since we don't know if this
01986                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
01987                  * immediate realloc on the next call.
01988          */
01989                 num_to_alloc = 1;
01990                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osssalloc
01991                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
01992                                                                 , yyscanner);
01993                 
01994                 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
01995                                 
01996                 yyg->yy_buffer_stack_max = num_to_alloc;
01997                 yyg->yy_buffer_stack_top = 0;
01998                 return;
01999         }
02000 
02001         if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02002 
02003                 /* Increase the buffer to prepare for a possible push. */
02004                 int grow_size = 8 /* arbitrary grow size */;
02005 
02006                 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02007                 yyg->yy_buffer_stack = (struct yy_buffer_state**)osssrealloc
02008                                                                 (yyg->yy_buffer_stack,
02009                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
02010                                                                 , yyscanner);
02011 
02012                 /* zero only the new slots.*/
02013                 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02014                 yyg->yy_buffer_stack_max = num_to_alloc;
02015         }
02016 }
02017 
02024 YY_BUFFER_STATE osss_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
02025 {
02026         YY_BUFFER_STATE b;
02027     
02028         if ( size < 2 ||
02029              base[size-2] != YY_END_OF_BUFFER_CHAR ||
02030              base[size-1] != YY_END_OF_BUFFER_CHAR )
02031                 /* They forgot to leave room for the EOB's. */
02032                 return 0;
02033 
02034         b = (YY_BUFFER_STATE) osssalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02035         if ( ! b )
02036                 YY_FATAL_ERROR( "out of dynamic memory in osss_scan_buffer()" );
02037 
02038         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
02039         b->yy_buf_pos = b->yy_ch_buf = base;
02040         b->yy_is_our_buffer = 0;
02041         b->yy_input_file = 0;
02042         b->yy_n_chars = b->yy_buf_size;
02043         b->yy_is_interactive = 0;
02044         b->yy_at_bol = 1;
02045         b->yy_fill_buffer = 0;
02046         b->yy_buffer_status = YY_BUFFER_NEW;
02047 
02048         osss_switch_to_buffer(b ,yyscanner );
02049 
02050         return b;
02051 }
02052 
02061 YY_BUFFER_STATE osss_scan_string (yyconst char * yystr , yyscan_t yyscanner)
02062 {
02063     
02064         return osss_scan_bytes(yystr,strlen(yystr) ,yyscanner);
02065 }
02066 
02074 YY_BUFFER_STATE osss_scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
02075 {
02076         YY_BUFFER_STATE b;
02077         char *buf;
02078         yy_size_t n;
02079         int i;
02080     
02081         /* Get memory for full buffer, including space for trailing EOB's. */
02082         n = _yybytes_len + 2;
02083         buf = (char *) osssalloc(n ,yyscanner );
02084         if ( ! buf )
02085                 YY_FATAL_ERROR( "out of dynamic memory in osss_scan_bytes()" );
02086 
02087         for ( i = 0; i < _yybytes_len; ++i )
02088                 buf[i] = yybytes[i];
02089 
02090         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02091 
02092         b = osss_scan_buffer(buf,n ,yyscanner);
02093         if ( ! b )
02094                 YY_FATAL_ERROR( "bad buffer in osss_scan_bytes()" );
02095 
02096         /* It's okay to grow etc. this buffer, and we should throw it
02097          * away when we're done.
02098          */
02099         b->yy_is_our_buffer = 1;
02100 
02101         return b;
02102 }
02103 
02104 #ifndef YY_EXIT_FAILURE
02105 #define YY_EXIT_FAILURE 2
02106 #endif
02107 
02108 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
02109 {
02110         (void) fprintf( stderr, "%s\n", msg );
02111         exit( YY_EXIT_FAILURE );
02112 }
02113 
02114 /* Redefine yyless() so it works in section 3 code. */
02115 
02116 #undef yyless
02117 #define yyless(n) \
02118         do \
02119                 { \
02120                 /* Undo effects of setting up yytext. */ \
02121         int yyless_macro_arg = (n); \
02122         YY_LESS_LINENO(yyless_macro_arg);\
02123                 yytext[yyleng] = yyg->yy_hold_char; \
02124                 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
02125                 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
02126                 *yyg->yy_c_buf_p = '\0'; \
02127                 yyleng = yyless_macro_arg; \
02128                 } \
02129         while ( 0 )
02130 
02131 /* Accessor  methods (get/set functions) to struct members. */
02132 
02136 YY_EXTRA_TYPE osssget_extra  (yyscan_t yyscanner)
02137 {
02138     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02139     return yyextra;
02140 }
02141 
02145 int osssget_lineno  (yyscan_t yyscanner)
02146 {
02147     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02148     
02149         if (! YY_CURRENT_BUFFER)
02150             return 0;
02151     
02152     return yylineno;
02153 }
02154 
02158 int osssget_column  (yyscan_t yyscanner)
02159 {
02160     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02161     
02162         if (! YY_CURRENT_BUFFER)
02163             return 0;
02164     
02165     return yycolumn;
02166 }
02167 
02171 FILE *osssget_in  (yyscan_t yyscanner)
02172 {
02173     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02174     return yyin;
02175 }
02176 
02180 FILE *osssget_out  (yyscan_t yyscanner)
02181 {
02182     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02183     return yyout;
02184 }
02185 
02189 int osssget_leng  (yyscan_t yyscanner)
02190 {
02191     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02192     return yyleng;
02193 }
02194 
02199 char *osssget_text  (yyscan_t yyscanner)
02200 {
02201     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02202     return yytext;
02203 }
02204 
02209 void osssset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
02210 {
02211     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02212     yyextra = user_defined ;
02213 }
02214 
02219 void osssset_lineno (int  line_number , yyscan_t yyscanner)
02220 {
02221     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02222 
02223         /* lineno is only valid if an input buffer exists. */
02224         if (! YY_CURRENT_BUFFER )
02225            yy_fatal_error( "osssset_lineno called with no buffer" , yyscanner); 
02226     
02227     yylineno = line_number;
02228 }
02229 
02234 void osssset_column (int  column_no , yyscan_t yyscanner)
02235 {
02236     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02237 
02238         /* column is only valid if an input buffer exists. */
02239         if (! YY_CURRENT_BUFFER )
02240            yy_fatal_error( "osssset_column called with no buffer" , yyscanner); 
02241     
02242     yycolumn = column_no;
02243 }
02244 
02251 void osssset_in (FILE *  in_str , yyscan_t yyscanner)
02252 {
02253     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02254     yyin = in_str ;
02255 }
02256 
02257 void osssset_out (FILE *  out_str , yyscan_t yyscanner)
02258 {
02259     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02260     yyout = out_str ;
02261 }
02262 
02263 int osssget_debug  (yyscan_t yyscanner)
02264 {
02265     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02266     return yy_flex_debug;
02267 }
02268 
02269 void osssset_debug (int  bdebug , yyscan_t yyscanner)
02270 {
02271     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02272     yy_flex_debug = bdebug ;
02273 }
02274 
02275 /* Accessor methods for yylval and yylloc */
02276 
02277 /* User-visible API */
02278 
02279 /* ossslex_init is special because it creates the scanner itself, so it is
02280  * the ONLY reentrant function that doesn't take the scanner as the last argument.
02281  * That's why we explicitly handle the declaration, instead of using our macros.
02282  */
02283 
02284 int ossslex_init(yyscan_t* ptr_yy_globals)
02285 
02286 {
02287     if (ptr_yy_globals == NULL){
02288         errno = EINVAL;
02289         return 1;
02290     }
02291 
02292     *ptr_yy_globals = (yyscan_t) osssalloc ( sizeof( struct yyguts_t ), NULL );
02293 
02294     if (*ptr_yy_globals == NULL){
02295         errno = ENOMEM;
02296         return 1;
02297     }
02298 
02299     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
02300     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
02301 
02302     return yy_init_globals ( *ptr_yy_globals );
02303 }
02304 
02305 static int yy_init_globals (yyscan_t yyscanner)
02306 {
02307     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02308     /* Initialization is the same as for the non-reentrant scanner.
02309      * This function is called from ossslex_destroy(), so don't allocate here.
02310      */
02311 
02312     yyg->yy_buffer_stack = 0;
02313     yyg->yy_buffer_stack_top = 0;
02314     yyg->yy_buffer_stack_max = 0;
02315     yyg->yy_c_buf_p = (char *) 0;
02316     yyg->yy_init = 0;
02317     yyg->yy_start = 0;
02318 
02319     yyg->yy_start_stack_ptr = 0;
02320     yyg->yy_start_stack_depth = 0;
02321     yyg->yy_start_stack =  NULL;
02322 
02323 /* Defined in main.c */
02324 #ifdef YY_STDINIT
02325     yyin = stdin;
02326     yyout = stdout;
02327 #else
02328     yyin = (FILE *) 0;
02329     yyout = (FILE *) 0;
02330 #endif
02331 
02332     /* For future reference: Set errno on error, since we are called by
02333      * ossslex_init()
02334      */
02335     return 0;
02336 }
02337 
02338 /* ossslex_destroy is for both reentrant and non-reentrant scanners. */
02339 int ossslex_destroy  (yyscan_t yyscanner)
02340 {
02341     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02342 
02343     /* Pop the buffer stack, destroying each element. */
02344         while(YY_CURRENT_BUFFER){
02345                 osss_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
02346                 YY_CURRENT_BUFFER_LVALUE = NULL;
02347                 ossspop_buffer_state(yyscanner);
02348         }
02349 
02350         /* Destroy the stack itself. */
02351         osssfree(yyg->yy_buffer_stack ,yyscanner);
02352         yyg->yy_buffer_stack = NULL;
02353 
02354     /* Destroy the start condition stack. */
02355         osssfree(yyg->yy_start_stack ,yyscanner );
02356         yyg->yy_start_stack = NULL;
02357 
02358     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02359      * ossslex() is called, initialization will occur. */
02360     yy_init_globals( yyscanner);
02361 
02362     /* Destroy the main struct (reentrant only). */
02363     osssfree ( yyscanner , yyscanner );
02364     yyscanner = NULL;
02365     return 0;
02366 }
02367 
02368 /*
02369  * Internal utility routines.
02370  */
02371 
02372 #ifndef yytext_ptr
02373 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
02374 {
02375         register int i;
02376         for ( i = 0; i < n; ++i )
02377                 s1[i] = s2[i];
02378 }
02379 #endif
02380 
02381 #ifdef YY_NEED_STRLEN
02382 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
02383 {
02384         register int n;
02385         for ( n = 0; s[n]; ++n )
02386                 ;
02387 
02388         return n;
02389 }
02390 #endif
02391 
02392 void *osssalloc (yy_size_t  size , yyscan_t yyscanner)
02393 {
02394         return (void *) malloc( size );
02395 }
02396 
02397 void *osssrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
02398 {
02399         /* The cast to (char *) in the following accommodates both
02400          * implementations that use char* generic pointers, and those
02401          * that use void* generic pointers.  It works with the latter
02402          * because both ANSI C and C++ allow castless assignment from
02403          * any pointer type to void*, and deal with argument conversions
02404          * as though doing an assignment.
02405          */
02406         return (void *) realloc( (char *) ptr, size );
02407 }
02408 
02409 void osssfree (void * ptr , yyscan_t yyscanner)
02410 {
02411         free( (char *) ptr );   /* see osssrealloc() for (char *) cast */
02412 }
02413 
02414 #define YYTABLES_NAME "yytables"
02415 
02416 #line 332 "/Users/kmartin/Documents/files/code/cpp/OScpp/COIN-OS/OS/src/OSParsers/OSParseosss.l"
02417 
02418 
02419 
02420 void setyyextra(osOptionsStruc *osoptions, void* scanner){
02421         osssset_extra(osoptions, scanner);
02422 }
02423 
02424 
02425 

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