亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lexer.c

?? 構造C--語言的詞法分析器。將一個C--語言程序分割成token串的序列。處理C--語言的所有token類型。
?? C
?? 第 1 頁 / 共 3 頁
字號:
	/* undo effects of setting up yytext */
	*yy_cp = yy_hold_char;

	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
		{ /* need to shift things up to make room */
		/* +2 for EOB chars. */
		register int number_to_move = yy_n_chars + 2;
		register char *dest = &yy_current_buffer->yy_ch_buf[
					yy_current_buffer->yy_buf_size + 2];
		register char *source =
				&yy_current_buffer->yy_ch_buf[number_to_move];

		while ( source > yy_current_buffer->yy_ch_buf )
			*--dest = *--source;

		yy_cp += (int) (dest - source);
		yy_bp += (int) (dest - source);
		yy_n_chars = yy_current_buffer->yy_buf_size;

		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
		}

	*--yy_cp = (char) c;


	yytext_ptr = yy_bp;
	yy_hold_char = *yy_cp;
	yy_c_buf_p = yy_cp;
	}
#endif	/* ifndef YY_NO_UNPUT */


#ifdef __cplusplus
static int yyinput()
#else
static int input()
#endif
	{
	int c;

	*yy_c_buf_p = yy_hold_char;

	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
		{
		/* yy_c_buf_p now points to the character we want to return.
		 * If this occurs *before* the EOB characters, then it's a
		 * valid NUL; if not, then we've hit the end of the buffer.
		 */
		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
			/* This was really a NUL. */
			*yy_c_buf_p = '\0';

		else
			{ /* need more input */
			yytext_ptr = yy_c_buf_p;
			++yy_c_buf_p;

			switch ( yy_get_next_buffer() )
				{
				case EOB_ACT_END_OF_FILE:
					{
					if ( yywrap() )
						{
						yy_c_buf_p =
						yytext_ptr + YY_MORE_ADJ;
						return EOF;
						}

					if ( ! yy_did_buffer_switch_on_eof )
						YY_NEW_FILE;
#ifdef __cplusplus
					return yyinput();
#else
					return input();
#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;


	return c;
	}


#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
	{
	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
	{
	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
	{
	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 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
	{
	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


	{
	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
	}


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#endif

	{
	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
	{
	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()
	{
	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()
	{
	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 );
	}



/* 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
#line 72 "lexer.l"


error(char *m)
{
     fprintf(stderr,"%s\n",m);
     exit(1);         /*非正常終止*/
}

void copyright()
{
	printf("*********************************Lexer********************************\n\n");

    printf("Author Mersara\n");
    printf("Usage:lexer.exe source.txt/source.c destination.txt\n\n");

	printf("***************************Copyright (C) 2007***************************\n"); 
}

int main(int argc,char *argv[]){
   if(argc==1)  copyright();   //當命令行不帶參數時,輸出提示信息 
	else{
   if(argc==3){
      if((yyin=fopen(argv[1],"r"))==NULL){
 	       printf("can't open %s\n",argv[1]);
	       exit(0);
	       }
	    if((yyout=fopen(argv[2],"w"))==NULL){
	       printf("can't open %s\n",argv[2]);
	       exit(0);
	       }
      
  copyright();
  yylex();  //int yylex(void):調用掃描器件,返回標記
  return 0; 
   }
  else
     printf("Common Error!\n");
   }
   
}

int yywrap(){return 1;}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜激情电影| 6080亚洲精品一区二区| 婷婷开心激情综合| 亚洲综合在线第一页| 一区二区视频免费在线观看| 成人欧美一区二区三区| 亚洲视频一区二区在线| 亚洲欧美国产毛片在线| 亚洲精品精品亚洲| 亚洲h在线观看| 日韩电影一区二区三区四区| 免费看欧美女人艹b| 国产在线播放一区| 国产成人免费网站| www.久久精品| 欧美日韩国产经典色站一区二区三区| 欧美日韩免费不卡视频一区二区三区| 欧美理论电影在线| 欧美电视剧免费观看| 久久久www免费人成精品| 中文字幕二三区不卡| 亚洲日本一区二区| 日韩精品1区2区3区| 寂寞少妇一区二区三区| 成人高清av在线| 欧美专区亚洲专区| 精品日韩99亚洲| 国产精品家庭影院| 日韩精品一二三四| 国产黑丝在线一区二区三区| 日本精品视频一区二区| 欧美哺乳videos| 亚洲欧洲国产日本综合| 日韩电影在线一区| www.欧美日韩国产在线| 欧美一区二区三区视频在线| 欧美激情一区二区三区| 性做久久久久久| 成人开心网精品视频| 欧美放荡的少妇| 亚洲国产高清不卡| 蜜臀av亚洲一区中文字幕| 99麻豆久久久国产精品免费优播| 欧美精品乱码久久久久久按摩| 日韩欧美卡一卡二| 亚洲高清免费视频| 成人免费视频网站在线观看| 91精品国产综合久久久蜜臀粉嫩| 欧美高清在线一区二区| 开心九九激情九九欧美日韩精美视频电影| 成人av小说网| 精品三级在线观看| 日本中文一区二区三区| 91小宝寻花一区二区三区| 26uuu国产日韩综合| 天天爽夜夜爽夜夜爽精品视频| 国产高清在线精品| 欧美一区二区三区思思人| 亚洲一区二区三区在线看| 成人短视频下载| 久久久99免费| 黄色日韩网站视频| 欧美va亚洲va| 久久99精品久久只有精品| 欧美美女激情18p| 亚洲最新在线观看| 91色综合久久久久婷婷| 国产精品国产自产拍高清av| 国产一区二区三区久久悠悠色av| 91精品国产欧美一区二区| 亚洲第一福利视频在线| 欧美在线观看18| 亚洲国产精品久久久男人的天堂| 97久久超碰国产精品电影| 国产精品入口麻豆原神| 成人一区二区在线观看| 久久精品亚洲一区二区三区浴池| 全国精品久久少妇| 日韩一二三四区| 日韩成人免费在线| 亚洲精品在线观看视频| 麻豆一区二区在线| 久久精品一区二区三区不卡| 国产成人在线看| 亚洲国产精品v| 色婷婷狠狠综合| 亚洲老妇xxxxxx| 欧美日韩精品一区视频| 美女国产一区二区| 久久精品免视看| 色综合久久久久网| 日韩精品91亚洲二区在线观看| 精品国产乱子伦一区| 福利一区二区在线| 亚洲一区二区三区四区在线| 91精品久久久久久蜜臀| 国产精品一区二区不卡| 国产精品福利一区| 欧美在线综合视频| 久久69国产一区二区蜜臀| 国产精品污www在线观看| 日本高清不卡一区| 毛片不卡一区二区| 国产精品久久久久7777按摩| 欧美在线高清视频| 国产精品综合久久| 一区二区三区免费观看| 日韩欧美你懂的| 91在线视频观看| 久久激情五月激情| 亚洲男女一区二区三区| 3d成人h动漫网站入口| 国产成人在线观看| 青青草97国产精品免费观看无弹窗版| 2024国产精品| 欧美一区二区精品久久911| 成人av网站在线| 蜜臀av性久久久久av蜜臀妖精| 国产精品久久免费看| 日韩欧美一区二区免费| 色欧美片视频在线观看在线视频| 毛片av中文字幕一区二区| 洋洋av久久久久久久一区| 国产欧美精品一区| 日韩欧美一级二级| 欧美日韩视频在线第一区 | 国产精品色哟哟| 欧美日韩高清一区二区| 不卡的av网站| 国产美女久久久久| 麻豆国产精品一区二区三区| 一区二区三区在线高清| 国产精品欧美极品| 国产午夜精品久久久久久久 | 国产在线一区二区| 亚洲一区欧美一区| 亚洲乱码国产乱码精品精98午夜 | 日本亚洲视频在线| 亚洲精品视频在线观看网站| 亚洲国产高清aⅴ视频| 久久网这里都是精品| 91麻豆精品国产无毒不卡在线观看| 99re成人在线| 色综合天天综合狠狠| 成人永久免费视频| 国产成人av资源| 国产精品99久久久久久有的能看| 日本中文字幕一区二区有限公司| 亚洲自拍偷拍网站| 亚洲一本大道在线| 亚洲第一激情av| 午夜视频一区在线观看| 香蕉影视欧美成人| 天天影视色香欲综合网老头| 天天亚洲美女在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩av网站免费在线| 日韩成人一级大片| 久久99精品一区二区三区| 国产一区高清在线| 国产精品亚洲成人| 不卡在线观看av| 91国产视频在线观看| 欧美专区亚洲专区| 日韩西西人体444www| 久久久久97国产精华液好用吗| 国产女同互慰高潮91漫画| 中文字幕一区二区三| 亚洲国产精品久久一线不卡| 麻豆精品一区二区| 国产精品99久久久| 99久久精品国产观看| 欧美性欧美巨大黑白大战| 欧美一区二区三区播放老司机| 欧美zozozo| 日韩一区欧美小说| 青娱乐精品在线视频| 国产精品88av| 日本韩国一区二区三区| 日韩一区二区三区电影| 国产日韩欧美制服另类| 亚洲一区欧美一区| 国产高清不卡一区二区| 色综合激情五月| 欧美va日韩va| 亚洲色图第一区| 欧美aⅴ一区二区三区视频| 国产精品亚洲第一区在线暖暖韩国| 97se亚洲国产综合在线| 欧美电影免费观看完整版| 中文字幕一区视频| 久久国产免费看| 欧洲另类一二三四区| 久久老女人爱爱| 视频一区二区三区入口| 成人av网站在线观看免费| 精品毛片乱码1区2区3区| 亚洲激情六月丁香| 成人av电影在线播放| 日韩精品一区二区三区视频|