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

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

?? lex.yy.c

?? 一個簡單實現詞法分析的程序代碼。。。。。。。編譯原理的課程設計
?? C
?? 第 1 頁 / 共 3 頁
字號:
		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 57 "second.lex"

#include <ctype.h>
#include <stdio.h>
#include <string.h>
typedef  struct{char *name;int val;}  KWORDSTRUCT;
KWORDSTRUCT  kwds[]={
{"begin",1},
{"do",DO},
{"program" , PROGRAM},
{"end",END},
{"while",WHILE},
{"if",IF},
{"else",ELSE},
{"integer",INTEGER},
{"var",VAR},
{"then",THEN}
};

KWORDSTRUCT *bsrch(KWORDSTRUCT *a,KWORDSTRUCT *tab,int number)
{
int i;
for(i=0;i<number;i++)
if(!strcmp(a->name,tab[i].name))  return  &tab[i];
return NULL;
}

int id_or_keyword(char * lx)
{
KWORDSTRUCT *p;
KWORDSTRUCT dummy;
static int number=sizeof(kwds)/sizeof(KWORDSTRUCT);
dummy.name=lx;
p=bsrch(&dummy,kwds,number);
return (p?p->val:NAME);
}


yywrap()
{
        return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美视频| 欧美性猛交xxxx黑人交| 99久久99久久精品国产片果冻| 欧美无砖砖区免费| 久久久久久久精| 亚洲成av人影院在线观看网| 国产在线不卡一区| 一区二区三区四区在线| 国产一区二区三区免费播放| 同产精品九九九| 成人免费毛片a| 欧美一区二区观看视频| 亚洲精品水蜜桃| 91黄色激情网站| 国产拍揄自揄精品视频麻豆| 免费在线视频一区| 欧美日韩一区二区在线视频| 国产精品久久久久aaaa| 久久99国产精品尤物| 91精品在线免费观看| 亚洲精品综合在线| 91蜜桃在线免费视频| 久久久91精品国产一区二区精品| 免费观看一级欧美片| 欧美午夜精品一区二区三区| 有坂深雪av一区二区精品| 成人午夜视频网站| 国产精品素人视频| 成人福利视频在线看| 亚洲国产经典视频| www.av精品| 国产精品国产三级国产三级人妇| 成人手机在线视频| 国产午夜亚洲精品不卡| 国产一区二区网址| 国产欧美精品一区aⅴ影院| 韩国女主播一区二区三区| 亚洲精品一区二区三区蜜桃下载 | 亚洲精品免费一二三区| 成人自拍视频在线观看| 欧美激情综合五月色丁香小说| 国产精品一区二区久激情瑜伽| www国产精品av| 国产盗摄视频一区二区三区| 亚洲国产精品二十页| 波多野结衣在线aⅴ中文字幕不卡| 国产欧美日本一区二区三区| 成人爱爱电影网址| 亚洲精品乱码久久久久久| 在线观看一区二区视频| 五月婷婷久久综合| 精品免费一区二区三区| 国产成人午夜高潮毛片| 亚洲视频一区二区免费在线观看 | 亚洲黄色尤物视频| 精品视频资源站| 久久草av在线| 中文字幕一区二区三区视频| 欧美在线三级电影| 另类调教123区| 亚洲国产成人私人影院tom| 成人中文字幕电影| 亚洲国产日日夜夜| 久久久精品2019中文字幕之3| 成人av小说网| 午夜视频一区二区三区| 精品电影一区二区| 欧美做爰猛烈大尺度电影无法无天| 日韩电影在线看| 国产精品成人网| 欧美精品丝袜久久久中文字幕| 激情文学综合丁香| 亚洲欧美日韩中文字幕一区二区三区| 欧美精品久久一区二区三区| 国产尤物一区二区在线| 亚洲国产综合色| 国产亚洲一二三区| 欧美三级日韩三级| 成人综合在线视频| 美腿丝袜亚洲三区| 一区二区三区国产精华| 久久亚洲一区二区三区四区| 欧美日韩一区二区三区不卡 | 在线中文字幕不卡| 国产精品综合久久| 日本vs亚洲vs韩国一区三区| 自拍av一区二区三区| 精品动漫一区二区三区在线观看| 91久久精品一区二区| 国产成人aaa| 美女视频黄久久| 一区二区三区在线观看动漫| 久久久国产精华| 欧美一区二区网站| 91久久线看在观草草青青| 国产精品一区免费在线观看| 毛片不卡一区二区| 日韩成人伦理电影在线观看| 中文字幕一区二区三区不卡| 久久一区二区三区国产精品| 日韩一区二区电影| 欧美日韩aaaaa| 欧美色综合网站| 欧美在线不卡一区| 色婷婷久久一区二区三区麻豆| 高清视频一区二区| 国产精品亚洲综合一区在线观看| 精品综合久久久久久8888| 日韩综合在线视频| 石原莉奈一区二区三区在线观看| 一级精品视频在线观看宜春院| 国产精品国产三级国产aⅴ入口| 国产欧美一区二区精品性色 | 亚洲国产精品欧美一二99| 亚洲免费av网站| 亚洲乱码国产乱码精品精可以看| 亚洲欧美成人一区二区三区| 国产精品美女久久久久aⅴ| 国产午夜亚洲精品羞羞网站| 久久精品水蜜桃av综合天堂| 久久久五月婷婷| 日本一区二区三区国色天香| 亚洲国产精品二十页| 国产精品国产自产拍高清av王其| 国产精品乱码久久久久久| 国产精品青草久久| 亚洲精品老司机| 亚洲午夜一二三区视频| 日日夜夜免费精品视频| 免费观看日韩av| 国产成人精品亚洲午夜麻豆| 成年人国产精品| 欧美日韩中文另类| 欧美变态tickling挠脚心| 久久蜜桃av一区二区天堂| 国产精品热久久久久夜色精品三区 | 久久99热这里只有精品| 国产综合久久久久影院| 国产成人午夜片在线观看高清观看| 成人动漫一区二区三区| 色8久久人人97超碰香蕉987| 欧美精品久久一区| 精品日韩成人av| 日韩美女精品在线| 日韩高清一区二区| 国产精品中文字幕欧美| 色视频一区二区| 精品91自产拍在线观看一区| 中文字幕一区av| 日韩精品免费专区| 国产成人在线观看免费网站| 在线免费观看成人短视频| 欧美一级片在线| 国产精品日韩成人| 日韩不卡免费视频| 成人高清免费观看| 日韩三级电影网址| 亚洲激情图片qvod| 国产精品主播直播| 欧美精品123区| 国产精品理伦片| 蜜臀精品一区二区三区在线观看| 成人综合婷婷国产精品久久蜜臀 | 天堂va蜜桃一区二区三区漫画版| 国产老女人精品毛片久久| 欧美在线观看一二区| 欧美国产激情二区三区| 日韩激情视频在线观看| 99精品国产99久久久久久白柏| 精品国产一区二区国模嫣然| 亚洲免费在线观看视频| 国产成人精品1024| 欧美一区二区三区视频在线观看| 最新久久zyz资源站| 激情久久五月天| 欧美一区二区三区啪啪| 亚洲精品视频在线| 成人av片在线观看| 国产欧美日韩不卡| 国产一区二区三区四区五区美女 | 欧美视频精品在线| 国产精品麻豆视频| 国产高清精品在线| 日韩欧美亚洲一区二区| 亚洲午夜成aⅴ人片| 99久久精品久久久久久清纯| 精品第一国产综合精品aⅴ| 日本午夜一本久久久综合| 欧美偷拍一区二区| 一区2区3区在线看| 色88888久久久久久影院野外| 国产精品电影一区二区| 成人黄色综合网站| 日本一区二区三区dvd视频在线| 美女视频黄免费的久久| 日韩一卡二卡三卡国产欧美| 日韩制服丝袜先锋影音| 91 com成人网| 麻豆精品久久精品色综合| 日韩久久久精品|