| 4576 | static int yyinput (void) |
| 4577 | #else |
| 4578 | static int input (void) |
| 4579 | #endif |
| 4580 | |
| 4581 | { |
| 4582 | int c; |
| 4583 | |
| 4584 | *(yy_c_buf_p) = (yy_hold_char); |
| 4585 | |
| 4586 | if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) |
| 4587 | { |
| 4588 | /* yy_c_buf_p now points to the character we want to return. |
| 4589 | * If this occurs *before* the EOB characters, then it's a |
| 4590 | * valid NUL; if not, then we've hit the end of the buffer. |
| 4591 | */ |
| 4592 | if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) |
| 4593 | /* This was really a NUL. */ |
| 4594 | *(yy_c_buf_p) = '\0'; |
| 4595 | |
| 4596 | else |
| 4597 | { /* need more input */ |
| 4598 | int offset = (yy_c_buf_p) - (yytext_ptr); |
| 4599 | ++(yy_c_buf_p); |
| 4600 | |
| 4601 | switch ( yy_get_next_buffer( ) ) |
| 4602 | { |
| 4603 | case EOB_ACT_LAST_MATCH: |
| 4604 | /* This happens because yy_g_n_b() |
| 4605 | * sees that we've accumulated a |
| 4606 | * token and flags that we need to |
| 4607 | * try matching the token before |
| 4608 | * proceeding. But for input(), |
| 4609 | * there's no matching to consider. |
| 4610 | * So convert the EOB_ACT_LAST_MATCH |
| 4611 | * to EOB_ACT_END_OF_FILE. |
| 4612 | */ |
| 4613 | |
| 4614 | /* Reset buffer status. */ |
| 4615 | msyyrestart(msyyin ); |
| 4616 | |
| 4617 | /*FALLTHROUGH*/ |
| 4618 | |
| 4619 | case EOB_ACT_END_OF_FILE: |
| 4620 | { |
| 4621 | if ( msyywrap( ) ) |
| 4622 | return EOF; |
| 4623 | |
| 4624 | if ( ! (yy_did_buffer_switch_on_eof) ) |
| 4625 | YY_NEW_FILE; |
| 4626 | #ifdef __cplusplus |
| 4627 | return yyinput(); |
| 4628 | #else |
| 4629 | return input(); |
| 4630 | #endif |
| 4631 | } |
| 4632 | |
| 4633 | case EOB_ACT_CONTINUE_SCAN: |
| 4634 | (yy_c_buf_p) = (yytext_ptr) + offset; |
| 4635 | break; |
nothing calls this directly
no test coverage detected