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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? misc.c

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? C
?? 第 1 頁 / 共 2 頁
字號:
	action_offset = prolog_offset = action_index;
	action_array[action_index] = '\0';
	}


/* mark_prolog - mark the current position in the action array as
 *               representing the end of the action prolog
 */
void mark_prolog()
	{
	action_array[action_index++] = '\0';
	action_offset = action_index;
	action_array[action_index] = '\0';
	}


/* mk2data - generate a data statement for a two-dimensional array
 *
 * Generates a data statement initializing the current 2-D array to "value".
 */
void mk2data( value )
int value;
	{
	if ( datapos >= NUMDATAITEMS )
		{
		outc( ',' );
		dataflush();
		}

	if ( datapos == 0 )
		/* Indent. */
		out( "    " );

	else
		outc( ',' );

	++datapos;

	out_dec( "%5d", value );
	}


/* mkdata - generate a data statement
 *
 * Generates a data statement initializing the current array element to
 * "value".
 */
void mkdata( value )
int value;
	{
	if ( datapos >= NUMDATAITEMS )
		{
		outc( ',' );
		dataflush();
		}

	if ( datapos == 0 )
		/* Indent. */
		out( "    " );
	else
		outc( ',' );

	++datapos;

	out_dec( "%5d", value );
	}


/* myctoi - return the integer represented by a string of digits */

int myctoi( array )
char array[];
	{
	int val = 0;

	(void) sscanf( array, "%d", &val );

	return val;
	}


/* myesc - return character corresponding to escape sequence */

Char myesc( array )
Char array[];
	{
	Char c, esc_char;

	switch ( array[1] )
		{
		case 'b': return '\b';
		case 'f': return '\f';
		case 'n': return '\n';
		case 'r': return '\r';
		case 't': return '\t';

#if __STDC__
		case 'a': return '\a';
		case 'v': return '\v';
#else
		case 'a': return '\007';
		case 'v': return '\013';
#endif

		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
			{ /* \<octal> */
			int sptr = 1;

			while ( isascii( array[sptr] ) &&
				isdigit( array[sptr] ) )
				/* Don't increment inside loop control
				 * because if isdigit() is a macro it might
				 * expand into multiple increments ...
				 */
				++sptr;

			c = array[sptr];
			array[sptr] = '\0';

			esc_char = otoi( array + 1 );

			array[sptr] = c;

			return esc_char;
			}

		case 'x':
			{ /* \x<hex> */
			int sptr = 2;

			while ( isascii( array[sptr] ) &&
				isxdigit( (char) array[sptr] ) )
				/* Don't increment inside loop control
				 * because if isdigit() is a macro it might
				 * expand into multiple increments ...
				 */
				++sptr;

			c = array[sptr];
			array[sptr] = '\0';

			esc_char = htoi( array + 2 );

			array[sptr] = c;

			return esc_char;
			}

		default:
			return array[1];
		}
	}


/* otoi - convert an octal digit string to an integer value */

int otoi( str )
Char str[];
	{
	unsigned int result;

	(void) sscanf( (char *) str, "%o", &result );
	return result;
	}


/* out - various flavors of outputing a (possibly formatted) string for the
 *	 generated scanner, keeping track of the line count.
 */

void out( str )
const char str[];
	{
	fputs( str, stdout );
	out_line_count( str );
	}

void out_dec( fmt, n )
const char fmt[];
int n;
	{
	printf( fmt, n );
	out_line_count( fmt );
	}

void out_dec2( fmt, n1, n2 )
const char fmt[];
int n1, n2;
	{
	printf( fmt, n1, n2 );
	out_line_count( fmt );
	}

void out_hex( fmt, x )
const char fmt[];
unsigned int x;
	{
	printf( fmt, x );
	out_line_count( fmt );
	}

void out_line_count( str )
const char str[];
	{
	register int i;

	for ( i = 0; str[i]; ++i )
		if ( str[i] == '\n' )
			++out_linenum;
	}

void out_str( fmt, str )
const char fmt[], str[];
	{
	printf( fmt, str );
	out_line_count( fmt );
	out_line_count( str );
	}

void out_str3( fmt, s1, s2, s3 )
const char fmt[], s1[], s2[], s3[];
	{
	printf( fmt, s1, s2, s3 );
	out_line_count( fmt );
	out_line_count( s1 );
	out_line_count( s2 );
	out_line_count( s3 );
	}

void out_str_dec( fmt, str, n )
const char fmt[], str[];
int n;
	{
	printf( fmt, str, n );
	out_line_count( fmt );
	out_line_count( str );
	}

void outc( c )
int c;
	{
	putc( c, stdout );

	if ( c == '\n' )
		++out_linenum;
	}

void outn( str )
const char str[];
	{
	puts( str );
	out_line_count( str );
	++out_linenum;
	}


/* readable_form - return the the human-readable form of a character
 *
 * The returned string is in static storage.
 */

char *readable_form( c )
register int c;
	{
	static char rform[10];

	if ( (c >= 0 && c < 32) || c >= 127 )
		{
		switch ( c )
			{
			case '\b': return "\\b";
			case '\f': return "\\f";
			case '\n': return "\\n";
			case '\r': return "\\r";
			case '\t': return "\\t";

#if __STDC__
			case '\a': return "\\a";
			case '\v': return "\\v";
#endif

			default:
				(void) sprintf( rform, "\\%.3o",
						(unsigned int) c );
				return rform;
			}
		}

	else if ( c == ' ' )
		return "' '";

	else
		{
		rform[0] = c;
		rform[1] = '\0';

		return rform;
		}
	}


/* reallocate_array - increase the size of a dynamic array */

void *reallocate_array( array, size, element_size )
void *array;
int size;
size_t element_size;
	{
	register void *new_array;
	size_t num_bytes = element_size * size;

	new_array = flex_realloc( array, num_bytes );
	if ( ! new_array )
		flexfatal( _( "attempt to increase array size failed" ) );

	return new_array;
	}


/* skelout - write out one section of the skeleton file
 *
 * Description
 *    Copies skelfile or skel array to stdout until a line beginning with
 *    "%%" or EOF is found.
 */
void skelout()
	{
	char buf_storage[MAXLINE];
	char *buf = buf_storage;
	int do_copy = 1;

	/* Loop pulling lines either from the skelfile, if we're using
	 * one, or from the skel[] array.
	 */
	while ( skelfile ?
		(fgets( buf, MAXLINE, skelfile ) != NULL) :
		((buf = (char *) skel[skel_ind++]) != 0) )
		{ /* copy from skel array */
		if ( buf[0] == '%' )
			{ /* control line */
			switch ( buf[1] )
				{
				case '%':
					return;

				case '+':
					do_copy = C_plus_plus;
					break;

				case '-':
					do_copy = ! C_plus_plus;
					break;

				case '*':
					do_copy = 1;
					break;

				default:
					flexfatal(
					_( "bad line in skeleton file" ) );
				}
			}

		else if ( do_copy )
			{
			if ( skelfile )
				/* Skeleton file reads include final
				 * newline, skel[] array does not.
				 */
				out( buf );
			else
				outn( buf );
			}
		}
	}


/* transition_struct_out - output a yy_trans_info structure
 *
 * outputs the yy_trans_info structure with the two elements, element_v and
 * element_n.  Formats the output with spaces and carriage returns.
 */

void transition_struct_out( element_v, element_n )
int element_v, element_n;
	{
	out_dec2( " {%4d,%4d },", element_v, element_n );

	datapos += TRANS_STRUCT_PRINT_LENGTH;

	if ( datapos >= 79 - TRANS_STRUCT_PRINT_LENGTH )
		{
		outc( '\n' );

		if ( ++dataline % 10 == 0 )
			outc( '\n' );

		datapos = 0;
		}
	}


/* The following is only needed when building flex's parser using certain
 * broken versions of bison.
 */
void *yy_flex_xmalloc( size )
int size;
	{
	void *result = flex_alloc( (size_t) size );

	if ( ! result  )
		flexfatal(
			_( "memory allocation failed in yy_flex_xmalloc()" ) );

	return result;
	}


/* zero_out - set a region of memory to 0
 *
 * Sets region_ptr[0] through region_ptr[size_in_bytes - 1] to zero.
 */

void zero_out( region_ptr, size_in_bytes )
char *region_ptr;
size_t size_in_bytes;
	{
	register char *rp, *rp_end;

	rp = region_ptr;
	rp_end = region_ptr + size_in_bytes;

	while ( rp < rp_end )
		*rp++ = 0;
	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看中文| 色94色欧美sute亚洲线路一久| 床上的激情91.| 欧美久久高跟鞋激| 欧美国产日韩一二三区| 美女网站视频久久| 欧美亚洲高清一区| 1000精品久久久久久久久| 久久66热偷产精品| 欧美日本精品一区二区三区| 中文字幕巨乱亚洲| 激情成人综合网| 欧美少妇性性性| 日韩美女视频19| 国产成人精品一区二区三区四区| 欧美老女人第四色| 亚洲欧洲日韩在线| 韩国精品主播一区二区在线观看 | 国产精品久久久久桃色tv| 日本不卡不码高清免费观看| 99国产精品国产精品毛片| 国产欧美日韩视频在线观看| 性欧美大战久久久久久久久| 色综合久久综合网97色综合| 国产精品麻豆视频| 国产精品乡下勾搭老头1| 日韩三级高清在线| 日韩av中文字幕一区二区| 91久久免费观看| 亚洲男人的天堂在线观看| 成人av电影在线| 国产精品欧美综合在线| 丁香激情综合国产| 国产精品天美传媒| k8久久久一区二区三区| 中文字幕在线不卡一区二区三区| 国产成人亚洲综合a∨婷婷| 亚洲精品在线免费观看视频| 韩国精品在线观看| 久久色在线视频| 国产成人精品aa毛片| 久久久久国产精品麻豆ai换脸 | 成人精品国产福利| 国产精品乱人伦中文| 99久久精品国产一区| 国产精品每日更新在线播放网址| 国产盗摄一区二区| 国产精品进线69影院| 91免费版在线看| 亚洲香蕉伊在人在线观| 69精品人人人人| 青青草97国产精品免费观看| 欧美一区二区三区在线看| 久久电影网电视剧免费观看| 国产欧美视频一区二区三区| 91视频在线观看| 视频在线观看一区| 久久精品亚洲精品国产欧美| 成人黄动漫网站免费app| 亚洲国产精品一区二区久久| 精品久久久久久亚洲综合网| 成人福利视频网站| 香蕉影视欧美成人| 国产亚洲视频系列| 欧美在线制服丝袜| 精品午夜久久福利影院| 亚洲欧洲三级电影| 日韩欧美激情一区| 91欧美一区二区| 秋霞电影网一区二区| 国产精品美女久久久久久久| 欧美日韩国产另类不卡| 国产成人精品亚洲午夜麻豆| 亚洲午夜视频在线| 国产欧美日本一区视频| 欧美手机在线视频| 粉嫩av一区二区三区粉嫩| 性做久久久久久免费观看| 国产欧美精品一区二区色综合朱莉 | 亚洲一区二区三区四区在线 | 久久久五月婷婷| 在线视频国产一区| 国产精品一区二区在线看| 亚洲国产综合91精品麻豆| 国产亚洲福利社区一区| 欧美妇女性影城| 91在线高清观看| 国产福利一区二区三区在线视频| 午夜精品久久久久久久| 亚洲欧洲日韩av| 久久久一区二区三区捆绑**| 欧美日韩国产首页| 91美女在线观看| 粉嫩一区二区三区性色av| 久草热8精品视频在线观看| 亚洲va欧美va人人爽| 国产精品久久夜| 久久综合狠狠综合| 欧美成人a在线| 欧美日韩在线播放三区| 91在线小视频| 成人小视频在线| 国产成人av一区二区三区在线| 全国精品久久少妇| 一区二区激情小说| 一区二区三区.www| ●精品国产综合乱码久久久久| 国产三级一区二区| 国产三级欧美三级| 久久久美女艺术照精彩视频福利播放| 777精品伊人久久久久大香线蕉| 91成人免费在线| 欧美无砖砖区免费| 欧美在线影院一区二区| 91成人免费在线| 欧美自拍偷拍午夜视频| 日本韩国欧美在线| 色综合久久久久综合体| 91免费观看国产| 欧美性猛交一区二区三区精品| 日本久久一区二区三区| 在线观看一区不卡| 欧美日韩精品一区视频| 欧美日韩午夜精品| 91精品国产福利| 69堂精品视频| 久久这里只有精品6| 国产欧美日韩一区二区三区在线观看 | 中文乱码免费一区二区| 国产精品三级电影| 亚洲激情男女视频| 亚洲成人www| 久久99精品久久久久久久久久久久| 国产一区二区在线视频| 国产精品18久久久久| proumb性欧美在线观看| 在线观看欧美黄色| 日韩一区二区在线观看视频| 久久天堂av综合合色蜜桃网| 综合欧美亚洲日本| 一区二区三区 在线观看视频| 夜色激情一区二区| 久久精品国产999大香线蕉| 国产91综合网| 91在线国产观看| 欧美日韩精品免费| 久久综合久久鬼色中文字| 国产精品成人免费精品自在线观看| 亚洲免费av高清| 男女性色大片免费观看一区二区| 国产乱子伦视频一区二区三区 | 在线播放视频一区| 久久蜜桃av一区精品变态类天堂| 亚洲欧美另类图片小说| 久久精品国产亚洲5555| 99精品欧美一区| 5566中文字幕一区二区电影| 国产女同互慰高潮91漫画| 亚洲成人免费在线观看| 国产成人自拍网| 精品视频在线看| 中文字幕在线观看不卡视频| 人人爽香蕉精品| 色综合久久中文综合久久97| 26uuuu精品一区二区| 亚洲一区二区在线观看视频| 国产91丝袜在线观看| 337p亚洲精品色噜噜狠狠| 综合精品久久久| 国产一区二区不卡老阿姨| 欧美日韩黄视频| 国产精品亲子伦对白| 久久99精品国产麻豆婷婷 | 精品国精品国产| 亚洲免费三区一区二区| 国产精品亚洲一区二区三区在线| 欧美性猛交xxxxxx富婆| 最好看的中文字幕久久| 国产精品一区二区无线| 日韩欧美一区在线| 偷拍日韩校园综合在线| 欧美羞羞免费网站| 中文字幕一区二区三区在线不卡| 国产一区三区三区| 欧美一区二区美女| 午夜日韩在线观看| 欧美性猛交xxxx黑人交| 一区二区三区久久| 99riav一区二区三区| 国产精品理论片在线观看| 国产一区二区三区精品视频| 欧美成人午夜电影| 久久国产免费看| 日韩精品一区二区在线| 视频一区二区中文字幕| 欧美三日本三级三级在线播放| 亚洲黄色性网站| 在线视频中文字幕一区二区| 一区二区中文字幕在线| 91美女在线看|