MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / yy_switch_to_buffer

Function yy_switch_to_buffer

src/parser/ds_lexer.cpp:4328–4358  ·  view source on GitHub ↗

Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */

Source from the content-addressed store, hash-verified

4326 * @param yyscanner The scanner object.
4327 */
4328 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
4329{
4330 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4331
4332 /* TODO. We should be able to replace this entire function body
4333 * with
4334 * yypop_buffer_state();
4335 * yypush_buffer_state(new_buffer);
4336 */
4337 yyensure_buffer_stack (yyscanner);
4338 if ( YY_CURRENT_BUFFER == new_buffer )
4339 return;
4340
4341 if ( YY_CURRENT_BUFFER )
4342 {
4343 /* Flush out information for old buffer. */
4344 *yyg->yy_c_buf_p = yyg->yy_hold_char;
4345 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4346 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4347 }
4348
4349 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4350 yy_load_buffer_state( yyscanner );
4351
4352 /* We don't actually know whether we did this switch during
4353 * EOF (yywrap()) processing, but the only time this flag
4354 * is looked at is after yywrap() is called, so it's safe
4355 * to go ahead and always set it.
4356 */
4357 yyg->yy_did_buffer_switch_on_eof = 1;
4358}
4359
4360static void yy_load_buffer_state (yyscan_t yyscanner)
4361{

Callers 1

yy_scan_bufferFunction · 0.70

Calls 2

yyensure_buffer_stackFunction · 0.70
yy_load_buffer_stateFunction · 0.70

Tested by

no test coverage detected