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

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

?? scan.l

?? C++版 詞法分析、語法分析器
?? 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.
 */

#ifndef lint
static char rcsid[] =
    "@(#) $Header: c:\\program\040files\\development\\cvs\040repository/flex++/scan.l,v 1.1.1.1 2002/04/13 06:01:33 Bear Exp $ (LBL)";
#endif

#undef yywrap

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

#define HEADER_ECHO fprintf(headerfile,"%s",yytext )
#define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
#define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );

#undef YY_DECL
#define YY_DECL \
	int flexscan()

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

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

#define PUT_BACK_STRING(str, start) \
	for ( i = strlen( (char *) (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;
%}

%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE
%x FIRSTCCL CCL ACTION RECOVER BRACEERROR C_COMMENT ACTION_COMMENT
%x ACTION_STRING PERCENT_BRACE_ACTION USED_LIST CODEBLOCK_2 XLATION
%x HEADER_BLOC HEADER2_BLOC NAME_DECLARE DEFINE_DECLARE DEFINE_CONTENT

WS		[ \t\f]+
OPTWS		[ \t\f]*
NOT_WS		[^ \t\f\n\r]

NAME		[a-z_][a-z_0-9-]*
NOT_NAME	[^a-z_\n\r]+

SCNAME		{NAME}
LINEFEED	("\n"|"\r"|"\r\n")
ESCSEQ		\\([^\n\r]|[0-9]{1,3}|x[0-9a-f]{1,2})

%%
    static int bracelevel, didadef;
    int i, indented_code, checking_used, new_xlation;
    int doing_codeblock = false;
    Char nmdef[MAXLINE], myesc();

^{WS}			indented_code = true; BEGIN(CODEBLOCK);
^#.*{LINEFEED}			++linenum; /* treat as a comment */
^"//".*{LINEFEED}		++linenum;  /* treat as a c++ comment */
^"/*"			ECHO; BEGIN(C_COMMENT);
^"%s"{NAME}?		return ( SCDECL );
^"%x"{NAME}?		return ( XSCDECL );
^"%name"{WS}		BEGIN(NAME_DECLARE);
^"%define"{WS}		BEGIN(DEFINE_DECLARE);
	

^"%{".*{LINEFEED}		{
			++linenum;
			line_directive_out( stdout );
			indented_code = false;
			BEGIN(CODEBLOCK);
			}
^"%header{".*{LINEFEED}		{
			++linenum;
			line_directive_out( headerfile );
			BEGIN(HEADER_BLOC);
			}

{WS}			return ( WHITESPACE );

^"%%".*			{
			set_lexer_name((char *)0);
			sectnum = 2;
			line_directive_out( headerfile );
      			if(headerfilename!=NULL)
		        {
      			 fprintf(stdout,
                          "#include \"%s\"\n",includefilename);
 			 header_skeleton_out();
    		 	};
			line_directive_out( stdout );
			BEGIN(SECT2PROLOG);
			return ( SECTEND );
			}

^"%used"		{
	pinpoint_message( "warning - %%used/%%unused have been deprecated" );
			checking_used = REALLY_USED; BEGIN(USED_LIST);
			}
^"%unused"		{
			checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
	pinpoint_message( "warning - %%used/%%unused have been deprecated" );
			checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
			}


^"%"[aeknopt]{WS}.*{LINEFEED}	{
#ifdef NOTDEF
			fprintf( stderr,
			     "old-style lex command at line %d ignored:\n\t%s",
				 linenum, yytext );
#endif
			++linenum;
			}

^"%"[cr]{OPTWS}		/* ignore old lex directive */

%t{OPTWS}{LINEFEED}		{
			++linenum;
			xlation =
			    (int *) malloc( sizeof( int ) * (unsigned) csize );

			if ( ! xlation )
			    flexfatal(
				"dynamic memory failure building %t table" );

			for ( i = 0; i < csize; ++i )
			    xlation[i] = 0;

			num_xlations = 0;

			BEGIN(XLATION);
			}

^"%"[^sxanpekotcru{}]{OPTWS}	synerr( "unrecognized '%' directive" );

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

{SCNAME}		RETURNNAME;
^{OPTWS}{LINEFEED}		++linenum; /* allows blank lines in section 1 */
{OPTWS}{LINEFEED}		++linenum; return ( '\n' );
.			{synerr( "illegal character" ); 
                         fprintf(stderr,
                           "Char : \\0x%x\n",yytext[yyleng-1]);
			BEGIN(RECOVER);}

<NAME_DECLARE>{NAME}	{set_lexer_name((char *)yytext);}
<NAME_DECLARE>{WS}	;
<NAME_DECLARE>{LINEFEED}	++linenum;BEGIN(INITIAL);
<NAME_DECLARE>.		synerr( "illegal character" );BEGIN(RECOVER);

<DEFINE_DECLARE>{NAME}	{ set_lexer_name((char *)0);
			line_directive_out( headerfile );
			fprintf(headerfile,"#define YY_%s_%s ",lexer_name,yytext);
			 BEGIN(DEFINE_CONTENT);
			}

<DEFINE_DECLARE>.	synerr( "illegal character" ); BEGIN(RECOVER);
<DEFINE_DECLARE>{LINEFEED}	++linenum;BEGIN(INITIAL);

<DEFINE_CONTENT>\\{LINEFEED}	HEADER_ECHO;++linenum;
<DEFINE_CONTENT>{LINEFEED}	++linenum;HEADER_ECHO;BEGIN(INITIAL);
<DEFINE_CONTENT>.	HEADER_ECHO;

<C_COMMENT>"*/"		ECHO; BEGIN(INITIAL);
<C_COMMENT>"*/".*{LINEFEED}	++linenum; ECHO; BEGIN(INITIAL);
<C_COMMENT>[^*\n\r]+	ECHO;
<C_COMMENT>"*"		ECHO;
<C_COMMENT>{LINEFEED}		++linenum; ECHO;

<HEADER_BLOC>^"%}".*{LINEFEED}	++linenum; BEGIN(INITIAL);
<HEADER_BLOC>"reject"	HEADER_ECHO; CHECK_REJECT(yytext);
<HEADER_BLOC>"yymore"	HEADER_ECHO; CHECK_YYMORE(yytext);
<HEADER_BLOC>{NAME}|{NOT_NAME}|.	HEADER_ECHO;
<HEADER_BLOC>{LINEFEED}		{
			++linenum;
			HEADER_ECHO;
			}


<HEADER2_BLOC>^"%}".*{LINEFEED}	++linenum; BEGIN(SECT2);
<HEADER2_BLOC>"reject"	HEADER_ECHO; CHECK_REJECT(yytext);
<HEADER2_BLOC>"yymore"	HEADER_ECHO; CHECK_YYMORE(yytext);
<HEADER2_BLOC>{NAME}|{NOT_NAME}|.	HEADER_ECHO;
<HEADER2_BLOC>{LINEFEED}		{
			++linenum;
			HEADER_ECHO;
			}




<CODEBLOCK>^"%}".*{LINEFEED}	++linenum; BEGIN(INITIAL);
<CODEBLOCK>"reject"	ECHO; CHECK_REJECT(yytext);
<CODEBLOCK>"yymore"	ECHO; CHECK_YYMORE(yytext);
<CODEBLOCK>{NAME}|{NOT_NAME}|.	ECHO;
<CODEBLOCK>{LINEFEED}		{
			++linenum;
			ECHO;
			if ( indented_code )
			    BEGIN(INITIAL);
			}


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

<PICKUPDEF>{NOT_WS}.*	{
			(void) strcpy( (char *) nmdef, (char *) yytext );

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

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

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

<PICKUPDEF>{LINEFEED}		{
			if ( ! didadef )
			    synerr( "incomplete name definition" );
			BEGIN(INITIAL);
			++linenum;
			}

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


<USED_LIST>{LINEFEED}		++linenum; BEGIN(INITIAL);
<USED_LIST>{WS}
<USED_LIST>"reject"	{
			if ( all_upper( yytext ) )
			    reject_really_used = checking_used;
			else
			    synerr( "unrecognized %used/%unused construct" );
			}
<USED_LIST>"yymore"	{
			if ( all_lower( yytext ) )
			    yymore_really_used = checking_used;
			else
			    synerr( "unrecognized %used/%unused construct" );
			}
<USED_LIST>{NOT_WS}+	synerr( "unrecognized %used/%unused construct" );


<XLATION>"%t"{OPTWS}{LINEFEED}	++linenum; BEGIN(INITIAL);
<XLATION>^{OPTWS}[0-9]+	++num_xlations; new_xlation = true;
<XLATION>^.		synerr( "bad row in translation table" );
<XLATION>{WS}		/* ignore whitespace */

<XLATION>{ESCSEQ}	{
			xlation[myesc( yytext )] =
				(new_xlation ? num_xlations : -num_xlations);
			new_xlation = false;
			}
<XLATION>.		{
			xlation[yytext[0]] =
				(new_xlation ? num_xlations : -num_xlations);
			new_xlation = false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看精品| 欧美日韩另类国产亚洲欧美一级| 亚洲视频在线一区二区| 日韩亚洲欧美在线| 日韩免费高清av| 精品伦理精品一区| 99精品视频一区二区| 久久电影网站中文字幕| 亚洲成人777| 夜夜嗨av一区二区三区| 国产精品三级av| 久久精品一区四区| 日韩欧美专区在线| 日韩一区二区三区四区| 欧美群妇大交群的观看方式| 欧美日韩一级片在线观看| 色天天综合色天天久久| 色天天综合久久久久综合片| 色哟哟一区二区在线观看| 懂色av中文一区二区三区| 亚洲国产乱码最新视频 | 亚洲午夜精品17c| 国产精品久久久久久久久免费桃花 | 樱桃国产成人精品视频| 亚洲精品高清在线观看| 一级特黄大欧美久久久| 亚洲一区成人在线| 三级影片在线观看欧美日韩一区二区 | 国产一区欧美一区| 韩国中文字幕2020精品| 福利91精品一区二区三区| k8久久久一区二区三区 | 91福利社在线观看| 国产成人免费视| 极品美女销魂一区二区三区| 亚洲综合精品久久| 视频一区二区中文字幕| 日本不卡在线视频| 国产精品资源网站| 91网站在线播放| 欧美日韩三级一区二区| 欧美tickling网站挠脚心| 久久综合中文字幕| 亚洲欧美日韩在线| 捆绑调教一区二区三区| 成人激情午夜影院| 欧美欧美午夜aⅴ在线观看| 久久新电视剧免费观看| 亚洲激情男女视频| 中文字幕精品一区二区三区精品| 中文字幕巨乱亚洲| 亚洲自拍偷拍九九九| 麻豆精品在线视频| 91玉足脚交白嫩脚丫在线播放| 欧美视频一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 成人免费小视频| 麻豆精品国产传媒mv男同| 成人午夜私人影院| 欧美一区二区在线观看| 精品国产麻豆免费人成网站| 成人免费一区二区三区在线观看 | 亚洲sss视频在线视频| 久久99精品国产麻豆婷婷| 91久久精品日日躁夜夜躁欧美| 久久综合久久综合亚洲| 亚洲一二三区在线观看| 国产精品自拍网站| 91精品久久久久久蜜臀| 亚洲欧美日韩电影| 精品亚洲aⅴ乱码一区二区三区| 91久久免费观看| 国产精品你懂的在线| 精品午夜一区二区三区在线观看| 色婷婷av一区| 亚洲视频1区2区| 国产一区二区三区精品视频| 3751色影院一区二区三区| 亚洲最大成人网4388xx| 成人午夜免费av| 欧美日韩国产经典色站一区二区三区| 国产精品乱人伦| 风间由美中文字幕在线看视频国产欧美| 欧美一级久久久| 日韩精品一级中文字幕精品视频免费观看 | 欧美理论在线播放| 亚洲综合色成人| 一本色道久久加勒比精品| 久久综合久久久久88| 午夜精品一区二区三区免费视频| 在线观看亚洲a| 一区二区三区欧美在线观看| 在线观看日韩精品| 亚洲午夜在线视频| 欧美裸体bbwbbwbbw| 日日欢夜夜爽一区| 日韩欧美一级二级| 国产一区二区三区免费播放| 欧美一区二区在线观看| 亚洲视频电影在线| 欧美午夜电影在线播放| 亚洲午夜精品在线| 56国语精品自产拍在线观看| 日韩va亚洲va欧美va久久| 欧美一三区三区四区免费在线看| 日本免费新一区视频| 精品久久国产老人久久综合| 久久99精品国产麻豆不卡| 久久精品视频网| 91麻豆国产福利在线观看| 亚洲一区二区三区四区在线| 欧美精品免费视频| 久久狠狠亚洲综合| 国产精品嫩草影院av蜜臀| 在线观看亚洲a| 精品在线一区二区| 欧美videos中文字幕| 久久精品国产亚洲a| 国产精品私人自拍| 精品视频资源站| 久久精品国产一区二区| 国产精品理伦片| 欧美日韩精品是欧美日韩精品| 国内成+人亚洲+欧美+综合在线| 日韩三级视频中文字幕| 成人国产精品免费| 天天色天天爱天天射综合| 国产日韩高清在线| 欧美久久久久久久久久| 国产激情视频一区二区在线观看 | 亚洲一区国产视频| 精品久久人人做人人爰| 色综合久久久网| 日韩有码一区二区三区| 国产精品福利一区二区三区| 欧美一级夜夜爽| 91视频.com| 国产真实乱子伦精品视频| 欧美国产欧美综合| 91精品啪在线观看国产60岁| 欧美日韩三级一区| 欧美老肥妇做.爰bbww视频| 在线国产亚洲欧美| 色婷婷国产精品| 在线观看免费亚洲| 在线精品视频一区二区| 欧美影片第一页| 色综合激情久久| 欧美亚洲一区三区| 欧美片在线播放| 欧美一区二区三区喷汁尤物| 91精品国产福利| 日韩欧美精品在线视频| 精品av综合导航| 久久综合丝袜日本网| 国产欧美一区二区精品性色| 国产精品沙发午睡系列990531| 欧美国产在线观看| 日韩毛片一二三区| 一区二区激情视频| 亚洲一二三四久久| 美脚の诱脚舐め脚责91 | 免费成人在线视频观看| 免费观看日韩电影| 国产91精品免费| 91福利在线看| 日韩视频在线观看一区二区| 久久天天做天天爱综合色| 国产精品女主播av| 亚洲成人手机在线| 国产在线日韩欧美| 91在线视频免费观看| 欧美猛男超大videosgay| 日韩一卡二卡三卡四卡| 国产肉丝袜一区二区| 亚洲精品国产高清久久伦理二区| 日韩综合小视频| 国产精品一区二区男女羞羞无遮挡 | 一区二区三区鲁丝不卡| 日韩精品久久久久久| 国产成人精品综合在线观看| 91视频精品在这里| 精品久久一二三区| 一区二区三区四区乱视频| 蜜桃精品视频在线| 色综合夜色一区| 久久综合给合久久狠狠狠97色69| 自拍偷拍欧美精品| 蜜乳av一区二区| 欧洲亚洲国产日韩| 六月丁香综合在线视频| 亚洲欧美一区二区三区孕妇| 亚洲福利视频导航| 免费观看在线综合色| 99这里只有久久精品视频| 久久久久久久久免费| 日韩毛片在线免费观看| 久久se这里有精品| 日韩中文字幕不卡| 91在线小视频|