You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2001/06/14 20:27:52 UTC

cvs commit: xml-xalan/c/src/PlatformSupport StringTokenizer.cpp StringTokenizer.hpp

dbertoni    01/06/14 11:27:51

  Modified:    c/src/PlatformSupport StringTokenizer.cpp
                        StringTokenizer.hpp
  Log:
  New nextToken() overload to tokenize directly into a string.
  
  Revision  Changes    Path
  1.5       +48 -0     xml-xalan/c/src/PlatformSupport/StringTokenizer.cpp
  
  Index: StringTokenizer.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/StringTokenizer.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StringTokenizer.cpp	2000/11/02 01:45:36	1.4
  +++ StringTokenizer.cpp	2001/06/14 18:27:30	1.5
  @@ -202,6 +202,54 @@
   
   
   
  +void
  +StringTokenizer::nextToken(XalanDOMString&	theToken)
  +{
  +	assert(m_CurrentIndex < m_StringLength);
  +
  +	// Find the index of the next delimiter.
  +	unsigned int	theIndex = FindNextDelimiterIndex(m_CurrentIndex);
  +
  +	if (theIndex == m_CurrentIndex)
  +	{
  +		m_CurrentIndex = theIndex + 1;
  +
  +		if (m_fReturnTokens == true)
  +		{
  +			// The next delimiter is at the current index.  If we're
  +			// returning delimiters as tokens, then make that the
  +			// return value.  Otherwise, return an empty string.
  +			substring(
  +				m_String,
  +				theToken,
  +				theIndex,
  +				theIndex + 1);
  +		}
  +		else if (m_CurrentIndex < m_StringLength)
  +		{
  +			theToken = nextToken();
  +		}
  +	}
  +	else
  +	{
  +		if (theIndex == m_CurrentIndex)
  +		{
  +			theIndex = FindNextDelimiterIndex(m_CurrentIndex + 1);
  +		}
  +		assert(theIndex > m_CurrentIndex);
  +
  +		substring(
  +				m_String,
  +				theToken,
  +				m_CurrentIndex,
  +				theIndex);
  +
  +		m_CurrentIndex = theIndex;
  +	}
  +}
  +
  +
  +
   unsigned int
   StringTokenizer::countTokens() const
   {
  
  
  
  1.8       +9 -0      xml-xalan/c/src/PlatformSupport/StringTokenizer.hpp
  
  Index: StringTokenizer.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/PlatformSupport/StringTokenizer.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StringTokenizer.hpp	2000/11/02 01:45:37	1.7
  +++ StringTokenizer.hpp	2001/06/14 18:27:35	1.8
  @@ -151,6 +151,15 @@
   	nextToken();
   
   	/**
  +	 * Retrieve the next token to be parsed; behavior is undefined if there are
  +	 * no more tokens
  +	 * 
  +	 * @param theToken next token string
  +	 */
  +	virtual void
  +	nextToken(XalanDOMString&	theToken);
  +
  +	/**
   	 * Count the number of tokens yet to be parsed
   	 * 
   	 * @return number of remaining tokens
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org