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

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

?? scan.l

?? 編譯原理(Flex):生成詞法和語法分析程序的源代碼的程序。
?? L
?? 第 1 頁 / 共 2 頁
字號:
/* scan.l - scanner for flex input */

%{
/*-
 * Copyright (c) 1990 The Regents of the University of California.
 * All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Vern Paxson.
 * 
 * The United States Government has rights in this work pursuant
 * to contract no. DE-AC03-76SF00098 between the United States
 * Department of Energy and the University of California.
 *
 * Redistribution and use in source and binary forms are permitted provided
 * that: (1) source distributions retain this entire copyright notice and
 * comment, and (2) distributions including binaries display the following
 * acknowledgement:  ``This product includes software developed by the
 * University of California, Berkeley and its contributors'' in the
 * documentation or other materials provided with the distribution and in
 * all advertising materials mentioning features or use of this software.
 * Neither the name of the University nor the names of its contributors may
 * be used to endorse or promote products derived from this software without
 * specific prior written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */

/* $Header: /home/daffy/u0/vern/flex/RCS/scan.l,v 2.56 95/04/24 12:17:19 vern Exp $ */

#include "flexdef.h"
#include "parse.h"

#define ACTION_ECHO add_action( yytext )
#define ACTION_IFDEF(def, should_define) \
	{ \
	if ( should_define ) \
		action_define( def, 1 ); \
	}

#define MARK_END_OF_PROLOG mark_prolog();

#define YY_DECL \
	int flexscan()

#define RETURNCHAR \
	yylval = (unsigned char) yytext[0]; \
	return CHAR;

#define RETURNNAME \
	strcpy( nmstr, yytext ); \
	return NAME;

#define PUT_BACK_STRING(str, start) \
	for ( i = strlen( str ) - 1; i >= start; --i ) \
		unput((str)[i])

#define CHECK_REJECT(str) \
	if ( all_upper( str ) ) \
		reject = true;

#define CHECK_YYMORE(str) \
	if ( all_lower( str ) ) \
		yymore_used = true;
%}

%option caseless nodefault outfile="scan.c" stack noyy_top_state
%option nostdinit

%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE
%x FIRSTCCL CCL ACTION RECOVER COMMENT ACTION_STRING PERCENT_BRACE_ACTION
%x OPTION LINEDIR

WS		[[:blank:]]+
OPTWS		[[:blank:]]*
NOT_WS		[^[:blank:]\n]

NL		\r?\n

NAME		([[:alpha:]_][[:alnum:]_-]*)
NOT_NAME	[^[:alpha:]_*\n]+

SCNAME		{NAME}

ESCSEQ		(\\([^\n]|[0-7]{1,3}|x[[:xdigit:]]{1,2}))

FIRST_CCL_CHAR	([^\\\n]|{ESCSEQ})
CCL_CHAR	([^\\\n\]]|{ESCSEQ})
CCL_EXPR	("[:"[[:alpha:]]+":]")

LEXOPT		[aceknopr]

%%
	static int bracelevel, didadef, indented_code;
	static int doing_rule_action = false;
	static int option_sense;

	int doing_codeblock = false;
	int i;
	Char nmdef[MAXLINE], myesc();


<INITIAL>{
	^{WS}		indented_code = true; BEGIN(CODEBLOCK);
	^"/*"		ACTION_ECHO; yy_push_state( COMMENT );
	^#{OPTWS}line{WS}	yy_push_state( LINEDIR );
	^"%s"{NAME}?	return SCDECL;
	^"%x"{NAME}?	return XSCDECL;
	^"%{".*{NL}	{
			++linenum;
			line_directive_out( (FILE *) 0, 1 );
			indented_code = false;
			BEGIN(CODEBLOCK);
			}

	{WS}		/* discard */

	^"%%".*		{
			sectnum = 2;
			bracelevel = 0;
			mark_defs1();
			line_directive_out( (FILE *) 0, 1 );
			BEGIN(SECT2PROLOG);
			return SECTEND;
			}

	^"%pointer".*{NL}	yytext_is_array = false; ++linenum;
	^"%array".*{NL}		yytext_is_array = true; ++linenum;

	^"%option"	BEGIN(OPTION); return OPTION_OP;

	^"%"{LEXOPT}{OPTWS}[[:digit:]]*{OPTWS}{NL}	++linenum; /* ignore */
	^"%"{LEXOPT}{WS}.*{NL}	++linenum;	/* ignore */

	^"%"[^sxaceknopr{}].*	synerr( _( "unrecognized '%' directive" ) );

	^{NAME}		{
			strcpy( nmstr, yytext );
			didadef = false;
			BEGIN(PICKUPDEF);
			}

	{SCNAME}	RETURNNAME;
	^{OPTWS}{NL}	++linenum; /* allows blank lines in section 1 */
	{OPTWS}{NL}	ACTION_ECHO; ++linenum; /* maybe end of comment line */
}


<COMMENT>{
	"*/"		ACTION_ECHO; yy_pop_state();
	"*"		ACTION_ECHO;
	[^*\n]+		ACTION_ECHO;
	[^*\n]*{NL}	++linenum; ACTION_ECHO;
}

<LINEDIR>{
	\n		yy_pop_state();
	[[:digit:]]+	linenum = myctoi( yytext );

	\"[^"\n]*\"	{
			flex_free( (void *) infilename );
			infilename = copy_string( yytext + 1 );
			infilename[strlen( infilename ) - 1] = '\0';
			}
	.		/* ignore spurious characters */
}

<CODEBLOCK>{
	^"%}".*{NL}	++linenum; BEGIN(INITIAL);

	{NAME}|{NOT_NAME}|.	ACTION_ECHO;

	{NL}		{
			++linenum;
			ACTION_ECHO;
			if ( indented_code )
				BEGIN(INITIAL);
			}
}


<PICKUPDEF>{
	{WS}		/* separates name and definition */

	{NOT_WS}.*	{
			strcpy( (char *) nmdef, yytext );

			/* Skip trailing whitespace. */
			for ( i = strlen( (char *) nmdef ) - 1;
			      i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
			      --i )
				;

			nmdef[i + 1] = '\0';

			ndinstal( nmstr, nmdef );
			didadef = true;
			}

	{NL}		{
			if ( ! didadef )
				synerr( _( "incomplete name definition" ) );
			BEGIN(INITIAL);
			++linenum;
			}
}


<OPTION>{
	{NL}		++linenum; BEGIN(INITIAL);
	{WS}		option_sense = true;

	"="		return '=';

	no		option_sense = ! option_sense;

	7bit		csize = option_sense ? 128 : 256;
	8bit		csize = option_sense ? 256 : 128;

	align		long_align = option_sense;
	always-interactive	{
			action_define( "YY_ALWAYS_INTERACTIVE", option_sense );
			}
	array		yytext_is_array = option_sense;
	backup		backing_up_report = option_sense;
	batch		interactive = ! option_sense;
	"c++"		C_plus_plus = option_sense;
	caseful|case-sensitive		caseins = ! option_sense;
	caseless|case-insensitive	caseins = option_sense;
	debug		ddebug = option_sense;
	default		spprdflt = ! option_sense;
	ecs		useecs = option_sense;
	fast		{
			useecs = usemecs = false;
			use_read = fullspd = true;
			}
	full		{
			useecs = usemecs = false;
			use_read = fulltbl = true;
			}
	input		ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
	interactive	interactive = option_sense;
	lex-compat	lex_compat = option_sense;
	main		{
			action_define( "YY_MAIN", option_sense );
			do_yywrap = ! option_sense;
			}
	meta-ecs	usemecs = option_sense;
	never-interactive	{
			action_define( "YY_NEVER_INTERACTIVE", option_sense );
			}
	perf-report	performance_report += option_sense ? 1 : -1;
	pointer		yytext_is_array = ! option_sense;
	read		use_read = option_sense;
	reject		reject_really_used = option_sense;
	stack		action_define( "YY_STACK_USED", option_sense );
	stdinit		do_stdinit = option_sense;
	stdout		use_stdout = option_sense;
	unput		ACTION_IFDEF("YY_NO_UNPUT", ! option_sense);
	verbose		printstats = option_sense;
	warn		nowarn = ! option_sense;
	yylineno	do_yylineno = option_sense;
	yymore		yymore_really_used = option_sense;
	yywrap		do_yywrap = option_sense;

	yy_push_state	ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense);
	yy_pop_state	ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense);
	yy_top_state	ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense);

	yy_scan_buffer	ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense);
	yy_scan_bytes	ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense);
	yy_scan_string	ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense);

	outfile		return OPT_OUTFILE;
	prefix		return OPT_PREFIX;
	yyclass		return OPT_YYCLASS;

	\"[^"\n]*\"	{
			strcpy( nmstr, yytext + 1 );
			nmstr[strlen( nmstr ) - 1] = '\0';
			return NAME;
			}

	(([a-mo-z]|n[a-np-z])[[:alpha:]\-+]*)|.	{
			format_synerr( _( "unrecognized %%option: %s" ),
				yytext );
			BEGIN(RECOVER);
			}
}

<RECOVER>.*{NL}		++linenum; BEGIN(INITIAL);


<SECT2PROLOG>{
	^"%{".*	++bracelevel; yyless( 2 );	/* eat only %{ */
	^"%}".*	--bracelevel; yyless( 2 );	/* eat only %} */

	^{WS}.*	ACTION_ECHO;	/* indented code in prolog */

	^{NOT_WS}.*	{	/* non-indented code */
			if ( bracelevel <= 0 )
				{ /* not in %{ ... %} */
				yyless( 0 );	/* put it all back */
				yy_set_bol( 1 );
				mark_prolog();
				BEGIN(SECT2);
				}
			else
				ACTION_ECHO;
			}

	.*		ACTION_ECHO;
	{NL}	++linenum; ACTION_ECHO;

	<<EOF>>		{
			mark_prolog();
			sectnum = 0;
			yyterminate(); /* to stop the parser */
			}
}

<SECT2>{
	^{OPTWS}{NL}	++linenum; /* allow blank lines in section 2 */

	^{OPTWS}"%{"	{
			indented_code = false;
			doing_codeblock = true;
			bracelevel = 1;
			BEGIN(PERCENT_BRACE_ACTION);
			}

	^{OPTWS}"<"	BEGIN(SC); return '<';
	^{OPTWS}"^"	return '^';
	\"		BEGIN(QUOTE); return '"';
	"{"/[[:digit:]]	BEGIN(NUM); return '{';
	"$"/([[:blank:]]|{NL})	return '$';

	{WS}"%{"		{
			bracelevel = 1;
			BEGIN(PERCENT_BRACE_ACTION);

			if ( in_rule )
				{
				doing_rule_action = true;
				in_rule = false;
				return '\n';
				}
			}
	{WS}"|".*{NL}	continued_action = true; ++linenum; return '\n';

	^{WS}"/*"	{
			yyless( yyleng - 2 );	/* put back '/', '*' */
			bracelevel = 0;
			continued_action = false;
			BEGIN(ACTION);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看久久久4p| 26uuu精品一区二区在线观看| 一本大道久久a久久综合| 欧美电影在线免费观看| 中文一区二区完整视频在线观看| 亚洲精品成人在线| 国内成人自拍视频| 99视频一区二区| 久久亚洲精精品中文字幕早川悠里| 亚洲精品国产一区二区三区四区在线 | caoporen国产精品视频| 欧美精选一区二区| 日韩一区在线播放| 国产一区 二区| 日韩欧美第一区| 婷婷丁香激情综合| 欧美在线免费观看亚洲| 成人欧美一区二区三区在线播放| 激情综合网激情| 91精品国产综合久久久久| 一区二区三区欧美久久| 97久久人人超碰| 国产精品久久看| av在线播放不卡| 国产精品美女一区二区| 国产成人av影院| 久久久亚洲精华液精华液精华液| 日韩1区2区3区| 3d成人动漫网站| 石原莉奈在线亚洲二区| 欧美久久久久久蜜桃| 爽爽淫人综合网网站| 欧美丝袜丝交足nylons| 亚洲一级二级三级| 欧美日韩一本到| 天天色综合成人网| 7777精品伊人久久久大香线蕉经典版下载 | 久久久亚洲精品石原莉奈| 精品在线观看视频| 久久久久久97三级| 国产成人综合网| 国产精品国产成人国产三级| 91在线码无精品| 亚洲一区二三区| 欧美一区日韩一区| 狠狠网亚洲精品| 国产精品色婷婷| 色8久久精品久久久久久蜜| 一区二区三区日韩精品视频| 欧美另类一区二区三区| 蜜臀91精品一区二区三区| 精品美女在线播放| 成人黄色一级视频| 亚洲一区电影777| 日韩丝袜情趣美女图片| 国产美女精品在线| 亚洲美女视频在线| 欧美一区二区私人影院日本| 国产成人免费高清| 一区二区在线看| 精品人在线二区三区| 成人h动漫精品一区二| 亚洲成人午夜电影| 久久精品一区二区三区av| 91在线视频网址| 蜜桃视频免费观看一区| 国产精品网站在线| 在线播放/欧美激情| 国产91精品精华液一区二区三区 | 欧美性xxxxxx少妇| 美美哒免费高清在线观看视频一区二区 | 欧美精品一级二级三级| 国产综合成人久久大片91| 亚洲黄色性网站| 久久这里只有精品6| 在线观看欧美日本| 国产精品亚洲成人| 午夜激情综合网| 欧美激情在线一区二区| 在线成人av影院| 成人avav影音| 麻豆91免费观看| 亚洲一区二区在线观看视频 | 一区二区免费在线| 国产日韩亚洲欧美综合| 777xxx欧美| 91成人免费电影| 成人免费观看视频| 久久国产免费看| 午夜伊人狠狠久久| 亚洲男人的天堂在线观看| 久久精品水蜜桃av综合天堂| 在线成人av影院| 欧美性感一类影片在线播放| 91同城在线观看| 国产一区二区三区四区五区入口 | 亚洲精品久久嫩草网站秘色| 国产欧美一区二区三区在线老狼| 制服丝袜av成人在线看| 99国产精品久久久久| 国产一区在线观看视频| 蜜桃av噜噜一区| 亚洲成av人片一区二区梦乃| 亚洲人快播电影网| 欧美韩日一区二区三区四区| 欧美精品一区二区精品网| 91精品国产色综合久久| 欧美日韩国产高清一区二区三区 | 亚洲永久免费av| 国产精品成人免费在线| 中文字幕免费观看一区| 日本一区二区三级电影在线观看| 26uuu欧美| 国产亚洲精久久久久久| 精品国产乱码久久久久久1区2区| 精品美女在线播放| 亚洲国产精品高清| 久久精品视频在线免费观看| 久久久久久97三级| 国产精品网友自拍| 亚洲色图一区二区三区| 亚洲男同性恋视频| 一区二区三区波多野结衣在线观看| 亚洲伦理在线精品| 亚洲国产美国国产综合一区二区| 亚洲免费在线视频一区 二区| 亚洲色图丝袜美腿| 亚洲一卡二卡三卡四卡| 日韩av电影免费观看高清完整版| 日韩av一区二区三区| 久久99精品国产麻豆不卡| 国产一区二区三区蝌蚪| 成人av资源站| 欧美体内she精高潮| 欧美一区二区三区四区久久 | 久久99精品久久久久久久久久久久| 久久精品国产99国产精品| 国产乱国产乱300精品| 成人av在线播放网址| 欧洲一区在线观看| 日韩欧美自拍偷拍| 国产精品人成在线观看免费| 亚洲精品老司机| 免费久久99精品国产| 国产不卡视频一区二区三区| 一本到高清视频免费精品| 91精品在线观看入口| 国产校园另类小说区| 亚洲美女屁股眼交3| 国产在线精品一区在线观看麻豆| 成人黄动漫网站免费app| 欧美色欧美亚洲另类二区| 日韩精品一区二区三区中文不卡| 国产精品久久久久久久浪潮网站| 亚洲成精国产精品女| 国产精品一区二区你懂的| 精品视频一区二区不卡| 国产婷婷色一区二区三区| 亚洲国产成人91porn| 丁香亚洲综合激情啪啪综合| 精品视频123区在线观看| 久久久国产精华| 午夜精品123| 99久精品国产| 久久亚洲精品小早川怜子| 亚洲国产美国国产综合一区二区| 国产91在线看| 日韩欧美一级二级| 亚洲高清视频的网址| 成人av电影在线| 精品国内片67194| 亚洲成av人片一区二区梦乃 | 亚洲欧美激情一区二区| 激情深爱一区二区| 欧美另类z0zxhd电影| 国产精品毛片大码女人| 成人网页在线观看| 欧美一级日韩免费不卡| 亚洲一区二三区| 一本大道久久a久久精二百| 久久先锋影音av| 久久精品久久精品| 91精品国产一区二区| 一区二区三区在线视频播放| 成人黄色一级视频| 国产偷v国产偷v亚洲高清| 国产麻豆日韩欧美久久| 欧美成人精品福利| 日本成人在线不卡视频| 欧美在线观看一区二区| 亚洲欧美一区二区久久| 成人免费av在线| 国产精品麻豆网站| 国产毛片精品视频| 久久人人97超碰com| 国产乱子轮精品视频| 精品国免费一区二区三区| 麻豆精品新av中文字幕| 日韩三级免费观看| 蜜桃av一区二区在线观看|