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

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

?? 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一区二区三区免费野_久草精品视频
精品国产伦一区二区三区观看体验 | 国产欧美一区二区精品性| 精品乱人伦一区二区三区| 亚洲日本电影在线| 国产综合一区二区| 欧美视频在线观看一区二区| 久久综合视频网| 亚洲韩国一区二区三区| 国产成人综合在线| 91精品国产色综合久久不卡蜜臀 | 蜜桃视频一区二区三区 | 国产日韩av一区| 日韩不卡免费视频| 色悠久久久久综合欧美99| 欧美精品一区男女天堂| 全国精品久久少妇| 在线观看区一区二| 亚洲精品免费电影| 成人国产精品免费观看| 久久午夜电影网| 天堂久久一区二区三区| 在线一区二区三区做爰视频网站| 欧美激情在线一区二区| 国产在线播放一区三区四| 欧美私模裸体表演在线观看| 亚洲欧美日韩久久| 91性感美女视频| 国产精品日韩精品欧美在线| 久久国产精品色| 91麻豆精品国产91久久久久久| 亚洲五月六月丁香激情| 色综合天天做天天爱| 1区2区3区国产精品| 国产成人av一区二区三区在线观看| 日韩欧美成人一区| 日韩高清在线电影| 欧美欧美午夜aⅴ在线观看| 亚洲一区二区免费视频| 欧美综合欧美视频| 亚洲线精品一区二区三区| 色94色欧美sute亚洲线路二 | 亚洲永久精品大片| 在线亚洲一区观看| 亚洲精品久久久久久国产精华液| 色妞www精品视频| 亚洲图片你懂的| 欧美伊人久久久久久午夜久久久久| 一区二区三区在线视频免费| 99精品视频在线观看免费| 亚洲码国产岛国毛片在线| 日本韩国一区二区三区视频| 亚洲男同性视频| 91麻豆国产自产在线观看| 亚洲图片欧美视频| 日韩欧美专区在线| 国产九色sp调教91| 亚洲精品伦理在线| 7777精品伊人久久久大香线蕉的| 蜜桃av一区二区三区电影| 欧美精品一区二区三区蜜桃| 国产福利一区二区| 亚洲一区日韩精品中文字幕| 91精品免费在线| 国产一区二区三区国产| 国产精品不卡在线| 精品视频资源站| 国产美女精品一区二区三区| 国产精品二三区| 欧美一区二区二区| 不卡在线观看av| 性久久久久久久| 国产亚洲精品aa午夜观看| 93久久精品日日躁夜夜躁欧美| 午夜精品一区在线观看| 久久尤物电影视频在线观看| 91污在线观看| 成人激情视频网站| 午夜视频一区二区| 国产色婷婷亚洲99精品小说| 91国偷自产一区二区三区成为亚洲经典| 视频在线观看一区| 亚洲视频免费在线观看| 91精品麻豆日日躁夜夜躁| 不卡的av网站| 日韩极品在线观看| 日韩毛片精品高清免费| 欧美成人精品1314www| 一本色道久久综合亚洲精品按摩| 韩国毛片一区二区三区| 亚洲伦理在线免费看| 久久网站最新地址| 欧美猛男gaygay网站| 成人app网站| 看电影不卡的网站| 亚洲国产一区在线观看| 中文字幕在线一区| 精品国产乱码久久久久久免费 | 一区二区三区成人在线视频 | 欧美精品123区| 99久精品国产| 欧美高清视频不卡网| 91黄色免费版| 91在线视频在线| 国产寡妇亲子伦一区二区| 久久91精品国产91久久小草| 午夜欧美2019年伦理| 亚洲激情一二三区| 亚洲天堂成人网| 中文字幕在线观看不卡| 国产精品午夜在线| 国产欧美精品一区二区色综合朱莉| 精品久久久三级丝袜| 欧美一区二区视频在线观看2020 | 亚洲成人动漫在线免费观看| 国产精品久久久久久亚洲毛片| 精品粉嫩超白一线天av| 日韩久久精品一区| 日韩欧美在线1卡| 欧美一区永久视频免费观看| 欧美日韩一区二区三区不卡| 在线欧美日韩精品| 91福利小视频| 在线看国产日韩| 色综合亚洲欧洲| 色av成人天堂桃色av| 色天天综合久久久久综合片| 91黄色免费版| 欧美日韩一本到| 欧美精三区欧美精三区| 欧美剧情电影在线观看完整版免费励志电影| 在线观看视频一区| 欧美无人高清视频在线观看| 在线观看欧美精品| 欧美精选一区二区| 精品少妇一区二区三区免费观看| 久久久91精品国产一区二区精品 | 亚洲欧美综合网| 亚洲精品成人在线| 五月天丁香久久| 久久99国内精品| 高清不卡在线观看| 色哦色哦哦色天天综合| 欧美精品一二三区| 久久色中文字幕| 亚洲日本中文字幕区| 亚洲成在人线在线播放| 男男视频亚洲欧美| 国产精品99久久久久久久vr| 99re热视频这里只精品| 欧美图片一区二区三区| 精品毛片乱码1区2区3区| 国产精品久久久久久久久晋中| 亚洲午夜激情网页| 国产在线播精品第三| 91小视频免费看| 精品欧美乱码久久久久久| 国产精品传媒入口麻豆| 亚洲h在线观看| 成人午夜伦理影院| 欧美日韩一区二区电影| 国产视频不卡一区| 亚洲va在线va天堂| 粉嫩久久99精品久久久久久夜| 欧洲一区二区av| 国产亚洲综合性久久久影院| 亚洲免费看黄网站| 久久成人免费网站| 欧美午夜影院一区| 国产日本欧洲亚洲| 亚洲一区二区在线免费观看视频| 国产精品综合视频| 欧美三级日韩三级国产三级| 欧美国产欧美综合| 青青草国产成人99久久| 99re这里只有精品视频首页| 日韩一级精品视频在线观看| 亚洲人成影院在线观看| 国产a久久麻豆| 日韩三级高清在线| 亚洲一区二区三区不卡国产欧美| 大胆欧美人体老妇| 日韩欧美高清dvd碟片| 午夜精品久久一牛影视| 成人午夜视频在线观看| 精品久久一区二区| 日韩精品福利网| 欧美日韩中文字幕精品| 亚洲欧美日韩人成在线播放| 国v精品久久久网| 精品久久久久99| 免费成人小视频| 欧美午夜影院一区| 亚洲高清视频的网址| 色一情一伦一子一伦一区| 国产精品九色蝌蚪自拍| 丰满岳乱妇一区二区三区| 精品国产免费一区二区三区香蕉 | 51精品国自产在线| 亚洲123区在线观看| 欧美性大战xxxxx久久久|