src/tokenizer/token_lex.cc
int milkcat_yylex_destroy  (yyscan_t yyscanner)
{
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;

    /* Pop the buffer stack, destroying each element. */
	while(YY_CURRENT_BUFFER){
		milkcat_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		milkcat_yypop_buffer_state(yyscanner);
	}

	/* Destroy the stack itself. */
	milkcat_yyfree(yyg->yy_buffer_stack ,yyscanner);
	yyg->yy_buffer_stack = NULL;

    /* Destroy the start condition stack. */
        milkcat_yyfree(yyg->yy_start_stack ,yyscanner );
        yyg->yy_start_stack = NULL;

    /* Reset the globals. This is important in a non-reentrant scanner so the next time
     * milkcat_yylex() is called, initialization will occur. */
    yy_init_globals( yyscanner);

    /* Destroy the main struct (reentrant only). */
    milkcat_yyfree ( yyscanner , yyscanner );
    yyscanner = NULL;
    return 0;
}
/* milkcat_yylex_destroy is for both reentrant and non-reentrant scanners. */
milkcat_yylex_destroy is for both reentrant and non-reentrant scanners.
milkcat_yylex_destroy is for both reentrant and non - reentrant scanners .
int milkcat_yylex_destroy  (yyscan_t yyscanner)
{
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
	while(YY_CURRENT_BUFFER){
		milkcat_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		milkcat_yypop_buffer_state(yyscanner);
	}
	milkcat_yyfree(yyg->yy_buffer_stack ,yyscanner);
	yyg->yy_buffer_stack = NULL;
        milkcat_yyfree(yyg->yy_start_stack ,yyscanner );
        yyg->yy_start_stack = NULL;
    yy_init_globals( yyscanner);
    milkcat_yyfree ( yyscanner , yyscanner );
    yyscanner = NULL;
    return 0;
}
int milkcat_yylex_destroy ( yyscan_t yyscanner ) { struct yyguts_t * yyg = ( struct yyguts_t * ) yyscanner ; while ( YY_CURRENT_BUFFER ) { milkcat_yy_delete_buffer ( YY_CURRENT_BUFFER , yyscanner ) ; YY_CURRENT_BUFFER_LVALUE = NULL ; milkcat_yypop_buffer_state ( yyscanner ) ; } milkcat_yyfree ( yyg -> yy_buffer_stack , yyscanner ) ; yyg -> yy_buffer_stack = NULL ; milkcat_yyfree ( yyg -> yy_start_stack , yyscanner ) ; yyg -> yy_start_stack = NULL ; yy_init_globals ( yyscanner ) ; milkcat_yyfree ( yyscanner , yyscanner ) ; yyscanner = NULL ; return 0 ; }
milkcat_yylex_destroy is for both reentrant and non-reentrant scanners.
milkcat_yylex_destroy is for both reentrant and non - reentrant scanners .
/* Pop the buffer stack, destroying each element. */ /* Destroy the stack itself. */ /* Destroy the start condition stack. */ /* Reset the globals. This is important in a non-reentrant scanner so the next time
     * milkcat_yylex() is called, initialization will occur. */ /* Destroy the main struct (reentrant only). */