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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tinyxmlparser.cpp

?? sigmadesign smp8623 gui source code ,bingo
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*www.sourceforge.net/projects/tinyxmlOriginal code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use thissoftware in a product, an acknowledgment in the product documentationwould be appreciated but is not required.2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.3. This notice may not be removed or altered from any source distribution.*//**  @file   tinyxmlparser.cpp    @modified by Raul Chirinos  @date   2004-08-26    Changes:    - Replaced string.h routines for their RMF equivalents  - Replaced character buffer allocations with RMMalloc  - Replaced ctype.h routines with macro equivalents not to use locale    since this support is removed from ucLinux  */#include "tinyxml.h"//#include <ctype.h>//#define DEBUG_PARSERstatic int count = 0;// Note tha "PutString" hardcodes the same list. This// is less flexible than it appears. Changing the entries// or order will break putstring.	TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] = {	{ "&amp;",  5, '&' },	{ "&lt;",   4, '<' },	{ "&gt;",   4, '>' },	{ "&quot;", 6, '\"' },	{ "&apos;", 6, '\'' }};// Bunch of unicode info at://		http://www.unicode.org/faq/utf_bom.html// Including the basic of this table, which determines the #bytes in the// sequence from the lead byte. 1 placed for invalid sequences --// although the result will be junk, pass it through as much as possible.// Beware of the non-characters in UTF-8:	//				ef bb bf (Microsoft "lead bytes")//				ef bf be//				ef bf bf const int TiXmlBase::utf8ByteTable[256] = {	//	0	1	2	3	4	5	6	7	8	9	a	b	c	d	e	f		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x00		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x10		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x20		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x30		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x40		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x50		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x60		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x70	End of ASCII range		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x80 0x80 to 0xc1 invalid		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x90 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xa0 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xb0 		1,	1,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xc0 0xc2 to 0xdf 2 byte		2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xd0		3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	// 0xe0 0xe0 to 0xef 3 byte		4,	4,	4,	4,	4,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1	// 0xf0 0xf0 to 0xf4 4 byte, 0xf5 and higher invalid};void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ){	const unsigned long BYTE_MASK = 0xBF;	const unsigned long BYTE_MARK = 0x80;	const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };	if (input < 0x80) 		*length = 1;	else if ( input < 0x800 )		*length = 2;	else if ( input < 0x10000 )		*length = 3;	else if ( input < 0x200000 )		*length = 4;	else		{ *length = 0; return; }	// This code won't covert this correctly anyway.	output += *length;	// Scary scary fall throughs.	switch (*length) 	{		case 4:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 3:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 2:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 1:			--output; 			*output = (char)(input | FIRST_BYTE_MARK[*length]);	}}// Replace below/*static*/ int TiXmlBase::IsAlpha( unsigned char anyByte, TiXmlEncoding encoding ){	if ( encoding == TIXML_ENCODING_UTF8 )	{		if ( anyByte < 127 )			//return isalpha( anyByte );			return ((anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.	}	else	{		//return isalpha( anyByte );		return ((anyByte >= 0x41 && anyByte <= 0x5a) ||			(anyByte >= 0x61 && anyByte <= 0x7a));	}}/*static*/ int TiXmlBase::IsAlphaNum( unsigned char anyByte, TiXmlEncoding encoding ){	if ( encoding == TIXML_ENCODING_UTF8 )	{		if ( anyByte < 127 )			//return isalnum( anyByte );			return ((anyByte >= 0x30 && anyByte <= 0x39) || 				(anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.	}	else	{		//return isalnum( anyByte );		return ((anyByte >= 0x30 && anyByte <= 0x39) || 				(anyByte >= 0x41 && anyByte <= 0x5a) ||				(anyByte >= 0x61 && anyByte <= 0x7a));	}}class TiXmlParsingData{	friend class TiXmlDocument;  public:	void Stamp( const char* now, TiXmlEncoding encoding );	const TiXmlCursor& Cursor()	{ return cursor; }  private:	// Only used by the document!	TiXmlParsingData( const char* start, int _tabsize, int row, int col )	{		assert( start );		stamp = start;		tabsize = _tabsize;		cursor.row = row;		cursor.col = col;	}	TiXmlCursor		cursor;	const char*		stamp;	int				tabsize;};void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding ){	assert( now );	// Do nothing if the tabsize is 0.	if ( tabsize < 1 )	{		return;	}	// Get the current row, column.	int row = cursor.row;	int col = cursor.col;	const char* p = stamp;	assert( p );	while ( p < now )	{		// Code contributed by Fletcher Dunn: (modified by lee)		switch (*p) {			case 0:				// We *should* never get here, but in case we do, don't				// advance past the terminating null character, ever				return;			case '\r':				// bump down to the next line				++row;				col = 0;								// Eat the character				++p;				// Check for \r\n sequence, and treat this as a single character				if (*p == '\n') {					++p;				}				break;			case '\n':				// bump down to the next line				++row;				col = 0;				// Eat the character				++p;				// Check for \n\r sequence, and treat this as a single				// character.  (Yes, this bizarre thing does occur still				// on some arcane platforms...)				if (*p == '\r') {					++p;				}				break;			case '\t':				// Eat the character				++p;				// Skip to next tab stop				col = (col / tabsize + 1) * tabsize;				break;			case (char)(0xef):				if ( encoding == TIXML_ENCODING_UTF8 )				{					if ( *(p+1) && *(p+2) )					{						// In these cases, don't advance the column. These are						// 0-width spaces.						if ( *(p+1)==(char)(0xbb) && *(p+2)==(char)(0xbf) )							p += 3;							else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbe) )							p += 3;							else if ( *(p+1)==(char)(0xbf) && *(p+2)==(char)(0xbf) )							p += 3;							else							{ p +=3; ++col; }	// A normal character.					}				}				else				{					++p;					++col;				}				break;			default:				if ( encoding == TIXML_ENCODING_UTF8 )				{					// Eat the 1 to 4 byte utf8 character.					int step = TiXmlBase::utf8ByteTable[*((unsigned char*)p)];					if ( step == 0 )						step = 1;		// Error case from bad encoding, but handle gracefully.					p += step;					// Just advance one column, of course.					++col;				}				else				{					++p;					++col;				}				break;		}	}	cursor.row = row;	cursor.col = col;	assert( cursor.row >= -1 );	assert( cursor.col >= -1 );	stamp = p;	assert( stamp );}const char* TiXmlBase::SkipWhiteSpace( const char* p, TiXmlEncoding encoding ){	if ( !p || !*p )	{		return 0;	}	if ( encoding == TIXML_ENCODING_UTF8 )	{		while ( *p )		{			// Skip the stupid Microsoft UTF-8 Byte order marks			if (	*(p+0)==(char) 0xef 				 && *(p+1)==(char) 0xbb 				 && *(p+2)==(char) 0xbf )			{				p += 3;				continue;			}			else if(*(p+0)==(char) 0xef				 && *(p+1)==(char) 0xbf				 && *(p+2)==(char) 0xbe )			{				p += 3;				continue;			}			else if(*(p+0)==(char) 0xef				 && *(p+1)==(char) 0xbf				 && *(p+2)==(char) 0xbf )			{				p += 3;				continue;			}			if ( IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )		// Still using old rules for white space.				++p;			else				break;		}	}	else	{		while ( *p && IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )			++p;	}	return p;}#ifdef TIXML_USE_STL/*static*/ bool TiXmlBase::StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag ){	for( ;; )	{		if ( !in->good() ) return false;		int c = in->peek();		// At this scope, we can't get to a document. So fail silently.		if ( !IsWhiteSpace( c ) || c <= 0 )			return true;		*tag += (char) in->get();	}}/*static*/ bool TiXmlBase::StreamTo( TIXML_ISTREAM * in, int character, TIXML_STRING * tag ){	//assert( character > 0 && character < 128 );	// else it won't work in utf-8	while ( in->good() )	{		int c = in->peek();		if ( c == character )			return true;		if ( c <= 0 )		// Silent failure: can't get document at this scope			return false;		in->get();		*tag += (char) c;	}	return false;}#endifconst char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncoding encoding ){	*name = "";	assert( p );	// Names start with letters or underscores.	// Of course, in unicode, tinyxml has no idea what a letter *is*. The	// algorithm is generous.	//	// After that, they can be letters, underscores, numbers,	// hyphens, or colons. (Colons are valid ony for namespaces,	// but tinyxml can't tell namespaces from names.)	if (    p && *p 		 && ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )	{		while(		p && *p				&&	(		IsAlphaNum( (unsigned char ) *p, encoding ) 						 || *p == '_'						 || *p == '-'						 || *p == '.'						 || *p == ':' ) )		{			(*name) += *p;			++p;		}		return p;	}	return 0;}const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == '#' && *(p+2) )	{		unsigned long ucs = 0;		unsigned delta = 0;		unsigned mult = 1;		if ( *(p+2) == 'x' )		{			// Hexadecimal.			if ( !*(p+3) ) return 0;			const char* q = p+3;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != 'x' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else if ( *q >= 'a' && *q <= 'f' )					ucs += mult * (*q - 'a' + 10);				else if ( *q >= 'A' && *q <= 'F' )					ucs += mult * (*q - 'A' + 10 );				else 					return 0;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return 0;			const char* q = p+2;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != '#' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else 					return 0;				mult *= 10;				--q;			}		}		if ( encoding == TIXML_ENCODING_UTF8 )		{			// convert the UCS to UTF-8			ConvertUTF32ToUTF8( ucs, value, length );		}		else		{			*value = (char)ucs;			*length = 1;		}		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲h精品动漫在线观看| 国产日韩精品一区二区浪潮av| 成人综合婷婷国产精品久久| 韩国欧美国产一区| 国产一区二区三区免费| 国产精品18久久久久久vr| 午夜精品免费在线| 亚洲国产wwwccc36天堂| 精品一区二区在线免费观看| 婷婷国产在线综合| 精品午夜一区二区三区在线观看| 国产做a爰片久久毛片| 欧美一区二区在线视频| 欧美精品一区二区久久婷婷| 中文一区二区在线观看| 亚洲一区电影777| 日韩av电影天堂| 国产精品影视在线| 在线亚洲一区二区| 精品久久久久一区二区国产| 亚洲色图20p| 久久精品国产亚洲a| av中文字幕在线不卡| 欧美裸体一区二区三区| 中文无字幕一区二区三区| 午夜精品一区二区三区三上悠亚| 国产成人高清在线| 欧美日韩国产综合一区二区三区 | 91福利国产成人精品照片| 日韩一区二区三区在线视频| 综合电影一区二区三区 | 色999日韩国产欧美一区二区| 精品国产污污免费网站入口 | 中文字幕佐山爱一区二区免费| 日本欧美韩国一区三区| 欧洲一区在线观看| 日韩av一级片| 99久久精品免费看国产 | 中文字幕一区二区三区在线不卡| 午夜婷婷国产麻豆精品| 在线影视一区二区三区| 夜夜嗨av一区二区三区四季av| 成人激情视频网站| 亚洲欧洲日韩综合一区二区| 成人免费观看男女羞羞视频| 精品精品欲导航| 精品在线观看视频| 久久精品人人做| 国产亚洲1区2区3区| 亚洲地区一二三色| 91精品国产免费久久综合| 老司机免费视频一区二区三区| 精品久久久久久久久久久院品网| 国产在线精品国自产拍免费| 国产三级久久久| 欧美综合一区二区| 久久精品国产澳门| 欧美高清在线精品一区| 色激情天天射综合网| 琪琪久久久久日韩精品| 亚洲国产激情av| 欧美中文字幕一区二区三区| 久久91精品久久久久久秒播| 天堂午夜影视日韩欧美一区二区| 欧美日韩国产高清一区二区三区| 裸体歌舞表演一区二区| 欧美韩国日本不卡| 这里只有精品电影| av一本久道久久综合久久鬼色| 亚洲一级二级三级在线免费观看| 91精品国产综合久久久久久久久久 | 精品一区二区三区欧美| 亚洲图片欧美综合| 久久精品一区二区| 日韩一级二级三级| 欧美少妇性性性| 91视频你懂的| 成人国产在线观看| 国产在线播放一区| 久久99国产精品麻豆| 亚洲一区二区三区小说| 伊人一区二区三区| 国产精品不卡在线| 中文字幕乱码亚洲精品一区| 久久久久久久久久看片| 精品少妇一区二区三区免费观看| 欧美高清性hdvideosex| 欧美丝袜丝nylons| 欧美性生活久久| 欧美日韩久久久一区| 欧美色欧美亚洲另类二区| 欧美日韩国产123区| 精品污污网站免费看| 欧美精品久久久久久久多人混战 | 日韩欧美国产麻豆| 欧美精品一区二区在线观看| 精品国产一区久久| 国产欧美精品一区二区三区四区| 国产亚洲污的网站| 国产精品全国免费观看高清| 一区二区三区丝袜| 夜夜嗨av一区二区三区四季av| 亚洲一区二区偷拍精品| 免费观看在线综合色| 毛片av中文字幕一区二区| 日韩黄色小视频| 国产91精品免费| 欧美中文字幕一区二区三区 | 欧美videofree性高清杂交| 日本一区二区三区免费乱视频| 亚洲一区二区欧美| 成人三级在线视频| 欧美精品粉嫩高潮一区二区| 国产日韩精品一区二区浪潮av| 亚洲一区二区精品视频| 成人午夜免费视频| 精品国产99国产精品| 国产欧美一区二区精品秋霞影院| 亚洲欧美二区三区| 国产精品一区二区免费不卡 | 欧美日韩一级黄| 亚洲欧洲国产日本综合| 黄色资源网久久资源365| 欧美理论片在线| 亚洲靠逼com| 99久久精品国产导航| 国产亚洲精品bt天堂精选| 奇米一区二区三区| 欧美日韩免费观看一区二区三区| 国产精品国产三级国产aⅴ入口| 极品少妇xxxx精品少妇偷拍| 欧美高清www午色夜在线视频| 亚洲综合在线电影| 欧美日韩在线免费视频| 亚洲一区二区三区国产| 91精品久久久久久久99蜜桃| 中文字幕亚洲欧美在线不卡| 国产福利一区在线观看| 久久理论电影网| 高清av一区二区| ...av二区三区久久精品| 91丨porny丨首页| 亚洲v中文字幕| 91精品国产色综合久久不卡电影| 日韩黄色免费电影| 久久久久久毛片| 91日韩在线专区| 蜜桃久久久久久久| 国产精品网站一区| 欧美视频中文字幕| 激情综合五月婷婷| 国产精品电影一区二区| 色94色欧美sute亚洲线路一ni| 亚洲成人激情自拍| 欧美一区二区三区小说| 黄一区二区三区| 国产精品九色蝌蚪自拍| 91麻豆精品国产91久久久久| 国产精品资源在线| 一区二区三区四区激情| 久久久久97国产精华液好用吗| 91国产免费看| 成人三级伦理片| 老司机精品视频在线| 亚洲一区成人在线| 亚洲日本在线天堂| 精品国内二区三区| 91精品国产色综合久久久蜜香臀| 波多野结衣精品在线| 久久国产欧美日韩精品| 一二三区精品视频| 亚洲欧美日韩一区二区| 国产精品国产自产拍高清av王其| 欧美电影免费观看高清完整版| 欧美主播一区二区三区| 91一区二区三区在线播放| 成人晚上爱看视频| 国产制服丝袜一区| 国产专区综合网| 国产成人av电影在线观看| 精彩视频一区二区三区| 国产真实乱子伦精品视频| 九九**精品视频免费播放| 国产91在线看| 国产一区二区网址| 美女脱光内衣内裤视频久久网站| 日韩精品免费专区| 亚洲v精品v日韩v欧美v专区| 日本免费新一区视频| 国产精品一区二区免费不卡| 大美女一区二区三区| 一本色道亚洲精品aⅴ| 欧美日韩欧美一区二区| 色乱码一区二区三区88| 国内精品国产成人国产三级粉色 | 91色.com| 欧美日韩不卡一区二区| 久久久久久久久久久99999| 亚洲一区二区高清| 国模大尺度一区二区三区|