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

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

?? scanner.re

?? a little DFA compiler.
?? RE
字號:
/* $Id: scanner.re 663 2007-04-01 11:22:15Z helly $ */#include <stdlib.h>#include <string.h>#include <iostream>#include <sstream>#include "scanner.h"#include "parser.h"#include "y.tab.h"#include "globals.h"#include "dfa.h"extern YYSTYPE yylval;#ifndef MAX#define MAX(a,b) (((a)>(b))?(a):(b))#endif#define	BSIZE	8192#define	YYCTYPE		unsigned char#define	YYCURSOR	cursor#define	YYLIMIT		lim#define	YYMARKER	ptr#define	YYFILL(n)	{cursor = fill(cursor);}#define	RETURN(i)	{cur = cursor; return i;}namespace re2c{Scanner::Scanner(std::istream& i, std::ostream& o)	: in(i)	, out(o)	, bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL)	, top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0){    ;}char *Scanner::fill(char *cursor){	if(!eof)	{		uint cnt = tok - bot;		if(cnt)		{			memcpy(bot, tok, lim - tok);			tok = bot;			ptr -= cnt;			cursor -= cnt;			pos -= cnt;			lim -= cnt;		}		if((top - lim) < BSIZE)		{			char *buf = new char[(lim - bot) + BSIZE];			memcpy(buf, tok, lim - tok);			tok = buf;			ptr = &buf[ptr - bot];			cursor = &buf[cursor - bot];			pos = &buf[pos - bot];			lim = &buf[lim - bot];			top = &lim[BSIZE];			delete [] bot;			bot = buf;		}		in.read(lim, BSIZE);		if ((cnt = in.gcount()) != BSIZE )		{			eof = &lim[cnt]; *eof++ = '\0';		}		lim += cnt;	}	return cursor;}/*!re2czero    = "\000";any     = [\000-\377];dot     = any \ [\n];esc     = dot \ [\\];istring = "[" "^" ((esc \ [\]]) | "\\" dot)* "]" ;cstring = "["     ((esc \ [\]]) | "\\" dot)* "]" ;dstring = "\""    ((esc \ ["] ) | "\\" dot)* "\"";sstring = "'"     ((esc \ ['] ) | "\\" dot)* "'" ;letter  = [a-zA-Z];digit   = [0-9];number  = "0" | ("-"? [1-9] digit*);name    = (letter|"_") (letter|digit|"_")*;cname   = ":" name;space   = [ \t];eol     = ("\r\n" | "\n");config  = "re2c" cname+;value   = [^\r\n; \t]* | dstring | sstring;*/int Scanner::echo(){    char *cursor = cur;    bool ignore_eoc = false;    int  ignore_cnt = 0;    if (eof && cursor == eof) // Catch EOF	{    	return 0;	}    tok = cursor;echo:/*!re2c	"/*!re2c"	{					if (bUsedYYMaxFill && bSinglePass) {						fatal("found scanner block after YYMAXFILL declaration");					}					out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok));					tok = cursor;					RETURN(1);				}	"/*!max:re2c" {					if (bUsedYYMaxFill) {						fatal("cannot generate YYMAXFILL twice");					}					out << "#define YYMAXFILL " << maxFill << std::endl;					tok = pos = cursor;					ignore_eoc = true;					bUsedYYMaxFill = true;					goto echo;				}	"/*!getstate:re2c" {					tok = pos = cursor;					genGetState(out, topIndent, 0);					ignore_eoc = true;					goto echo;				}	"/*!ignore:re2c" {					tok = pos = cursor;					ignore_eoc = true;					goto echo;				}	"*" "/"	"\r"? "\n"	{					cline++;					if (ignore_eoc) {						if (ignore_cnt) {							out << sourceFileInfo;						}						ignore_eoc = false;						ignore_cnt = 0;					} else {						out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));					}					tok = pos = cursor;					goto echo;				}	"*" "/"		{					if (ignore_eoc) {						if (ignore_cnt) {							out << "\n" << sourceFileInfo;						}						ignore_eoc = false;						ignore_cnt = 0;					} else {						out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));					}					tok = pos = cursor;					goto echo;				}	"\n"		{					if (ignore_eoc) {						ignore_cnt++;					} else {						out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok));					}					tok = pos = cursor; cline++;				  	goto echo;				}	zero		{					if (!ignore_eoc) {						out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok) - 1); // -1 so we don't write out the \0					}					if(cursor == eof) {						RETURN(0);					}				}	any			{					goto echo;				}*/}int Scanner::scan(){    char *cursor = cur;    uint depth;scan:    tchar = cursor - pos;    tline = cline;    tok = cursor;	if (iscfg == 1)	{		goto config;	}	else if (iscfg == 2)	{   		goto value;    }/*!re2c	"{"			{ depth = 1;				  goto code;				}	"/*"			{ depth = 1;				  goto comment; }	"*/"			{ tok = cursor;				  RETURN(0); }	dstring			{ cur = cursor;				  yylval.regexp = strToRE(token());				  return STRING; }	sstring			{ cur = cursor;				  yylval.regexp = strToCaseInsensitiveRE(token());				  return STRING; }	"\""			{ fatal("unterminated string constant (missing \")"); }	"'"				{ fatal("unterminated string constant (missing ')"); }	istring			{ cur = cursor;				  yylval.regexp = invToRE(token());				  return RANGE; }	cstring			{ cur = cursor;				  yylval.regexp = ranToRE(token());				  return RANGE; }	"["			{ fatal("unterminated range (missing ])"); }	[()|=;/\\]		{ RETURN(*tok); }	[*+?]			{ yylval.op = *tok;				  RETURN(CLOSE); }	"{0,}"		{ yylval.op = '*';				  RETURN(CLOSE); }	"{" [0-9]+ "}"		{ yylval.extop.minsize = atoi((char *)tok+1);				  yylval.extop.maxsize = atoi((char *)tok+1);				  RETURN(CLOSESIZE); }	"{" [0-9]+ "," [0-9]+ "}"	{ yylval.extop.minsize = atoi((char *)tok+1);				  yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));				  RETURN(CLOSESIZE); }	"{" [0-9]+ ",}"		{ yylval.extop.minsize = atoi((char *)tok+1);				  yylval.extop.maxsize = -1;				  RETURN(CLOSESIZE); }	"{" [0-9]* ","		{ fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); }	config		{ cur = cursor;				  tok+= 5; /* skip "re2c:" */				  iscfg = 1;				  yylval.str = new Str(token());				  return CONFIG;				}	name		{ cur = cursor;				  yylval.symbol = Symbol::find(token());				  return ID; }	"."			{ cur = cursor;				  yylval.regexp = mkDot();				  return RANGE;				}	space+			{ goto scan; }	eol			{ if(cursor == eof) RETURN(0);				  pos = cursor; cline++;				  goto scan;	    			}	any			{ std::ostringstream msg;				  msg << "unexpected character: ";				  prtChOrHex(msg, *tok);				  fatal(msg.str().c_str());				  goto scan;				}*/code:/*!re2c	"}"			{ if(--depth == 0){					cur = cursor;					yylval.token = new Token(token(), tline);					return CODE;				  }				  goto code; }	"{"			{ ++depth;				  goto code; }	"\n"		{ if(cursor == eof) fatal("missing '}'");				  pos = cursor; cline++;				  goto code;				}	zero		{ if(cursor == eof) {					if (depth) fatal("missing '}'");					RETURN(0);				  }				  goto code;				}	dstring | sstring | any	{ goto code; }*/comment:/*!re2c	"*/"		{ if(--depth == 0)					goto scan;				    else					goto comment; }	"/*"		{ ++depth;				  fatal("ambiguous /* found");				  goto comment; }	"\n"		{ if(cursor == eof) RETURN(0);				  tok = pos = cursor; cline++;				  goto comment;				}	any			{ if(cursor == eof) RETURN(0);				  goto comment; }*/config:/*!re2c	space+		{ goto config; }	"=" space*	{ iscfg = 2;				  cur = cursor;				  RETURN('='); 				}	any			{ fatal("missing '='"); }*/value:/*!re2c	number		{ cur = cursor;				  yylval.number = atoi(token().to_string().c_str());				  iscfg = 0;				  return NUMBER;				}	value		{ cur = cursor;				  yylval.str = new Str(token());				  iscfg = 0;				  return VALUE;				}*/}void Scanner::fatal(uint ofs, const char *msg) const{	out.flush();	std::cerr << "re2c: error: "		<< "line " << tline << ", column " << (tchar + ofs + 1) << ": "		<< msg << std::endl;   	exit(1);}Scanner::~Scanner(){	if (bot)	{		delete [] bot;	}}} // end namespace re2c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久夜色精品国产使用方法| 欧美一区日本一区韩国一区| 国产欧美精品一区二区色综合| 免费人成在线不卡| 日韩精品最新网址| 狠狠色狠狠色合久久伊人| 欧美变态凌虐bdsm| 国产一区999| 国产精品久久久久久户外露出| av电影在线不卡| 亚洲国产日日夜夜| 日韩一区二区三区免费观看| 激情综合五月婷婷| 国产精品美女久久久久aⅴ国产馆| 99久久国产免费看| 亚洲国产一区视频| 2023国产精品视频| 成人毛片视频在线观看| 一二三四社区欧美黄| 欧美日韩第一区日日骚| 九色综合狠狠综合久久| 国产精品欧美久久久久无广告| 日本高清不卡aⅴ免费网站| 午夜精品一区二区三区电影天堂 | 天堂午夜影视日韩欧美一区二区| 日韩一区二区三区在线观看| www.亚洲精品| 日韩精品高清不卡| 中文字幕不卡一区| 欧美日本一区二区| 成人激情av网| 日本免费新一区视频| 国产欧美精品国产国产专区| 欧洲av一区二区嗯嗯嗯啊| 久久爱www久久做| 中文字幕va一区二区三区| 欧美日本一区二区在线观看| 国产宾馆实践打屁股91| 午夜精品久久久久久久久| 久久久不卡网国产精品一区| 欧美色爱综合网| 国产精品一区免费在线观看| 久久99最新地址| 中文字幕视频一区二区三区久| 91精品国产麻豆国产自产在线| 成人开心网精品视频| 免费高清在线视频一区·| 亚洲色图丝袜美腿| 久久精品一区二区三区四区| 欧美裸体一区二区三区| 91污在线观看| 丰满少妇在线播放bd日韩电影| 日本视频在线一区| 亚洲国产wwwccc36天堂| 最新国产精品久久精品| 久久久久久久免费视频了| 日韩欧美久久久| 欧美日韩国产精选| 91女人视频在线观看| 国产大陆亚洲精品国产| 久久爱另类一区二区小说| 视频在线观看91| 亚洲无人区一区| 一区二区三区中文字幕电影 | 欧亚洲嫩模精品一区三区| 成人免费福利片| 国产成人aaaa| 国产酒店精品激情| 黑人精品欧美一区二区蜜桃| 免费成人av在线播放| 午夜亚洲国产au精品一区二区| 一区二区三区四区不卡在线| 成人免费小视频| 日本一区二区三区电影| 亚洲国产精品黑人久久久| 久久精品夜色噜噜亚洲aⅴ| 精品久久久久久久久久久院品网| 欧美一区二区福利在线| 欧美一区二区在线看| 4438x亚洲最大成人网| 欧美丰满少妇xxxxx高潮对白| 欧美日韩精品系列| 7777女厕盗摄久久久| 91精品综合久久久久久| 日韩欧美黄色影院| 国产亚洲综合性久久久影院| 国产亚洲精品久| 一区在线中文字幕| 国产福利一区在线| 国产盗摄女厕一区二区三区| 成人免费毛片app| 99久久精品免费看国产| 91福利国产成人精品照片| 欧美日韩一级二级三级| 欧美一卡二卡三卡| 国产午夜精品一区二区| 中文一区在线播放| 亚洲激情av在线| 日韩vs国产vs欧美| 国模娜娜一区二区三区| 成人综合日日夜夜| 91久久一区二区| 欧美一级片在线观看| 精品日韩一区二区三区免费视频| 久久久久久久久久久久久夜| 中文字幕制服丝袜成人av| 亚洲欧美电影院| 天堂资源在线中文精品| 久久se这里有精品| 成人av影视在线观看| 欧美精品在线一区二区| 久久嫩草精品久久久久| 亚洲色图色小说| 日本在线不卡视频| 高清不卡一区二区在线| 欧美日韩精品欧美日韩精品一综合| 日韩久久久精品| 亚洲乱码中文字幕| 美女一区二区视频| 99久久777色| 欧美成人bangbros| 亚洲制服欧美中文字幕中文字幕| 麻豆精品蜜桃视频网站| 色综合久久久久| 久久午夜电影网| 亚洲bt欧美bt精品| 成人爽a毛片一区二区免费| 欧美日韩激情一区| 国产精品理论片| 麻豆91免费观看| 91国内精品野花午夜精品 | 色88888久久久久久影院野外| 91精品国产一区二区三区香蕉| 国产精品嫩草久久久久| 欧美aaa在线| 色成人在线视频| 久久精品视频在线看| 日韩av成人高清| 日本国产一区二区| 国产精品久线在线观看| 国模大尺度一区二区三区| 欧美日韩国产大片| 亚洲欧美日韩中文字幕一区二区三区 | 美脚の诱脚舐め脚责91| 色狠狠一区二区| 国产精品久久久久影院色老大| 久久精品国产精品亚洲精品| 欧美亚洲国产bt| 亚洲美女偷拍久久| 成人ar影院免费观看视频| 欧美不卡一区二区三区四区| 婷婷开心激情综合| 欧美无砖砖区免费| 一区二区三区中文在线| 99r精品视频| 中文字幕在线不卡国产视频| 国产成人精品一区二区三区网站观看 | 1024成人网| 成人网页在线观看| 国产日韩亚洲欧美综合| 国产乱子伦一区二区三区国色天香| 在线电影国产精品| 日韩精品乱码av一区二区| 欧美日韩中文字幕精品| 一区二区三区精品视频| 91国产丝袜在线播放| 亚洲精品欧美二区三区中文字幕| av在线不卡免费看| 1024成人网| 色哟哟亚洲精品| 亚洲午夜一区二区| 中文字幕不卡在线观看| 国产不卡视频在线播放| 中国av一区二区三区| kk眼镜猥琐国模调教系列一区二区| 中文无字幕一区二区三区| 成人午夜大片免费观看| 亚洲欧美日韩一区二区| 色婷婷香蕉在线一区二区| 一区二区三区欧美日韩| 欧美日韩一区二区三区视频 | 欧美日韩国产中文| 三级一区在线视频先锋| 欧美不卡激情三级在线观看| 国产一区二区三区免费| 中文字幕av在线一区二区三区| av电影天堂一区二区在线观看| 一区二区在线观看免费| 3751色影院一区二区三区| 韩国av一区二区三区四区| 欧美国产激情二区三区| 日本高清不卡一区| 青娱乐精品在线视频| 国产三区在线成人av| 91视频在线观看免费| 日韩激情视频网站| 国产日本欧洲亚洲| 欧日韩精品视频| 久久99蜜桃精品| 一区在线观看视频|