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

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

?? lexer.c

?? 構造C--語言的詞法分析器。將一個C--語言程序分割成token串的序列。處理C--語言的所有token類型。
?? C
?? 第 1 頁 / 共 3 頁
字號:

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

/* Code executed at the beginning of each rule, after yytext and yyleng
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

#define YY_RULE_SETUP \
	YY_USER_ACTION

YY_DECL
	{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;

#line 51 "lexer.l"

#line 607 "lex.yy.c"

	if ( yy_init )
		{
		yy_init = 0;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

		if ( ! yy_start )
			yy_start = 1;	/* first start state */

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

		if ( ! yy_current_buffer )
			yy_current_buffer =
				yy_create_buffer( yyin, YY_BUF_SIZE );

		yy_load_buffer_state();
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = yy_c_buf_p;

		/* Support of yytext. */
		*yy_cp = yy_hold_char;

		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;

		yy_current_state = yy_start;
yy_match:
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			if ( yy_accept[yy_current_state] )
				{
				yy_last_accepting_state = yy_current_state;
				yy_last_accepting_cpos = yy_cp;
				}
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
				{
				yy_current_state = (int) yy_def[yy_current_state];
				if ( yy_current_state >= 80 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			++yy_cp;
			}
		while ( yy_base[yy_current_state] != 128 );

yy_find_action:
		yy_act = yy_accept[yy_current_state];
		if ( yy_act == 0 )
			{ /* have to back up */
			yy_cp = yy_last_accepting_cpos;
			yy_current_state = yy_last_accepting_state;
			yy_act = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;


do_action:	/* This label is used only to access EOF actions. */


		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = yy_hold_char;
			yy_cp = yy_last_accepting_cpos;
			yy_current_state = yy_last_accepting_state;
			goto yy_find_action;

case 1:
YY_RULE_SETUP
#line 52 "lexer.l"
{ nline++;}
	YY_BREAK
case 2:
YY_RULE_SETUP
#line 53 "lexer.l"
{/*對預處理和注釋部分沒有動作和返回值*/}
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 54 "lexer.l"
{/*對空白串沒有動作和返回值*/}
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 55 "lexer.l"
{ /*yylval._ident = insert_id(yytext);*/fprintf(yyout,"NUM %s\n",yytext);}
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 56 "lexer.l"
{fprintf(yyout,"STRING %s\n",yytext);}
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 57 "lexer.l"
{fprintf(yyout,"CONST_CHAR %s\n",yytext);}
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 58 "lexer.l"
{fprintf(yyout,"STDCALL %s\n",yytext);}
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 59 "lexer.l"
{fprintf(yyout,"CDECL %s\n",yytext);}
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 60 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 61 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 62 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 63 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 64 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 65 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 66 "lexer.l"
{fprintf(yyout,"KEYWORD %s\n",yytext);}
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 67 "lexer.l"
{fprintf(yyout,"PUN %s\n",yytext);}
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 68 "lexer.l"
{ /*yylval._ident = insert_id(yytext); */fprintf(yyout,"ID %s\n",yytext);}
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 71 "lexer.l"
{ /*return yytext[0];*/ }       
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 72 "lexer.l"
ECHO;
	YY_BREAK
#line 785 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
	yyterminate();

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = yy_hold_char;

		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed yyin at a new source and called
			 * yylex().  If so, then we have to assure
			 * consistency between yy_current_buffer and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			yy_n_chars = yy_current_buffer->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state();

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = yytext_ptr + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++yy_c_buf_p;
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
				yy_cp = yy_c_buf_p;
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer() )
			{
			case EOB_ACT_END_OF_FILE:
				{
				yy_did_buffer_switch_on_eof = 0;

				if ( yywrap() )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * yytext, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! yy_did_buffer_switch_on_eof )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				yy_c_buf_p =
					yytext_ptr + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				yy_c_buf_p =
				&yy_current_buffer->yy_ch_buf[yy_n_chars];

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
	} /* end of yylex */


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()
	{
	register char *dest = yy_current_buffer->yy_ch_buf;
	register char *source = yytext_ptr;
	register int number_to_move, i;
	int ret_val;

	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( yy_current_buffer->yy_fill_buffer == 0 )
		{ /* Don't try to fill the buffer, so this is an EOF. */
		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
			{
			/* We matched a singled characater, the EOB, so
			 * treat this as a final EOF.
			 */
			return EOB_ACT_END_OF_FILE;
			}

		else
			{
			/* We matched some text prior to the EOB, first
			 * process it.
			 */
			return EOB_ACT_LAST_MATCH;
			}
		}

	/* Try to read more data. */

	/* First move last chars to start of buffer. */
	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;

	for ( i = 0; i < number_to_move; ++i )
		*(dest++) = *(source++);

	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
		/* don't do the read, it's not guaranteed to return an EOF,
		 * just force an EOF
		 */
		yy_n_chars = 0;

	else
		{
		int num_to_read =
			yy_current_buffer->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

			/* just a shorter name for the current buffer */
			YY_BUFFER_STATE b = yy_current_buffer;

			int yy_c_buf_p_offset =
				(int) (yy_c_buf_p - b->yy_ch_buf);

			if ( b->yy_is_our_buffer )
				{
				int new_size = b->yy_buf_size * 2;

				if ( new_size <= 0 )
					b->yy_buf_size += b->yy_buf_size / 8;
				else
					b->yy_buf_size *= 2;

				b->yy_ch_buf = (char *)
					/* Include room in for 2 EOB chars. */
					yy_flex_realloc( (void *) b->yy_ch_buf,
							 b->yy_buf_size + 2 );
				}
			else
				/* Can't grow it, we don't own it. */
				b->yy_ch_buf = 0;

			if ( ! b->yy_ch_buf )
				YY_FATAL_ERROR(
				"fatal error - scanner input buffer overflow" );

			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = yy_current_buffer->yy_buf_size -
						number_to_move - 1;
#endif
			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

		/* Read in more data. */
		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
			yy_n_chars, num_to_read );
		}

	if ( yy_n_chars == 0 )
		{
		if ( number_to_move == YY_MORE_ADJ )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			yyrestart( yyin );
			}

		else
			{
			ret_val = EOB_ACT_LAST_MATCH;
			yy_current_buffer->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	yy_n_chars += number_to_move;
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];

	return ret_val;
	}


/* yy_get_previous_state - get the state just before the EOB char was reached */

static yy_state_type yy_get_previous_state()
	{
	register yy_state_type yy_current_state;
	register char *yy_cp;

	yy_current_state = yy_start;

	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
		{
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		if ( yy_accept[yy_current_state] )
			{
			yy_last_accepting_state = yy_current_state;
			yy_last_accepting_cpos = yy_cp;
			}
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
			{
			yy_current_state = (int) yy_def[yy_current_state];
			if ( yy_current_state >= 80 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		}

	return yy_current_state;
	}


/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *	next_state = yy_try_NUL_trans( current_state );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
	{
	register int yy_is_jam;
	register char *yy_cp = yy_c_buf_p;

	register YY_CHAR yy_c = 1;
	if ( yy_accept[yy_current_state] )
		{
		yy_last_accepting_state = yy_current_state;
		yy_last_accepting_cpos = yy_cp;
		}
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
		{
		yy_current_state = (int) yy_def[yy_current_state];
		if ( yy_current_state >= 80 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 79);

	return yy_is_jam ? 0 : yy_current_state;
	}


#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
	{
	register char *yy_cp = yy_c_buf_p;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩经典中文字幕一区| 色欲综合视频天天天| 99久久精品久久久久久清纯| 这里只有精品免费| 亚洲欧洲一区二区在线播放| 日本不卡123| 91啪亚洲精品| 久久久欧美精品sm网站| 亚洲成av人片一区二区梦乃| 99视频在线观看一区三区| 精品久久久久久无| 日本成人在线看| 欧美日韩精品高清| 亚洲综合一区二区精品导航| 波多野结衣亚洲一区| 久久影视一区二区| 六月丁香婷婷色狠狠久久| 欧美性欧美巨大黑白大战| 亚洲免费观看高清| 99国产精品久| 国产精品国产馆在线真实露脸| 久久99国内精品| 欧美一级视频精品观看| 日韩国产一区二| 欧美精品久久久久久久久老牛影院| 日韩伦理免费电影| 99精品国产一区二区三区不卡| 久久九九久久九九| 国产成人精品一区二区三区四区| 欧美成人女星排名| 国产一区二区福利视频| 欧美变态凌虐bdsm| 韩国成人福利片在线播放| 日韩欧美国产一区二区在线播放| 偷窥少妇高潮呻吟av久久免费| 欧美视频一区二区| 午夜久久电影网| 日韩午夜av一区| 国产一区二区三区日韩| 久久综合久久综合久久| 国产成人一区在线| 国产精品免费网站在线观看| 99免费精品在线| 一区二区三区欧美日韩| 欧美性大战久久久久久久蜜臀| 亚州成人在线电影| 日韩一区二区三区在线| 国产综合久久久久影院| 国产亚洲综合色| 色综合激情久久| 日韩高清在线一区| 久久综合久久综合亚洲| 成人精品小蝌蚪| 亚洲高清免费视频| 精品国产一区二区三区不卡| 狠狠色丁香婷综合久久| 国产精品第五页| 欧美电影一区二区| 国产激情精品久久久第一区二区| 亚洲天堂久久久久久久| 91精品国产乱| 成人aa视频在线观看| 午夜欧美视频在线观看| 久久久久99精品一区| 欧美亚洲国产bt| 精品一区中文字幕| 亚洲天天做日日做天天谢日日欢| 欧美日韩精品一区二区| 国产成人av资源| 日韩电影一区二区三区| 欧美高清在线精品一区| 欧美男人的天堂一二区| 国产a区久久久| 婷婷综合久久一区二区三区| 国产精品女主播在线观看| 91精品国产免费| 色综合咪咪久久| 国产高清一区日本| 亚洲r级在线视频| 国产精品久久久99| 精品999在线播放| 在线观看亚洲专区| 成人午夜电影小说| 精品在线视频一区| 午夜电影网一区| 亚洲免费观看在线观看| 国产欧美综合在线观看第十页| 欧美久久婷婷综合色| 93久久精品日日躁夜夜躁欧美| 国产一区视频网站| 美女一区二区久久| 亚洲永久精品大片| 亚洲另类春色国产| 国产精品伦理在线| 欧美激情一区二区三区不卡| 欧美大片国产精品| 69av一区二区三区| 欧美剧情片在线观看| 在线观看国产一区二区| 99re8在线精品视频免费播放| 极品美女销魂一区二区三区| 亚洲成人午夜电影| 亚洲精品国产视频| 亚洲欧美一区二区三区国产精品 | 国产成人综合在线播放| 日本伊人午夜精品| 无码av免费一区二区三区试看| 亚洲精品亚洲人成人网在线播放| 亚洲国产成人一区二区三区| 精品对白一区国产伦| 欧美一区二区三级| 欧美一区二区三区四区高清| 4438x亚洲最大成人网| 欧美性淫爽ww久久久久无| 成人免费看视频| 国产丶欧美丶日本不卡视频| 国产美女在线精品| 国产一区二区三区在线看麻豆| 青青草国产精品亚洲专区无| 日本中文字幕一区| 久久精品国产99国产精品| 久久99精品一区二区三区三区| 久久爱www久久做| 国产精品一区二区不卡| 成人午夜视频免费看| 成人一二三区视频| thepron国产精品| 色婷婷av一区| 欧美一区二区三区不卡| 欧美人妇做爰xxxⅹ性高电影| 在线成人免费视频| 精品久久人人做人人爽| 国产欧美日韩在线看| 亚洲色图一区二区| 婷婷综合在线观看| 国产一区二区三区四区五区入口 | 日本伊人精品一区二区三区观看方式| 亚洲综合久久av| 奇米色777欧美一区二区| 国产一区二区三区视频在线播放| 成人三级在线视频| 在线观看三级视频欧美| 欧美mv日韩mv国产网站app| 久久免费电影网| 一区二区三区四区乱视频| 蜜桃视频一区二区三区| 成人性生交大片免费看在线播放| 一本大道久久a久久精品综合| 欧美一级理论性理论a| 国产精品麻豆视频| 全国精品久久少妇| 99免费精品在线| 日韩免费看网站| 亚洲另类在线制服丝袜| 国产综合一区二区| 欧美午夜一区二区| 国产视频一区二区三区在线观看| 亚洲一区影音先锋| 懂色av中文一区二区三区| 欧美日韩一卡二卡三卡| 亚洲国产精品成人久久综合一区| 亚洲国产精品久久人人爱蜜臀| 韩国成人在线视频| 欧美日韩在线播放三区四区| 久久久精品国产99久久精品芒果| 亚洲国产另类精品专区| 成人爽a毛片一区二区免费| 欧美日韩一卡二卡三卡| 国产精品久久久久久亚洲伦| 久久不见久久见免费视频7| 色成年激情久久综合| 久久九九国产精品| 蜜桃av噜噜一区二区三区小说| 色婷婷亚洲综合| 国产精品国产三级国产普通话三级 | 亚洲电影视频在线| 国产精品888| 日韩视频一区二区三区| 一区二区三区四区在线播放| 粉嫩av一区二区三区| 欧美福利视频导航| 一个色在线综合| 92国产精品观看| 国产精品久久久久天堂| 国产91精品精华液一区二区三区 | 精品一区二区三区视频| 欧美精三区欧美精三区| 亚洲国产精品视频| 欧美在线观看一区二区| 国产精品美女久久久久久久久| 激情成人综合网| 精品国产乱码久久久久久久久| 天天综合色天天综合| 欧美日韩国产免费一区二区 | 亚洲图片另类小说| 成人激情开心网| 欧美国产日韩亚洲一区| 丰满少妇久久久久久久| 国产三级一区二区三区| 国产91精品精华液一区二区三区 |