Ejemplo n.º 1
0
void SP_XmlSTagAttrNameReader :: read( SP_XmlSTagParser * parser, char c )
{
	if( 1 == mWait4Quot ) {
		if( '"' == c ) {
			addAttrName( parser, mBuffer->getBuffer() );
			changeReader( parser, new SP_XmlSTagEqualMarkReader() );
		} else {
			mBuffer->append( c );
		}
	} else {
		if( isspace( c ) ) {
			if( 0 == mBuffer->getSize() ) {
				//leading space, skip
			} else {
				addAttrName( parser, mBuffer->getBuffer() );
				changeReader( parser, new SP_XmlSTagEqualMarkReader() );
			}
		} else {
			if( '"' == c && 0 == mBuffer->getSize() ) {
				mWait4Quot = 1;
			} else if( '=' == c ) {
				addAttrName( parser, mBuffer->getBuffer() );
				SP_XmlSTagReader * reader = new SP_XmlSTagEqualMarkReader();
				changeReader( parser, reader );
				reader->read( parser, c );
			} else {
				mBuffer->append( c );
			}
		}
	}
}
Ejemplo n.º 2
0
void
Configs::readArg(char* arg)
{
  if (arg[0] == '-')
    changeReader(arg[1]);
  else
    (this->*m_paramReader)(arg);
}
Ejemplo n.º 3
0
void SP_XmlSTagEqualMarkReader :: read( SP_XmlSTagParser * parser, char c )
{
	if( isspace( c ) ) {
		//skip
	} else if( '=' == c ) {
		changeReader( parser, new SP_XmlSTagAttrValueReader() );
	} else {
		//addAttrValue( parser, "" );
		//SP_XmlSTagReader * reader = new SP_XmlSTagAttrNameReader();
		//changeReader( parser, reader );
		//reader->read( parser, c );

		setError( parser, "miss '=' between name & value" );
	}
}
Ejemplo n.º 4
0
void SP_XmlSTagNameReader :: read( SP_XmlSTagParser * parser, char c )
{
	if( isspace( c ) ) {
		if( 0 == mBuffer->getSize() ) {
			//leading space, skip
		} else {
			setName( parser, mBuffer->getBuffer() );
			changeReader( parser, new SP_XmlSTagAttrNameReader() );
		}
	} else if( '\0' == c ) {
		setError( parser, "miss tag name" );
	} else {
		mBuffer->append( c );
	}
}
Ejemplo n.º 5
0
void SP_XmlSTagAttrValueReader :: read( SP_XmlSTagParser * parser, char c )
{
	if( 0 == mHasReadQuot ) {
		if( isspace( c ) ) {
			//skip  
		} else if( '"' == c ) {
			mHasReadQuot = 1;
		} else if( '\'' == c ) {
			mHasReadQuot = 2;
		} else {
			setError( parser, "unknown attribute value start" );
		}
	} else {
		if( ( 1 == mHasReadQuot && '"' == c ) 
				|| ( 2 == mHasReadQuot && '\'' == c ) ) {
			addAttrValue( parser, mBuffer->getBuffer() );
			changeReader( parser, new SP_XmlSTagAttrNameReader() );
		} else {
			mBuffer->append( c );
		}
	}
}