📄 skel.c
字号:
"#endif",
" }",
"",
" case EOB_ACT_CONTINUE_SCAN:",
" yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;",
" break;",
"",
" case EOB_ACT_LAST_MATCH:",
"#ifdef __cplusplus",
" YY_FATAL_ERROR(",
" \"unexpected last match in yyinput()\" );",
"#else",
" YY_FATAL_ERROR(",
" \"unexpected last match in input()\" );",
"#endif",
" }",
" }",
" }",
"",
" c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */",
" *yy_c_buf_p = '\\0'; /* preserve yytext */",
" yy_hold_char = *++yy_c_buf_p;",
"",
"%% update BOL and yylineno",
"",
" return c;",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"void yyrestart( FILE *input_file )",
"#else",
"void yyrestart( input_file )",
"FILE *input_file;",
"#endif",
"%+",
"void yyFlexLexer::yyrestart( istream* input_file )",
"%*",
" {",
" if ( ! yy_current_buffer )",
" yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );",
"",
" yy_init_buffer( yy_current_buffer, input_file );",
" yy_load_buffer_state();",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )",
"#else",
"void yy_switch_to_buffer( new_buffer )",
"YY_BUFFER_STATE new_buffer;",
"#endif",
"%+",
"void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )",
"%*",
" {",
" if ( yy_current_buffer == new_buffer )",
" return;",
"",
" if ( yy_current_buffer )",
" {",
" /* Flush out information for old buffer. */",
" *yy_c_buf_p = yy_hold_char;",
" yy_current_buffer->yy_buf_pos = yy_c_buf_p;",
" yy_current_buffer->yy_n_chars = yy_n_chars;",
" }",
"",
" yy_current_buffer = new_buffer;",
" yy_load_buffer_state();",
"",
" /* We don't actually know whether we did this switch during",
" * EOF (yywrap()) processing, but the only time this flag",
" * is looked at is after yywrap() is called, so it's safe",
" * to go ahead and always set it.",
" */",
" yy_did_buffer_switch_on_eof = 1;",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"void yy_load_buffer_state( void )",
"#else",
"void yy_load_buffer_state()",
"#endif",
"%+",
"void yyFlexLexer::yy_load_buffer_state()",
"%*",
" {",
" yy_n_chars = yy_current_buffer->yy_n_chars;",
" yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;",
" yyin = yy_current_buffer->yy_input_file;",
" yy_hold_char = *yy_c_buf_p;",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )",
"#else",
"YY_BUFFER_STATE yy_create_buffer( file, size )",
"FILE *file;",
"int size;",
"#endif",
"%+",
"YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( istream* file, int size )",
"%*",
" {",
" YY_BUFFER_STATE b;",
"",
" b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );",
" if ( ! b )",
" YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );",
"",
" b->yy_buf_size = size;",
"",
" /* yy_ch_buf has to be 2 characters longer than the size given because",
" * we need to put in 2 end-of-buffer characters.",
" */",
" b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );",
" if ( ! b->yy_ch_buf )",
" YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );",
"",
" b->yy_is_our_buffer = 1;",
"",
" yy_init_buffer( b, file );",
"",
" return b;",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"void yy_delete_buffer( YY_BUFFER_STATE b )",
"#else",
"void yy_delete_buffer( b )",
"YY_BUFFER_STATE b;",
"#endif",
"%+",
"void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )",
"%*",
" {",
" if ( ! b )",
" return;",
"",
" if ( b == yy_current_buffer )",
" yy_current_buffer = (YY_BUFFER_STATE) 0;",
"",
" if ( b->yy_is_our_buffer )",
" yy_flex_free( (void *) b->yy_ch_buf );",
"",
" yy_flex_free( (void *) b );",
" }",
"",
"",
"%-",
"#ifndef YY_ALWAYS_INTERACTIVE",
"#ifndef YY_NEVER_INTERACTIVE",
"extern int isatty YY_PROTO(( int ));",
"#endif",
"#endif",
"",
"#ifdef YY_USE_PROTOS",
"void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )",
"#else",
"void yy_init_buffer( b, file )",
"YY_BUFFER_STATE b;",
"FILE *file;",
"#endif",
"",
"%+",
"extern \"C\" int isatty YY_PROTO(( int ));",
"void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, istream* file )",
"%*",
"",
" {",
" yy_flush_buffer( b );",
"",
" b->yy_input_file = file;",
" b->yy_fill_buffer = 1;",
"",
"%-",
"#if YY_ALWAYS_INTERACTIVE",
" b->yy_is_interactive = 1;",
"#else",
"#if YY_NEVER_INTERACTIVE",
" b->yy_is_interactive = 0;",
"#else",
" b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;",
"#endif",
"#endif",
"%+",
" b->yy_is_interactive = 0;",
"%*",
" }",
"",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"void yy_flush_buffer( YY_BUFFER_STATE b )",
"#else",
"void yy_flush_buffer( b )",
"YY_BUFFER_STATE b;",
"#endif",
"",
"%+",
"void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )",
"%*",
" {",
" b->yy_n_chars = 0;",
"",
" /* We always need two end-of-buffer characters. The first causes",
" * a transition to the end-of-buffer state. The second causes",
" * a jam in that state.",
" */",
" b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;",
" b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;",
"",
" b->yy_buf_pos = &b->yy_ch_buf[0];",
"",
" b->yy_at_bol = 1;",
" b->yy_buffer_status = YY_BUFFER_NEW;",
"",
" if ( b == yy_current_buffer )",
" yy_load_buffer_state();",
" }",
"%*",
"",
"",
"#ifndef YY_NO_SCAN_BUFFER",
"%-",
"#ifdef YY_USE_PROTOS",
"YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )",
"#else",
"YY_BUFFER_STATE yy_scan_buffer( base, size )",
"char *base;",
"yy_size_t size;",
"#endif",
" {",
" YY_BUFFER_STATE b;",
"",
" if ( size < 2 ||",
" base[size-2] != YY_END_OF_BUFFER_CHAR ||",
" base[size-1] != YY_END_OF_BUFFER_CHAR )",
" /* They forgot to leave room for the EOB's. */",
" return 0;",
"",
" b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );",
" if ( ! b )",
" YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_buffer()\" );",
"",
" b->yy_buf_size = size - 2; /* \"- 2\" to take care of EOB's */",
" b->yy_buf_pos = b->yy_ch_buf = base;",
" b->yy_is_our_buffer = 0;",
" b->yy_input_file = 0;",
" b->yy_n_chars = b->yy_buf_size;",
" b->yy_is_interactive = 0;",
" b->yy_at_bol = 1;",
" b->yy_fill_buffer = 0;",
" b->yy_buffer_status = YY_BUFFER_NEW;",
"",
" yy_switch_to_buffer( b );",
"",
" return b;",
" }",
"%*",
"#endif",
"",
"",
"#ifndef YY_NO_SCAN_STRING",
"%-",
"#ifdef YY_USE_PROTOS",
"YY_BUFFER_STATE yy_scan_string( yyconst char *str )",
"#else",
"YY_BUFFER_STATE yy_scan_string( str )",
"yyconst char *str;",
"#endif",
" {",
" int len;",
" for ( len = 0; str[len]; ++len )",
" ;",
"",
" return yy_scan_bytes( str, len );",
" }",
"%*",
"#endif",
"",
"",
"#ifndef YY_NO_SCAN_BYTES",
"%-",
"#ifdef YY_USE_PROTOS",
"YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )",
"#else",
"YY_BUFFER_STATE yy_scan_bytes( bytes, len )",
"yyconst char *bytes;",
"int len;",
"#endif",
" {",
" YY_BUFFER_STATE b;",
" char *buf;",
" yy_size_t n;",
" int i;",
"",
" /* Get memory for full buffer, including space for trailing EOB's. */",
" n = len + 2;",
" buf = (char *) yy_flex_alloc( n );",
" if ( ! buf )",
" YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_bytes()\" );",
"",
" for ( i = 0; i < len; ++i )",
" buf[i] = bytes[i];",
"",
" buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;",
"",
" b = yy_scan_buffer( buf, n );",
" if ( ! b )",
" YY_FATAL_ERROR( \"bad buffer in yy_scan_bytes()\" );",
"",
" /* It's okay to grow etc. this buffer, and we should throw it",
" * away when we're done.",
" */",
" b->yy_is_our_buffer = 1;",
"",
" return b;",
" }",
"%*",
"#endif",
"",
"",
"#ifndef YY_NO_PUSH_STATE",
"%-",
"#ifdef YY_USE_PROTOS",
"static void yy_push_state( int new_state )",
"#else",
"static void yy_push_state( new_state )",
"int new_state;",
"#endif",
"%+",
"void yyFlexLexer::yy_push_state( int new_state )",
"%*",
" {",
" if ( yy_start_stack_ptr >= yy_start_stack_depth )",
" {",
" yy_size_t new_size;",
"",
" yy_start_stack_depth += YY_START_STACK_INCR;",
" new_size = yy_start_stack_depth * sizeof( int );",
"",
" if ( ! yy_start_stack )",
" yy_start_stack = (int *) yy_flex_alloc( new_size );",
"",
" else",
" yy_start_stack = (int *) yy_flex_realloc(",
" (void *) yy_start_stack, new_size );",
"",
" if ( ! yy_start_stack )",
" YY_FATAL_ERROR(",
" \"out of memory expanding start-condition stack\" );",
" }",
"",
" yy_start_stack[yy_start_stack_ptr++] = YY_START;",
"",
" BEGIN(new_state);",
" }",
"#endif",
"",
"",
"#ifndef YY_NO_POP_STATE",
"%-",
"static void yy_pop_state()",
"%+",
"void yyFlexLexer::yy_pop_state()",
"%*",
" {",
" if ( --yy_start_stack_ptr < 0 )",
" YY_FATAL_ERROR( \"start-condition stack underflow\" );",
"",
" BEGIN(yy_start_stack[yy_start_stack_ptr]);",
" }",
"#endif",
"",
"",
"#ifndef YY_NO_TOP_STATE",
"%-",
"static int yy_top_state()",
"%+",
"int yyFlexLexer::yy_top_state()",
"%*",
" {",
" return yy_start_stack[yy_start_stack_ptr - 1];",
" }",
"#endif",
"",
"#ifndef YY_EXIT_FAILURE",
"#define YY_EXIT_FAILURE 2",
"#endif",
"",
"%-",
"#ifdef YY_USE_PROTOS",
"static void yy_fatal_error( yyconst char msg[] )",
"#else",
"static void yy_fatal_error( msg )",
"char msg[];",
"#endif",
" {",
" (void) fprintf( stderr, \"%s\\n\", msg );",
" exit( YY_EXIT_FAILURE );",
" }",
"",
"%+",
"",
"void yyFlexLexer::LexerError( yyconst char msg[] )",
" {",
" cerr << msg << '\\n';",
" exit( YY_EXIT_FAILURE );",
" }",
"%*",
"",
"",
"/* Redefine yyless() so it works in section 3 code. */",
"",
"#undef yyless",
"#define yyless(n) \\",
" do \\",
" { \\",
" /* Undo effects of setting up yytext. */ \\",
" yytext[yyleng] = yy_hold_char; \\",
" yy_c_buf_p = yytext + n - YY_MORE_ADJ; \\",
" yy_hold_char = *yy_c_buf_p; \\",
" *yy_c_buf_p = '\\0'; \\",
" yyleng = n; \\",
" } \\",
" while ( 0 )",
"",
"",
"/* Internal utility routines. */",
"",
"#ifndef yytext_ptr",
"#ifdef YY_USE_PROTOS",
"static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )",
"#else",
"static void yy_flex_strncpy( s1, s2, n )",
"char *s1;",
"yyconst char *s2;",
"int n;",
"#endif",
" {",
" register int i;",
" for ( i = 0; i < n; ++i )",
" s1[i] = s2[i];",
" }",
"#endif",
"",
"",
"#ifdef YY_USE_PROTOS",
"static void *yy_flex_alloc( yy_size_t size )",
"#else",
"static void *yy_flex_alloc( size )",
"yy_size_t size;",
"#endif",
" {",
" return (void *) malloc( size );",
" }",
"",
"#ifdef YY_USE_PROTOS",
"static void *yy_flex_realloc( void *ptr, yy_size_t size )",
"#else",
"static void *yy_flex_realloc( ptr, size )",
"void *ptr;",
"yy_size_t size;",
"#endif",
" {",
" /* The cast to (char *) in the following accommodates both",
" * implementations that use char* generic pointers, and those",
" * that use void* generic pointers. It works with the latter",
" * because both ANSI C and C++ allow castless assignment from",
" * any pointer type to void*, and deal with argument conversions",
" * as though doing an assignment.",
" */",
" return (void *) realloc( (char *) ptr, size );",
" }",
"",
"#ifdef YY_USE_PROTOS",
"static void yy_flex_free( void *ptr )",
"#else",
"static void yy_flex_free( ptr )",
"void *ptr;",
"#endif",
" {",
" free( ptr );",
" }",
"",
"#if YY_MAIN",
"int main()",
" {",
" yylex();",
" return 0;",
" }",
"#endif",
0
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -