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

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

?? gen.c

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? C
?? 第 1 頁 / 共 3 頁
字號:
void make_tables()
	{
	register int i;
	int did_eof_rule = false;

	skelout();

	/* First, take care of YY_DO_BEFORE_ACTION depending on yymore
	 * being used.
	 */
	set_indent( 1 );

	if ( yymore_used )
		{
		indent_puts( "yytext_ptr -= yy_more_len; \\" );
		indent_puts( "yyleng = (int) (yy_cp - yytext_ptr); \\" );
		}

	else
		indent_puts( "yyleng = (int) (yy_cp - yy_bp); \\" );

	/* Now also deal with copying yytext_ptr to yytext if needed. */
	skelout();
	if ( yytext_is_array )
		{
		indent_puts( "if ( yyleng >= YYLMAX ) \\" );
		indent_up();
		indent_puts(
		"YY_FATAL_ERROR( \"token too large, exceeds YYLMAX\" ); \\" );
		indent_down();
		indent_puts(
		"yy_flex_strncpy( yytext, yytext_ptr, yyleng + 1 ); \\" );
		}

	set_indent( 0 );

	skelout();


	out_dec( "#define YY_NUM_RULES %d\n", num_rules );
	out_dec( "#define YY_END_OF_BUFFER %d\n", num_rules + 1 );

	if ( fullspd )
		{
		/* Need to define the transet type as a size large
		 * enough to hold the biggest offset.
		 */
		int total_table_size = tblend + numecs + 1;
		char *trans_offset_type =
			(total_table_size >= MAX_SHORT || long_align) ?
				"long" : "short";

		set_indent( 0 );
		indent_puts( "struct yy_trans_info" );
		indent_up();
		indent_puts( "{" ); 	/* } for vi */

		if ( long_align )
			indent_puts( "long yy_verify;" );
		else
			indent_puts( "short yy_verify;" );

		/* In cases where its sister yy_verify *is* a "yes, there is
		 * a transition", yy_nxt is the offset (in records) to the
		 * next state.  In most cases where there is no transition,
		 * the value of yy_nxt is irrelevant.  If yy_nxt is the -1th
		 * record of a state, though, then yy_nxt is the action number
		 * for that state.
		 */

		indent_put2s( "%s yy_nxt;", trans_offset_type );
		indent_puts( "};" );
		indent_down();
		}

	if ( fullspd )
		genctbl();
	else if ( fulltbl )
		genftbl();
	else
		gentabs();

	/* Definitions for backing up.  We don't need them if REJECT
	 * is being used because then we use an alternative backin-up
	 * technique instead.
	 */
	if ( num_backing_up > 0 && ! reject )
		{
		if ( ! C_plus_plus )
			{
			indent_puts(
			"static yy_state_type yy_last_accepting_state;" );
			indent_puts(
				"static char *yy_last_accepting_cpos;\n" );
			}
		}

	if ( nultrans )
		{
		out_str_dec( C_state_decl, "yy_NUL_trans", lastdfa + 1 );

		for ( i = 1; i <= lastdfa; ++i )
			{
			if ( fullspd )
				out_dec( "    &yy_transition[%d],\n", base[i] );
			else
				mkdata( nultrans[i] );
			}

		dataend();
		}

	if ( ddebug )
		{ /* Spit out table mapping rules to line numbers. */
		if ( ! C_plus_plus )
			{
			indent_puts( "extern int yy_flex_debug;" );
			indent_puts( "int yy_flex_debug = 1;\n" );
			}

		out_str_dec( long_align ? C_long_decl : C_short_decl,
			"yy_rule_linenum", num_rules );
		for ( i = 1; i < num_rules; ++i )
			mkdata( rule_linenum[i] );
		dataend();
		}

	if ( reject )
		{
		/* Declare state buffer variables. */
		if ( ! C_plus_plus )
			{
			outn(
	"static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;" );
			outn( "static char *yy_full_match;" );
			outn( "static int yy_lp;" );
			}

		if ( variable_trailing_context_rules )
			{
			if ( ! C_plus_plus )
				{
				outn(
				"static int yy_looking_for_trail_begin = 0;" );
				outn( "static int yy_full_lp;" );
				outn( "static int *yy_full_state;" );
				}

			out_hex( "#define YY_TRAILING_MASK 0x%x\n",
				(unsigned int) YY_TRAILING_MASK );
			out_hex( "#define YY_TRAILING_HEAD_MASK 0x%x\n",
				(unsigned int) YY_TRAILING_HEAD_MASK );
			}

		outn( "#define REJECT \\" );
		outn( "{ \\" );		/* } for vi */
		outn(
	"*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \\" );
		outn(
	"yy_cp = yy_full_match; /* restore poss. backed-over text */ \\" );

		if ( variable_trailing_context_rules )
			{
			outn(
		"yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \\" );
			outn(
		"yy_state_ptr = yy_full_state; /* restore orig. state */ \\" );
			outn(
	"yy_current_state = *yy_state_ptr; /* restore curr. state */ \\" );
			}

		outn( "++yy_lp; \\" );
		outn( "goto find_rule; \\" );
		/* { for vi */
		outn( "}" );
		}

	else
		{
		outn(
		"/* The intent behind this definition is that it'll catch" );
		outn( " * any uses of REJECT which flex missed." );
		outn( " */" );
		outn( "#define REJECT reject_used_but_not_detected" );
		}

	if ( yymore_used )
		{
		if ( ! C_plus_plus )
			{
			indent_puts( "static int yy_more_flag = 0;" );
			indent_puts( "static int yy_more_len = 0;" );
			}

		indent_puts( "#define yymore() (yy_more_flag = 1)" );
		indent_puts( "#define YY_MORE_ADJ yy_more_len" );
		}

	else
		{
		indent_puts( "#define yymore() yymore_used_but_not_detected" );
		indent_puts( "#define YY_MORE_ADJ 0" );
		}

	if ( ! C_plus_plus )
		{
		if ( yytext_is_array )
			{
			outn( "#ifndef YYLMAX" );
			outn( "#define YYLMAX 8192" );
			outn( "#endif\n" );
			outn( "char yytext[YYLMAX];" );
			outn( "char *yytext_ptr;" );
			}

		else
			outn( "char *yytext;" );
		}

	out( &action_array[defs1_offset] );

	line_directive_out( stdout, 0 );

	skelout();

	if ( ! C_plus_plus )
		{
		if ( use_read )
			{
			outn(
"\tif ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \\" );
			outn(
		"\t\tYY_FATAL_ERROR( \"input in flex scanner failed\" );" );
			}

		else
			{
			outn(
			"\tif ( yy_current_buffer->yy_is_interactive ) \\" );
			outn( "\t\t{ \\" );
			outn( "\t\tint c = '*', n; \\" );
			outn( "\t\tfor ( n = 0; n < max_size && \\" );
	outn( "\t\t\t     (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\" );
			outn( "\t\t\tbuf[n] = (char) c; \\" );
			outn( "\t\tif ( c == '\\n' ) \\" );
			outn( "\t\t\tbuf[n++] = (char) c; \\" );
			outn( "\t\tif ( c == EOF && ferror( yyin ) ) \\" );
			outn(
	"\t\t\tYY_FATAL_ERROR( \"input in flex scanner failed\" ); \\" );
			outn( "\t\tresult = n; \\" );
			outn( "\t\t} \\" );
			outn(
	"\telse if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \\" );
			outn( "\t\t  && ferror( yyin ) ) \\" );
			outn(
		"\t\tYY_FATAL_ERROR( \"input in flex scanner failed\" );" );
			}
		}

	skelout();

	indent_puts( "#define YY_RULE_SETUP \\" );
	indent_up();
	if ( bol_needed )
		{
		indent_puts( "if ( yyleng > 0 ) \\" );
		indent_up();
		indent_puts( "yy_current_buffer->yy_at_bol = \\" );
		indent_puts( "\t\t(yytext[yyleng - 1] == '\\n'); \\" );
		indent_down();
		}
	indent_puts( "YY_USER_ACTION" );
	indent_down();

	skelout();

	/* Copy prolog to output file. */
	out( &action_array[prolog_offset] );

	line_directive_out( stdout, 0 );

	skelout();

	set_indent( 2 );

	if ( yymore_used )
		{
		indent_puts( "yy_more_len = 0;" );
		indent_puts( "if ( yy_more_flag )" );
		indent_up();
		indent_puts( "{" );
		indent_puts( "yy_more_len = yyleng;" );
		indent_puts( "yy_more_flag = 0;" );
		indent_puts( "}" );
		indent_down();
		}

	skelout();

	gen_start_state();

	/* Note, don't use any indentation. */
	outn( "yy_match:" );
	gen_next_match();

	skelout();
	set_indent( 2 );
	gen_find_action();

	skelout();
	if ( do_yylineno )
		{
		indent_puts( "if ( yy_act != YY_END_OF_BUFFER )" );
		indent_up();
		indent_puts( "{" );
		indent_puts( "int yyl;" );
		indent_puts( "for ( yyl = 0; yyl < yyleng; ++yyl )" );
		indent_up();
		indent_puts( "if ( yytext[yyl] == '\\n' )" );
		indent_up();
		indent_puts( "++yylineno;" );
		indent_down();
		indent_down();
		indent_puts( "}" );
		indent_down();
		}

	skelout();
	if ( ddebug )
		{
		indent_puts( "if ( yy_flex_debug )" );
		indent_up();

		indent_puts( "{" );
		indent_puts( "if ( yy_act == 0 )" );
		indent_up();
		indent_puts( C_plus_plus ?
			"cerr << \"--scanner backing up\\n\";" :
			"fprintf( stderr, \"--scanner backing up\\n\" );" );
		indent_down();

		do_indent();
		out_dec( "else if ( yy_act < %d )\n", num_rules );
		indent_up();

		if ( C_plus_plus )
			{
			indent_puts(
	"cerr << \"--accepting rule at line \" << yy_rule_linenum[yy_act] <<" );
			indent_puts(
			"         \"(\\\"\" << yytext << \"\\\")\\n\";" );
			}
		else
			{
			indent_puts(
	"fprintf( stderr, \"--accepting rule at line %d (\\\"%s\\\")\\n\"," );

			indent_puts(
				"         yy_rule_linenum[yy_act], yytext );" );
			}

		indent_down();

		do_indent();
		out_dec( "else if ( yy_act == %d )\n", num_rules );
		indent_up();

		if ( C_plus_plus )
			{
			indent_puts(
"cerr << \"--accepting default rule (\\\"\" << yytext << \"\\\")\\n\";" );
			}
		else
			{
			indent_puts(
	"fprintf( stderr, \"--accepting default rule (\\\"%s\\\")\\n\"," );
			indent_puts( "         yytext );" );
			}

		indent_down();

		do_indent();
		out_dec( "else if ( yy_act == %d )\n", num_rules + 1 );
		indent_up();

		indent_puts( C_plus_plus ?
			"cerr << \"--(end of buffer or a NUL)\\n\";" :
		"fprintf( stderr, \"--(end of buffer or a NUL)\\n\" );" );

		indent_down();

		do_indent();
		outn( "else" );
		indent_up();

		if ( C_plus_plus )
			{
			indent_puts(
	"cerr << \"--EOF (start condition \" << YY_START << \")\\n\";" );
			}
		else
			{
			indent_puts(
	"fprintf( stderr, \"--EOF (start condition %d)\\n\", YY_START );" );
			}

		indent_down();

		indent_puts( "}" );
		indent_down();
		}

	/* Copy actions to output file. */
	skelout();
	indent_up();
	gen_bu_action();
	out( &action_array[action_offset] );

	line_directive_out( stdout, 0 );

	/* generate cases for any missing EOF rules */
	for ( i = 1; i <= lastsc; ++i )
		if ( ! sceof[i] )
			{
			do_indent();
			out_str( "case YY_STATE_EOF(%s):\n", scname[i] );
			did_eof_rule = true;
			}

	if ( did_eof_rule )
		{
		indent_up();
		indent_puts( "yyterminate();" );
		indent_down();
		}


	/* Generate code for handling NUL's, if needed. */

	/* First, deal with backing up and setting up yy_cp if the scanner
	 * finds that it should JAM on the NUL.
	 */
	skelout();
	set_indent( 4 );

	if ( fullspd || fulltbl )
		indent_puts( "yy_cp = yy_c_buf_p;" );

	else
		{ /* compressed table */
		if ( ! reject && ! interactive )
			{
			/* Do the guaranteed-needed backing up to figure
			 * out the match.
			 */
			indent_puts( "yy_cp = yy_last_accepting_cpos;" );
			indent_puts(
				"yy_current_state = yy_last_accepting_state;" );
			}

		else
			/* Still need to initialize yy_cp, though
			 * yy_current_state was set up by
			 * yy_get_previous_state().
			 */
			indent_puts( "yy_cp = yy_c_buf_p;" );
		}


	/* Generate code for yy_get_previous_state(). */
	set_indent( 1 );
	skelout();

	gen_start_state();

	set_indent( 2 );
	skelout();
	gen_next_state( true );

	set_indent( 1 );
	skelout();
	gen_NUL_trans();

	skelout();
	if ( do_yylineno )
		{ /* update yylineno inside of unput() */
		indent_puts( "if ( c == '\\n' )" );
		indent_up();
		indent_puts( "--yylineno;" );
		indent_down();
		}

	skelout();
	/* Update BOL and yylineno inside of input(). */
	if ( bol_needed )
		{
		indent_puts( "yy_current_buffer->yy_at_bol = (c == '\\n');" );
		if ( do_yylineno )
			{
			indent_puts( "if ( yy_current_buffer->yy_at_bol )" );
			indent_up();
			indent_puts( "++yylineno;" );
			indent_down();
			}
		}

	else if ( do_yylineno )
		{
		indent_puts( "if ( c == '\\n' )" );
		indent_up();
		indent_puts( "++yylineno;" );
		indent_down();
		}

	skelout();

	/* Copy remainder of input to output. */

	line_directive_out( stdout, 1 );

	if ( sectnum == 3 )
		(void) flexscan(); /* copy remainder of input to output */
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一级黄色片| 激情综合网av| 三级久久三级久久久| 热久久国产精品| 成人免费高清视频| 在线播放一区二区三区| 自拍av一区二区三区| 久久精品国产成人一区二区三区| 不卡高清视频专区| 久久亚洲免费视频| 美女视频黄a大片欧美| 欧美性xxxxxx少妇| 亚洲欧洲www| 丁香六月综合激情| 久久久久久久久97黄色工厂| 免费高清在线一区| 欧美福利一区二区| 免费久久99精品国产| 欧美一级久久久| 国产精品美女久久久久久久久久久 | 日韩欧美中文一区| 久久av中文字幕片| 日韩欧美成人激情| 国产精品香蕉一区二区三区| 欧美一区二区三区免费大片| 香蕉久久夜色精品国产使用方法| 91丨porny丨在线| 亚洲综合精品自拍| 欧美老肥妇做.爰bbww视频| 日本伊人午夜精品| 欧美一区二区在线视频| 国产一区二区调教| 亚洲欧美视频在线观看视频| 欧美撒尿777hd撒尿| 免费久久99精品国产| 一色屋精品亚洲香蕉网站| 色综合久久中文字幕| 日本在线播放一区二区三区| 国产清纯在线一区二区www| 欧美日韩中文国产| 岛国精品一区二区| 免费视频最近日韩| 一区二区三区欧美视频| 久久久久久97三级| 欧美日韩高清一区二区三区| 国产一区日韩二区欧美三区| 亚洲影院久久精品| 日韩毛片高清在线播放| 国产亚洲成av人在线观看导航| 69久久99精品久久久久婷婷| 成人午夜电影网站| 国产a精品视频| 欧美a级一区二区| 欧美经典一区二区| 国产欧美1区2区3区| 欧美精品一区二区三区高清aⅴ| 欧美三级在线播放| 在线观看www91| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 色综合久久久久| 激情欧美一区二区| 日本特黄久久久高潮 | 韩国一区二区视频| 婷婷中文字幕一区三区| 亚洲精品视频免费观看| 中文字幕在线不卡视频| 国产嫩草影院久久久久| 91麻豆精品国产91久久久久久久久| 成人av在线观| www.爱久久.com| 国产一区二区在线影院| 国产一区中文字幕| 国产精品一区二区三区99| 九九精品一区二区| 久久精品99久久久| 亚洲v日本v欧美v久久精品| 欧美高清在线一区二区| 亚洲日本成人在线观看| 自拍偷拍亚洲综合| 蜜桃免费网站一区二区三区| 国产一区二区在线看| 日本在线不卡视频一二三区| 亚洲精品成a人| 极品尤物av久久免费看| 色综合久久精品| 久久精品这里都是精品| 久久嫩草精品久久久精品一| 久久九九久久九九| 精品国产1区2区3区| 欧美成人伊人久久综合网| 国产精品每日更新在线播放网址 | 日本va欧美va精品发布| 99久久精品国产毛片| 色偷偷一区二区三区| 日韩视频免费观看高清完整版 | 欧美精品一卡两卡| 欧美一级一区二区| 精品精品国产高清a毛片牛牛 | 欧美性极品少妇| 国产精品久久久久久久久快鸭| 久久黄色级2电影| 国产日韩欧美电影| 精品久久国产老人久久综合| 五月天激情小说综合| 在线播放91灌醉迷j高跟美女| 麻豆91在线播放免费| 久久久99精品免费观看不卡| 91亚洲精品久久久蜜桃| 亚洲国产一区在线观看| 久久久久成人黄色影片| 色欧美乱欧美15图片| 午夜精品123| 国产精品久久一卡二卡| www.日韩在线| 视频在线观看91| 一二三四区精品视频| 欧美国产日本韩| 欧美色综合久久| 午夜精品福利一区二区三区蜜桃| 在线视频一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 国产91在线|亚洲| 一区二区三区视频在线观看| 国产盗摄一区二区三区| 久久婷婷国产综合精品青草 | 亚洲欧美一区二区不卡| 91视频免费看| 亚洲精品乱码久久久久| 欧美日韩一区二区三区四区| 麻豆成人av在线| 国产欧美精品一区| 99国产精品99久久久久久| 老司机午夜精品| 国产免费成人在线视频| 色综合色综合色综合色综合色综合 | 肉肉av福利一精品导航| 国产精品午夜免费| 欧美一区二区三区免费| 日本vs亚洲vs韩国一区三区二区| 欧美精品18+| 亚洲精品视频一区二区| 午夜欧美一区二区三区在线播放| 精品视频在线免费观看| 国产一区二区三区四区五区入口| 日本一区二区久久| 日韩女优制服丝袜电影| 欧美日韩在线观看一区二区 | 麻豆免费看一区二区三区| 亚州成人在线电影| 亚洲成人av电影| 成人免费视频视频在线观看免费| 91网站最新地址| 欧美tk—视频vk| 亚洲欧美一区二区三区国产精品| 亚洲成人av免费| 成人晚上爱看视频| 日韩视频在线永久播放| 欧美韩国一区二区| 成人欧美一区二区三区视频网页| 午夜精品久久久| 粉嫩绯色av一区二区在线观看| 欧美怡红院视频| 欧美哺乳videos| 日本一区二区三区电影| 综合在线观看色| 亚洲精品你懂的| 亚洲综合久久av| 天天综合网 天天综合色| 亚洲资源中文字幕| 一区二区三区在线影院| 中文字幕佐山爱一区二区免费| 1024国产精品| 尤物在线观看一区| 亚洲国产一区视频| 男人的天堂久久精品| 亚洲国产精品久久人人爱蜜臀 | 欧美日韩电影一区| 成人福利视频在线看| 国产美女精品在线| 99vv1com这只有精品| 色噜噜狠狠一区二区三区果冻| 色婷婷综合久久久中文一区二区 | 丰满亚洲少妇av| 一区二区免费在线| 琪琪一区二区三区| 伊人婷婷欧美激情| 伦理电影国产精品| 欧美日韩国产另类一区| 亚洲精品日日夜夜| 国产福利电影一区二区三区| 91精品国产福利| 日韩黄色免费电影| 日本韩国一区二区| 亚洲三级在线观看| 99久久免费精品| 国产精品欧美一区喷水| 国产电影一区二区三区| 久久看人人爽人人| 国产精品一区二区三区乱码| 欧美一区二区三区四区久久 |