| 3309 | static int yyinput (void) |
| 3310 | #else |
| 3311 | static int input (void) |
| 3312 | #endif |
| 3313 | |
| 3314 | { |
| 3315 | int c; |
| 3316 | |
| 3317 | *(yy_c_buf_p) = (yy_hold_char); |
| 3318 | |
| 3319 | if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) |
| 3320 | { |
| 3321 | /* yy_c_buf_p now points to the character we want to return. |
| 3322 | * If this occurs *before* the EOB characters, then it's a |
| 3323 | * valid NUL; if not, then we've hit the end of the buffer. |
| 3324 | */ |
| 3325 | if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) |
| 3326 | /* This was really a NUL. */ |
| 3327 | *(yy_c_buf_p) = '\0'; |
| 3328 | |
| 3329 | else |
| 3330 | { /* need more input */ |
| 3331 | int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); |
| 3332 | ++(yy_c_buf_p); |
| 3333 | |
| 3334 | switch ( yy_get_next_buffer( ) ) |
| 3335 | { |
| 3336 | case EOB_ACT_LAST_MATCH: |
| 3337 | /* This happens because yy_g_n_b() |
| 3338 | * sees that we've accumulated a |
| 3339 | * token and flags that we need to |
| 3340 | * try matching the token before |
| 3341 | * proceeding. But for input(), |
| 3342 | * there's no matching to consider. |
| 3343 | * So convert the EOB_ACT_LAST_MATCH |
| 3344 | * to EOB_ACT_END_OF_FILE. |
| 3345 | */ |
| 3346 | |
| 3347 | /* Reset buffer status. */ |
| 3348 | yyrestart( yyin ); |
| 3349 | |
| 3350 | /*FALLTHROUGH*/ |
| 3351 | |
| 3352 | case EOB_ACT_END_OF_FILE: |
| 3353 | { |
| 3354 | if ( yywrap( ) ) |
| 3355 | return 0; |
| 3356 | |
| 3357 | if ( ! (yy_did_buffer_switch_on_eof) ) |
| 3358 | YY_NEW_FILE; |
| 3359 | #ifdef __cplusplus |
| 3360 | return yyinput(); |
| 3361 | #else |
| 3362 | return input(); |
| 3363 | #endif |
| 3364 | } |
| 3365 | |
| 3366 | case EOB_ACT_CONTINUE_SCAN: |
| 3367 | (yy_c_buf_p) = (yytext_ptr) + offset; |
| 3368 | break; |
no test coverage detected