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

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

?? hwordstream.cpp

?? 積下的一點C++編程序庫源碼
?? CPP
字號:
// HWordStream.cpp: implementation of the HWordStream class.
//
//////////////////////////////////////////////////////////////////////

//#include "stdafx.h"
#include "HWordStream.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//可做標識符開頭的字符范圍
CHAR_RANG HWordStream::g_RangeLetter[]={
	{'a','z'},
	{'A','Z'},
	{(char)0x80,(char)0xff},////漢字的字符范圍
	{'_','_'}
};
//數字1到9的字符范圍
CHAR_RANG HWordStream::g_Range1_9[]={
	{'1','9'}
};
//數字0到9的字符范圍
CHAR_RANG HWordStream::g_Range0_9[]={
	{'0','9'}
};
//十六進制的字符范圍
CHAR_RANG HWordStream::g_Range16[]={
	{'0','9'},
	{'A','F'},
	{'a','f'}
};

//浮點數(出現小數點之后)
BEGIN_STATE_MAP(g_FloatTable,HWordStream)

	MAP_STATE_RANGE(g_Range0_9,		WORD_FLOAT,		g_FloatTable)	//十進制數字
END_STATE_MAP()

//十進制數字
BEGIN_STATE_MAP(g_Num10Table,HWordStream)

	MAP_STATE_RANGE(g_Range0_9,		WORD_NUM10,		g_Num10Table)	//十進制數字
	MAP_STATE_SET  (".",			WORD_FLOAT,		g_FloatTable)	//浮點數(出現小數點)
END_STATE_MAP()

//八進制數字
BEGIN_STATE_MAP(g_Num8Table,HWordStream)

	MAP_STATE_RANGE(g_Range0_9,		WORD_NUM8,		g_Num8Table)	//八進制數字
	MAP_STATE_SET  (".",			WORD_FLOAT,		g_FloatTable)	//浮點數(出現小數點)
END_STATE_MAP()

//十六進制數字
BEGIN_STATE_MAP(g_Num16Table,HWordStream)

	MAP_STATE_RANGE(g_Range16,		WORD_NUM16,		g_Num16Table)	//十六進制數字
END_STATE_MAP()

//只有一個'0'的數字狀態
BEGIN_STATE_MAP(g_Num0Table,HWordStream)

	MAP_STATE_RANGE(g_Range0_9,		WORD_NUM8,		g_Num8Table)	//八進制數字
	MAP_STATE_SET  ("Xx",			WORD_NUM16,		g_Num16Table)	//十六進制數字
	MAP_STATE_SET  (".",			WORD_FLOAT,		g_FloatTable)	//浮點數(出現小數點)
END_STATE_MAP()

//標識符
BEGIN_STATE_MAP(g_NameTable,HWordStream)

	MAP_STATE_RANGE(g_RangeLetter,	WORD_VAR_NAME,	g_NameTable)		//標識符
	MAP_STATE_RANGE(g_Range0_9,		WORD_VAR_NAME,	g_NameTable)		//標識符
END_STATE_MAP()

//!
BEGIN_STATE_MAP(g_NotTable,HWordStream)

	MAP_STATE_SET  ("=",			WORD_NOTEQU,		NULL)	//	"!="
END_STATE_MAP()

//<
BEGIN_STATE_MAP(g_LessTable,HWordStream)

	MAP_STATE_SET  ("=",			WORD_LESSEQU,		NULL)	//	"<="
END_STATE_MAP()

//>
BEGIN_STATE_MAP(g_BigerTable,HWordStream)

	MAP_STATE_SET  ("=",			WORD_BIGEREQU,		NULL)	//	">="
END_STATE_MAP()

//-
BEGIN_STATE_MAP(g_SubTable,HWordStream)

	MAP_STATE_SET  (">",			WORD_ARROW,		NULL)	//	"->"
END_STATE_MAP()

//=
BEGIN_STATE_MAP(g_EQUTable,HWordStream)

	MAP_STATE_SET  ("=",			WORD_DOUBLE_EQU,		NULL)	//	"=="
END_STATE_MAP()

//\n
BEGIN_STATE_MAP(g_LFnTable,HWordStream)

	MAP_STATE_SET  ("\r",			WORD_LF,		NULL)	//	"\n\r"
END_STATE_MAP()

//\r
BEGIN_STATE_MAP(g_LFrTable,HWordStream)

	MAP_STATE_SET  ("\n",			WORD_LF,		NULL)	//	"\r\n"
END_STATE_MAP()

//"/"
BEGIN_STATE_MAP(g_DivTable,HWordStream)

	MAP_STATE_SET  ("/",			WORD_REM,		NULL)	//	"//"
END_STATE_MAP()

//":"
BEGIN_STATE_MAP(g_ColonTable,HWordStream)

	MAP_STATE_SET  (":",			WORD_DOUBLE_COLON,		NULL)	//	"::"
END_STATE_MAP()

BEGIN_STATE_MAP(g_NULL,HWordStream)

	//結束字符
	MAP_STATE_SET  ("\0",			WORD_NULL,		NULL)

	///////////////////////////////////////////////////////////////////////////
	MAP_STATE_RANGE(g_RangeLetter,	WORD_VAR_NAME,		g_NameTable)	//標識符
	MAP_STATE_RANGE(g_Range1_9,		WORD_NUM10,		g_Num10Table)	//十進制數字
	MAP_STATE_SET  ("0",			WORD_NUM10,		g_Num0Table)	//只有一個'0'的數字狀態

	//雙目操作符
	MAP_STATE_SET  ("!",			WORD_NOT,		g_NotTable)	//	"!",	"!="
	MAP_STATE_SET  ("<",			WORD_LESS,		g_LessTable)// "<",		"<="
	MAP_STATE_SET  (">",			WORD_BIGER,		g_BigerTable)// ">",	">="
	MAP_STATE_SET  ("-",			WORD_SUB,		g_SubTable)	//"-",		"->"
	MAP_STATE_SET  ("=",			WORD_EQU,		g_EQUTable)	//"=",		"=="	
	MAP_STATE_SET  ("\n",			WORD_LF,		g_LFnTable)	//"\n",		"\n\r"
	MAP_STATE_SET  ("\r",			WORD_LF,		g_LFrTable)	//"\r",		"\r\n"
	MAP_STATE_SET  ("/",			WORD_DIV,		g_DivTable)	//"/",		"//"
	MAP_STATE_SET  (":",			WORD_COLON,		g_ColonTable)//":",		"::"	

	//單目操作符
	MAP_STATE_SET  ("+",			WORD_ADD,		NULL)//加號
	MAP_STATE_SET  ("*",			WORD_MUL,		NULL)//乘
	MAP_STATE_SET  ("&",			WORD_AND,		NULL)//與
	MAP_STATE_SET  ("|",			WORD_OR,		NULL)//或
	MAP_STATE_SET  ("%",			WORD_MOD,		NULL)//求余
	MAP_STATE_SET  ("^",			WORD_POWER,		NULL)//冪

	MAP_STATE_SET  ("(",			WORD_PAREN_FONT,		NULL)//小括號
	MAP_STATE_SET  (")",			WORD_PAREN_BACK,		NULL)//小括號
	MAP_STATE_SET  ("[",			WORD_BRACKET_SQUARE1,		NULL)//中括號
	MAP_STATE_SET  ("]",			WORD_BRACKET_SQUARE2,		NULL)//中括號
	MAP_STATE_SET  ("{",			WORD_BRACE_FONT,		NULL)//大括號
	MAP_STATE_SET  ("}",			WORD_BRACE_BACK,		NULL)//大括號
	MAP_STATE_SET  (";",			WORD_SEMI,		NULL)		//分號
	MAP_STATE_SET  (".",			WORD_DOT,		NULL)		//點

	MAP_STATE_SET  (",",			WORD_COMMA,		NULL)		//逗號
	MAP_STATE_SET  ("\t",			WORD_TAB,		NULL)		//TAB
	MAP_STATE_SET  (" ",			WORD_SPACE,		NULL)		//空格	0X20
	MAP_STATE_SET  ("\"",			WORD_DOUBLE_QUOTE,		NULL)//雙引號
	MAP_STATE_SET  ("'",			WORD_SINGEL_QUOTE,		NULL)//單引號
	
END_STATE_MAP()

HWordStream::HWordStream()
{
	m_BufChar=0;
	m_pStream=0;
	m_bHadBuf=false;
}

HWordStream::~HWordStream()
{

}
/*
 *	newState[in,out],輸入舊狀態,輸出新狀態,如返回NULL則是最終狀態
 如果輸入為“#”則在任何范圍內都找不到合適的狀態,這種情況只有輸入狀態是NULL才不能回退并且newState置為WORD_UNKNOWN
 */
PCHAR_MAPITEM HWordStream::FindNextState(PCHAR_MAPITEM pMap,char c,WORDSTATE *newState)
{
	PCHAR_RANG pRange;
	PCHAR_MAPITEM pMapTemp;
	char *pSet;
	
	pMapTemp=pMap;
	while(pMapTemp->nCount)//范圍或集合元素的數量
	{
		if(pMapTemp->type==E_RANG)//范圍
		{
			pRange=pMapTemp->CharRang.pRang;
			for(int i=0;i<pMapTemp->nCount ;i++)
			{
				if(pRange->MaxChar >=c && 
					pRange->MinChar<=c)
				{
					*newState = pMapTemp->CurState;
					return pMapTemp->pNextTable;
				}
				pRange++;
			}
		}
		else////集合
		{
			pSet=pMapTemp->CharRang.pCharSet;
			for(int i=0;i<pMapTemp->nCount;i++)
			{
				if(pSet[i]==c)
				{
					*newState = pMapTemp->CurState;
					return pMapTemp->pNextTable;
				}
			}
		}
		pMapTemp++;
	}
	if(pMap!=g_NULL)
	{
		this->BackOneChar(c);
	}
	else
	{
		*newState = WORD_UNKNOWN;
	}
	return NULL;
}
int HWordStream::GetOneWord(H_WORD &word)
{
	char c;
	PCHAR_MAPITEM pMap;
	word.type=WORD_NULL;
	word.dwWordLen =0;
	word.dwStringLen =0;

	pMap=g_NULL;

	do {
		c=this->GetOneChar();

		if(word.dwWordLen<MAX_NAME_LEN)
		{
			word.szWord[word.dwWordLen]=c;
			word.dwWordLen++;
		}
		word.dwStringLen ++;

	} while(pMap=this->FindNextState(pMap,c,&word.type));

	if(this->m_bHadBuf )//在匹配狀態時可能回退一個字符,將它從word中減去!!
	{
		word.dwStringLen--;
		word.dwWordLen--;
	}
	word.szWord[word.dwWordLen]=0;

	word.colum =this->m_Colum;
	word.row =this->m_Row;

	if(word.type ==WORD_LF)
	{
		this->m_Row++;
		this->m_Colum=1;
	}
	else
	{
		this->m_Colum+=word.dwStringLen;
	}
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一级二级三级| 懂色中文一区二区在线播放| 中文字幕永久在线不卡| 2023国产精品视频| 久久影院视频免费| 国产亚洲短视频| 日本一二三不卡| 成人免费在线播放视频| 亚洲色图制服诱惑 | 亚洲bt欧美bt精品| 亚洲一区二区欧美| 丝瓜av网站精品一区二区| 亚洲成人精品一区| 久久99久久99| 国产精品资源网站| 99国产精品视频免费观看| 色偷偷久久人人79超碰人人澡 | 亚洲一级二级三级| 三级不卡在线观看| 国产精品99久久久久久有的能看| 风间由美一区二区三区在线观看| www.亚洲国产| 6080国产精品一区二区| 精品少妇一区二区| 自拍视频在线观看一区二区| 亚洲bdsm女犯bdsm网站| 老司机免费视频一区二区| 顶级嫩模精品视频在线看| 色狠狠桃花综合| 精品日韩一区二区三区免费视频| 亚洲综合图片区| 日韩高清不卡一区| 国产很黄免费观看久久| 91久久精品一区二区二区| 日韩一区二区三| 成人免费一区二区三区视频 | 欧美一区二区视频在线观看2022 | 亚洲精品中文字幕乱码三区| 日韩电影免费在线| av一本久道久久综合久久鬼色| 欧美日韩美女一区二区| 国产亚洲成aⅴ人片在线观看| 亚洲国产wwwccc36天堂| 国产一区二区在线影院| 欧美视频中文字幕| 国产精品久久久久9999吃药| 奇米影视7777精品一区二区| aaa亚洲精品| 久久久久久久久久久黄色| 亚洲第一会所有码转帖| 丰满亚洲少妇av| 精品久久久久久无| 午夜精品在线视频一区| 99热99精品| 中文字幕av不卡| 久久99精品国产.久久久久| 91香蕉视频mp4| 日本一区二区三区免费乱视频| 日韩二区三区在线观看| 欧美亚洲动漫精品| 亚洲人被黑人高潮完整版| 国产99久久久精品| 久久精品亚洲乱码伦伦中文| 久久狠狠亚洲综合| 欧美一级二级在线观看| 同产精品九九九| 欧美少妇bbb| 午夜视频一区二区| 欧美日韩一卡二卡三卡| 亚洲国产欧美日韩另类综合| 91在线视频在线| 亚洲欧美日韩精品久久久久| 成人高清视频在线| 国产精品久久久久久久久久久免费看| 国产一区二区0| 欧美极品少妇xxxxⅹ高跟鞋| 激情成人午夜视频| 久久先锋影音av鲁色资源网| 精品一区二区三区视频| 久久久午夜电影| 国产成人精品三级| 国产精品入口麻豆原神| 97久久精品人人做人人爽50路| 亚洲欧洲一区二区三区| 91污片在线观看| 亚洲国产成人porn| 91精品在线免费| 狠狠v欧美v日韩v亚洲ⅴ| 2024国产精品| 99精品视频在线播放观看| 亚洲色图19p| 欧美日韩专区在线| 久久9热精品视频| 久久久精品tv| 在线亚洲高清视频| 国产麻豆精品久久一二三| 国产精品午夜在线| 欧美中文字幕一二三区视频| 日韩在线观看一区二区| 精品久久99ma| 99麻豆久久久国产精品免费优播| 亚洲精品精品亚洲| 欧美成人video| 成人激情黄色小说| 日韩va欧美va亚洲va久久| 精品对白一区国产伦| 99久久久精品| 蜜臀久久99精品久久久久久9| 久久久亚洲高清| 欧美日韩国产三级| 福利视频网站一区二区三区| 一区二区三区影院| 久久久久久久久99精品| 91高清视频在线| 国产一区二区三区精品欧美日韩一区二区三区| 国产无一区二区| 色一区在线观看| 国产jizzjizz一区二区| 五月激情六月综合| 中文字幕欧美一| 精品欧美久久久| 欧美三级电影网| av一本久道久久综合久久鬼色| 喷白浆一区二区| 亚洲另类春色国产| 中文字幕不卡三区| 日韩欧美国产三级| 欧美日韩专区在线| 日本久久一区二区| 处破女av一区二区| 国产精品一区二区不卡| 午夜激情一区二区三区| 亚洲男人天堂一区| 一区在线观看免费| 国产精品污污网站在线观看| 欧美成人伊人久久综合网| 91福利精品视频| 91美女片黄在线| 不卡在线视频中文字幕| 国产成人亚洲综合a∨猫咪| 老司机精品视频一区二区三区| 一级特黄大欧美久久久| 亚洲人成亚洲人成在线观看图片| 国产婷婷精品av在线| 欧美精品一区二区三区蜜桃视频| 337p亚洲精品色噜噜| 欧美精品久久99| 欧美片网站yy| 欧美亚洲国产bt| 欧美日韩在线免费视频| 欧美综合视频在线观看| 在线观看亚洲精品| 在线视频你懂得一区二区三区| 成人动漫视频在线| 色综合久久综合| 欧美在线一区二区| 欧美日韩一区在线观看| 欧美日韩在线亚洲一区蜜芽| 91.com视频| 欧美videofree性高清杂交| 精品国产乱码久久久久久久久 | 成人精品国产一区二区4080| 黄色小说综合网站| 国产成人av影院| 波多野结衣在线一区| 色综合久久久久| 欧美精品久久天天躁| 欧美一级欧美三级在线观看| 亚洲精品一区二区三区在线观看| 国产亚洲午夜高清国产拍精品| 中文字幕不卡三区| 亚洲综合色区另类av| 日韩电影免费在线观看网站| 激情综合一区二区三区| bt7086福利一区国产| 在线观看成人小视频| 日韩亚洲欧美一区| 国产精品美女视频| 亚洲国产日韩一区二区| 久久国产剧场电影| 成av人片一区二区| 欧美一区二区成人6969| 国产偷v国产偷v亚洲高清| 亚洲激情自拍偷拍| 免费成人性网站| 91在线观看高清| 日韩你懂的在线播放| 中文字幕一区免费在线观看| 午夜精品免费在线| 成人99免费视频| 日韩欧美亚洲国产精品字幕久久久| 欧美激情一区二区三区不卡| 午夜av电影一区| 不卡av免费在线观看| 欧美一级生活片| 《视频一区视频二区| 久久av资源网| 欧美精品三级日韩久久| 亚洲日本免费电影| 国产精品一二三四|