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 2004/02/11 02:08:30 UTC

cvs commit: xml-xalan/c/src/xalanc/XPath XPath.cpp XPath.hpp XPathExpression.cpp XPathExpression.hpp XPathProcessorImpl.cpp XPathProcessorImpl.hpp

dbertoni    2004/02/10 17:08:30

  Modified:    c/src/xalanc/XPath XPath.cpp XPath.hpp XPathExpression.cpp
                        XPathExpression.hpp XPathProcessorImpl.cpp
                        XPathProcessorImpl.hpp
  Log:
  General cleanup to prepare for op map iterators.
  
  Revision  Changes    Path
  1.10      +244 -219  xml-xalan/c/src/xalanc/XPath/XPath.cpp
  
  Index: XPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPath.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XPath.cpp	6 Jan 2004 02:41:32 -0000	1.9
  +++ XPath.cpp	11 Feb 2004 01:08:30 -0000	1.10
  @@ -121,7 +121,7 @@
   XPath::unknownOpCodeError(
   			XalanNode*				context,
   			XPathExecutionContext&	executionContext,
  -			int						opPos) const
  +			OpCodePositionType		opPos) const
   {
   	XalanDOMString	theOpCode;
   			
  @@ -294,7 +294,7 @@
   const XObjectPtr
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	switch(m_expression.getOpCodeMapValue(opPos))
  @@ -488,7 +488,7 @@
   void
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					result) const
   {
  @@ -673,7 +673,7 @@
   void
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					result) const
   {
  @@ -858,7 +858,7 @@
   void
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			result) const
   {
  @@ -1054,7 +1054,7 @@
   void
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1264,7 +1264,7 @@
   const XObjectPtr
   XPath::executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		result) const
   {
  @@ -1365,11 +1365,11 @@
   {
   	assert(context != 0);
   
  -	int		opPos = 2;
  +	OpCodePositionType	opPos = 2;
   
  -	while(m_expression.m_opMap[opPos] == XPathExpression::eOP_LOCATIONPATHPATTERN)
  +	while(m_expression.getOpCodeMapValue(opPos) == XPathExpression::eOP_LOCATIONPATHPATTERN)
   	{
  -		const int	nextOpPos = m_expression.getNextOpCodePosition(opPos);
  +		const OpCodePositionType	nextOpPos = m_expression.getNextOpCodePosition(opPos);
   
   		score = locationPathPattern(executionContext, *context, opPos);
   
  @@ -1441,10 +1441,10 @@
   
   inline const XalanDOMString*
   getStringFromTokenQueue(
  -			const XPathExpression&	expression,
  -			int						opPos)
  +			const XPathExpression&	    expression,
  +            XPath::OpCodePositionType	opPos)
   {
  -	const int	tokenPosition =
  +	const XPath::OpCodePositionType     tokenPosition =
   				expression.getOpCodeMapValue(opPos);
   
   	if (tokenPosition < 0)
  @@ -1466,26 +1466,26 @@
   void
   XPath::getTargetData(TargetDataVectorType&	targetData) const
   {
  -	int opPos = 2;
  +	OpCodePositionType opPos = 2;
   
   	targetData.reserve(eDefaultTargetDataSize);
   
  -	while(m_expression.m_opMap[opPos] == XPathExpression::eOP_LOCATIONPATHPATTERN)
  +	while(m_expression.getOpCodeMapValue(opPos) == XPathExpression::eOP_LOCATIONPATHPATTERN)
   	{
  -		const int	nextOpPos = m_expression.getNextOpCodePosition(opPos);
  +		const OpCodePositionType	nextOpPos = m_expression.getNextOpCodePosition(opPos);
   
   		opPos += 2;
   	 
  -		int		stepCount = 0;
  +		unsigned long	stepCount = 0;
   
   		while(m_expression.getOpCodeMapValue(opPos) != XPathExpression::eENDOP)
   		{
   			++stepCount;
   
  -			const int	nextStepPos =
  +			const OpCodePositionType	nextStepPos =
   				m_expression.getNextOpCodePosition(opPos);
   
  -			const int	nextOp = m_expression.getOpCodeMapValue(nextStepPos);
  +			const OpCodePositionType	nextOp = m_expression.getOpCodeMapValue(nextStepPos);
   
   			if(nextOp == XPathExpression::eENDOP)
   			{
  @@ -1497,7 +1497,7 @@
   
   				bool	fIsAttribute = false;
   
  -				const int	stepType = m_expression.getOpCodeMapValue(opPos);
  +				const OpCodeMapValueType	stepType = m_expression.getOpCodeMapValue(opPos);
   
   				opPos += 3;
   
  @@ -1521,7 +1521,7 @@
   				case XPathExpression::eMATCH_ANY_ANCESTOR:
   				case XPathExpression::eMATCH_IMMEDIATE_ANCESTOR:
   					{
  -						const int	tok = m_expression.getOpCodeMapValue(opPos);
  +						const OpCodeMapValueType	tok = m_expression.getOpCodeMapValue(opPos);
   
   						switch(tok)
   						{
  @@ -1553,7 +1553,7 @@
   
   						case XPathExpression::eNODETYPE_PI:
   							{
  -								const int	argLen =
  +								const OpCodePositionType	argLen =
   									m_expression.getOpCodeMapValue(opPos - 3 + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   								targetLocalName = PSEUDONAME_PI;
  @@ -1663,7 +1663,7 @@
   bool
   XPath::Or(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1687,7 +1687,7 @@
   bool
   XPath::And(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;	
  @@ -1711,7 +1711,7 @@
   bool
   XPath::notequals(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;	
  @@ -1731,7 +1731,7 @@
   bool
   XPath::equals(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;	
  @@ -1751,7 +1751,7 @@
   bool
   XPath::lte(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;	
  @@ -1771,7 +1771,7 @@
   bool
   XPath::lt(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1791,7 +1791,7 @@
   bool
   XPath::gte(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1811,7 +1811,7 @@
   bool
   XPath::gt(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1831,13 +1831,13 @@
   double
   XPath::getNumericOperand(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	if (m_expression.getOpCodeMapValue(opPos) == XPathExpression::eOP_NUMBERLIT)
   	{
  -		assert(m_expression.m_tokenQueue.size() >
  -			unsigned(m_expression.getOpCodeMapValue(opPos + 3)));
  +		assert(m_expression.tokenQueueSize() >
  +			m_expression.getOpCodeMapValue(opPos + 3));
   
   		return m_expression.getNumberLiteral(m_expression.getOpCodeMapValue(opPos + 2));
   	}
  @@ -1856,7 +1856,7 @@
   double
   XPath::plus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1875,7 +1875,7 @@
   void
   XPath::plus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1890,7 +1890,7 @@
   double
   XPath::minus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1909,7 +1909,7 @@
   void
   XPath::minus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1924,7 +1924,7 @@
   double
   XPath::mult(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1943,7 +1943,7 @@
   void
   XPath::mult(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1958,7 +1958,7 @@
   double
   XPath::div(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;
  @@ -1977,7 +1977,7 @@
   void
   XPath::div(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1992,7 +1992,7 @@
   double
   XPath::mod(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	opPos += 2;	
  @@ -2011,7 +2011,7 @@
   void
   XPath::mod(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -2026,7 +2026,7 @@
   double
   XPath::neg(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	return DoubleSupport::negative(getNumericOperand(context, opPos + 2, executionContext));
  @@ -2037,7 +2037,7 @@
   void
   XPath::neg(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -2052,7 +2052,7 @@
   const XObjectPtr
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	typedef XPathExecutionContext::BorrowReturnMutableNodeRefList	BorrowReturnMutableNodeRefList;
  @@ -2069,7 +2069,7 @@
   void
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					result) const
   {
  @@ -2087,7 +2087,7 @@
   void
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			double&					result) const
   {
  @@ -2105,7 +2105,7 @@
   void
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			result) const
   {
  @@ -2123,7 +2123,7 @@
   void
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -2142,7 +2142,7 @@
   void
   XPath::Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		result) const
   {
  @@ -2181,21 +2181,22 @@
   
   const XObjectPtr
   XPath::literal(
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 2));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 2]));
  +	assert(m_expression.opCodeMapSize() > opPos + 2);
  +	assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 2));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +    const XToken* const	    theLiteral = m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(theLiteral != 0);
   
   	if (m_inStylesheet == true)
   	{
  -		return executionContext.getXObjectFactory().createString(theLiteral);
  +		return executionContext.getXObjectFactory().createString(*theLiteral);
   	}
   	else
   	{
  -		return executionContext.getXObjectFactory().createString(theLiteral.str());
  +		return executionContext.getXObjectFactory().createString(theLiteral->str());
   	}
   }
   
  @@ -2203,156 +2204,177 @@
   
   void
   XPath::literal(
  -			int		opPos,
  -			bool&	theResult) const
  +			OpCodePositionType	opPos,
  +			bool&	            theResult) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 2));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 2]));
  +	assert(m_expression.opCodeMapSize() > opPos + 2);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 2));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +    const XToken* const	    theLiteral = m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(theLiteral != 0);
   
  -	theResult = theLiteral.boolean();
  +	theResult = theLiteral->boolean();
   }
   
   
   
   void
   XPath::literal(
  -			int			opPos,
  -			double&		theResult) const
  +			OpCodePositionType	opPos,
  +			double&		        theResult) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 2));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 2]));
  +	assert(m_expression.opCodeMapSize() > opPos + 2);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 2));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +    const XToken* const	    theLiteral = m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(theLiteral != 0);
   
  -	theResult = theLiteral.num();
  +	theResult = theLiteral->num();
   }
   
   
   
   void
   XPath::literal(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			XalanDOMString&		theString) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 2));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 2]));
  +	assert(m_expression.opCodeMapSize() > opPos + 2);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 2));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +    const XToken* const	    theLiteral = m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(theLiteral != 0);
   
  -	theLiteral.str(theString);
  +	theLiteral->str(theString);
   }
   
   
   
   void
   XPath::literal(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			FormatterListener&	formatterListener,
   			MemberFunctionPtr	function) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 2));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 2]));
  +	assert(m_expression.opCodeMapSize() > opPos + 2);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 2));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +    const XToken* const	    theLiteral = m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(theLiteral != 0);
   
  -	theLiteral.str(formatterListener, function);
  +	theLiteral->str(formatterListener, function);
   }
   
   
   
   const XObjectPtr
   XPath::variable(
  -			int						opPos,
  +			OpCodePositionType	    opPos,
   			XPathExecutionContext&	executionContext) const
   {
  -	const XObject&	ns = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 2]];
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XObject&	varName = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +    const XToken* const	    ns =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 2));
  +    assert(ns != 0);
  +
  +	const XToken* const	    varName =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(varName != 0);
   
  -	return executionContext.getVariable(XalanQNameByReference(ns.str(), varName.str()), m_locator);
  +	return executionContext.getVariable(XalanQNameByReference(ns->str(), varName->str()), m_locator);
   }
   
   
   
   const XObjectPtr
   XPath::numberlit(
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 3));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 3]));
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +	const XToken* const	    theLiteral =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(theLiteral != 0);
   
   	if (m_inStylesheet == true)
   	{
  -		return executionContext.getXObjectFactory().createNumber(theLiteral);
  +		return executionContext.getXObjectFactory().createNumber(*theLiteral);
   	}
   	else
   	{
  -		return executionContext.getXObjectFactory().createNumber(theLiteral.num());
  +		return executionContext.getXObjectFactory().createNumber(theLiteral->num());
   	}
   }
   
   
   
   double
  -XPath::numberlit(int	opPos) const
  +XPath::numberlit(OpCodePositionType	opPos) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 3));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 3]));
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +	const XToken* const	    theLiteral =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(theLiteral != 0);
   
  -	return theLiteral.num();
  +	return theLiteral->num();
   }
   
   
   
   void
   XPath::numberlit(
  -			int		opPos,
  -			bool&	theResult) const
  +			OpCodePositionType	opPos,
  +			bool&	            theResult) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 3));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 3]));
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +	const XToken* const	    theLiteral =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(theLiteral != 0);
   
  -	theResult = theLiteral.boolean();
  +	theResult = theLiteral->boolean();
   }
   
   
   
   void
   XPath::numberlit(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			XalanDOMString&		theString) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 3));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 3]));
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +	const XToken* const	    theLiteral =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(theLiteral != 0);
   
  -	theLiteral.str(theString);
  +	theLiteral->str(theString);
   }
   
   
   
   void
   XPath::numberlit(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			FormatterListener&	formatterListener,
   			MemberFunctionPtr	function) const
   {
  -	assert(m_expression.m_opMap.size() > unsigned(opPos + 3));
  -	assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[opPos + 3]));
  +	assert(m_expression.opCodeMapSize() > opPos + 3);
  +    assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(opPos + 3));
   
  -	const XToken&	theLiteral = m_expression.m_tokenQueue[m_expression.m_opMap[opPos + 3]];
  +	const XToken* const	    theLiteral =
  +        m_expression.getToken(m_expression.getOpCodeMapValue(opPos + 3));
  +    assert(theLiteral != 0);
   
  -	theLiteral.str(formatterListener, function);
  +    theLiteral->str(formatterListener, function);
   }
   
   
  @@ -2360,7 +2382,7 @@
   const XObjectPtr
   XPath::locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {    
   	assert(context != 0);
  @@ -2379,7 +2401,7 @@
   void
   XPath::locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					theResult) const
   {
  @@ -2399,7 +2421,7 @@
   void
   XPath::locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					theResult) const
   {
  @@ -2419,7 +2441,7 @@
   void
   XPath::locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			theResult) const
   {
  @@ -2439,7 +2461,7 @@
   void
   XPath::locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -2460,20 +2482,22 @@
   const XObjectPtr
   XPath::runExtFunction(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
   
  -	const int	endExtFunc = opPos + m_expression.m_opMap[opPos + 1] - 1;
  +	const OpCodePositionType	endExtFunc = opPos + m_expression.getOpCodeMapValue(opPos + 1) - 1;
   
   	opPos += 2;
   
  -	const XalanDOMString&	ns = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
  +	const XToken* const	    ns = m_expression.getToken(m_expression.getOpCodeMapValue(opPos));
  +    assert(ns != 0);
   
   	++opPos;
   
  -	const XalanDOMString&	funcName = m_expression.m_tokenQueue[m_expression.m_opMap[opPos]].str();
  +	const XToken* const	    funcName = m_expression.getToken(m_expression.getOpCodeMapValue(opPos));
  +    assert(funcName != 0);
   
   	++opPos;
   
  @@ -2483,14 +2507,14 @@
   
   	while(opPos < endExtFunc)
   	{
  -		const int	nextOpPos = m_expression.getNextOpCodePosition(opPos);
  +		const OpCodePositionType	nextOpPos = m_expression.getNextOpCodePosition(opPos);
   
   		args.push_back(executeMore(context, opPos, executionContext));
   
   		opPos = nextOpPos;
   	}
   
  -	return extfunction(context, opPos, ns, funcName, args, executionContext);
  +	return extfunction(context, opPos, ns->str(), funcName->str(), args, executionContext);
   }
   
   
  @@ -2498,21 +2522,21 @@
   const XObjectPtr
   XPath::runFunction(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   {
  -	const int	endFunc = opPos + m_expression.m_opMap[opPos + 1] - 1;
  +	const OpCodePositionType	endFunc = opPos + m_expression.getOpCodeMapValue(opPos + 1) - 1;
   
   	opPos += 2;
   
   	// This is index into the function table for the
   	// function.
  -	const int	funcID = m_expression.getOpCodeMapValue(opPos);
  +	const OpCodeMapValueType	funcID = m_expression.getOpCodeMapValue(opPos);
   
   	opPos++;
   
   	// Number of args is next.
  -	const int	argCount = m_expression.getOpCodeMapValue(opPos);
  +	const OpCodeMapValueType	argCount = m_expression.getOpCodeMapValue(opPos);
   
   	opPos++;
   
  @@ -2589,7 +2613,7 @@
   double
   XPath::functionCount(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
  @@ -2615,7 +2639,7 @@
   const XalanDOMString&
   XPath::functionName(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
  @@ -2676,7 +2700,7 @@
   const XalanDOMString&
   XPath::functionLocalName(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
  @@ -2722,7 +2746,7 @@
   double
   XPath::functionStringLength(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
  @@ -2739,7 +2763,7 @@
   double
   XPath::functionSum(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType						opPos,
   			XPathExecutionContext&	executionContext) const
   {
   	assert(context != 0);
  @@ -2785,7 +2809,7 @@
   XPath::locationPathPattern(
   			XPathExecutionContext&	executionContext,
   			XalanNode&				context, 
  -			int 					opPos) const
  +			OpCodePositionType 					opPos) const
   {
   	eMatchScore	score = eMatchScoreNone;
   
  @@ -2800,15 +2824,15 @@
   XPath::step(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			MutableNodeRefList& 	queryResults) const
   {
   	const XPathExpression&	currentExpression = getExpression();
   
  -	const int	stepType =
  +	const OpCodeMapValueType   stepType =
   		currentExpression.getOpCodeMapValue(opPos);
   
  -	int 		argLen = 0;
  +	OpCodePositionType 		argLen = 0;
   
   	typedef XPathExecutionContext::BorrowReturnMutableNodeRefList	BorrowReturnMutableNodeRefList;
   
  @@ -2895,7 +2919,7 @@
   
   	opPos += argLen;
   
  -	int		nextStepType = currentExpression.getOpCodeMapValue(opPos);
  +	OpCodeMapValueType  nextStepType = currentExpression.getOpCodeMapValue(opPos);
   
   	// Push and pop the context node list...
   		XPathExecutionContext::ContextNodeListPushAndPop	thePushAndPop(
  @@ -2978,13 +3002,13 @@
   XPath::stepPattern(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			eMatchScore& 			scoreHolder) const
   {
   	const XPathExpression&	currentExpression = getExpression();
   
  -	const int	endStep = currentExpression.getNextOpCodePosition(opPos);
  -	int 		nextStepType = currentExpression.getOpCodeMapValue(endStep);
  +	const OpCodePositionType    endStep = currentExpression.getNextOpCodePosition(opPos);
  +	OpCodeMapValueType          nextStepType = currentExpression.getOpCodeMapValue(endStep);
   
   	if(XPathExpression::eENDOP != nextStepType)
   	{
  @@ -3023,12 +3047,13 @@
   
   	assert(context != 0);
   
  -	int				argLen = 0;
  +	OpCodePositionType	argLen = 0;
   
  -	eMatchScore		score = eMatchScoreNone;
  +	eMatchScore		    score = eMatchScoreNone;
   
  -	const int		startOpPos = opPos;
  -	const int		stepType = currentExpression.getOpCodeMapValue(opPos);
  +	const OpCodePositionType	startOpPos = opPos;
  +	const OpCodeMapValueType	stepType =
  +        currentExpression.getOpCodeMapValue(opPos);
   
   	switch(stepType)
   	{
  @@ -3109,8 +3134,8 @@
   			}
   			else
   			{
  -				const int   prevPos = currentExpression.getNextOpCodePosition(startOpPos);		
  -				const int	prevStepType = currentExpression.getOpCodeMapValue(prevPos);
  +				const OpCodePositionType    prevPos = currentExpression.getNextOpCodePosition(startOpPos);		
  +				const OpCodeMapValueType	prevStepType = currentExpression.getOpCodeMapValue(prevPos);
   
   				if (eMatchScoreNone == score  && 
   				    (prevStepType == XPathExpression::eMATCH_ANY_ANCESTOR ||
  @@ -3311,7 +3336,7 @@
   XPath::handleFoundIndex(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				localContext, 
  -			int 					startOpPos) const
  +			OpCodePositionType 					startOpPos) const
   {
   	// We have an index somewhere in our pattern.  So, we have 
   	// to do a full search for our step, using the parent as 
  @@ -3350,7 +3375,7 @@
   XPath::handleFoundIndexPositional(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				localContext,
  -			int 					startOpPos) const
  +			OpCodePositionType 					startOpPos) const
   {
   	XalanNode* const	parentContext =
   				DOMServices::getParentOfNode(*localContext);
  @@ -3382,12 +3407,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findNodeSet(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					/* stepType */,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		/* stepType */,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3410,12 +3435,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findRoot(
   			XPathExecutionContext&	/* executionContext */,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					/* stepType */,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		/* stepType */,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3424,7 +3449,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	XalanNode* const	docContext = XalanNode::DOCUMENT_NODE == context->getNodeType() ?
  @@ -3441,12 +3466,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findParent(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3456,7 +3481,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   			currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	XalanNode* const	theParent = DOMServices::getParentOfNode(*context);
  @@ -3495,12 +3520,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findSelf(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3510,7 +3535,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	if(argLen == 0)
  @@ -3545,12 +3570,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findAncestors(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3562,7 +3587,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   			currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	if (context != 0)
  @@ -3598,12 +3623,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findAncestorsOrSelf(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3613,7 +3638,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	opPos += 3;
  @@ -3646,12 +3671,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findAttributes(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3661,7 +3686,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   				currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	if(context->getNodeType() == XalanNode::ELEMENT_NODE)
  @@ -3708,12 +3733,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findChildren(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3725,7 +3750,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	if (child != 0)
  @@ -3761,12 +3786,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findDescendants(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 	    opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3776,7 +3801,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	// Perform a pre-order traversal of descendents...
  @@ -3837,12 +3862,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findFollowing(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3852,7 +3877,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	opPos += 3;
  @@ -3934,12 +3959,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findFollowingSiblings(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -3949,7 +3974,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	XalanNode*	pos = context->getNextSibling();
  @@ -4033,12 +4058,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findPreceeding(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -4048,7 +4073,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	opPos += 3;
  @@ -4157,12 +4182,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findPreceedingSiblings(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -4172,7 +4197,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   #if 1
  @@ -4252,12 +4277,12 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findNamespace(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType		stepType,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(subQueryResults.empty() == true);
  @@ -4267,7 +4292,7 @@
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	if(context->getNodeType() == XalanNode::ELEMENT_NODE)
  @@ -4369,19 +4394,19 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::findNodesOnUnknownAxis(
   			XPathExecutionContext&	executionContext,
   			XalanNode*				context, 
  -			int 					opPos,
  -			int 					/* stepType */,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 	    /* stepType */,
   			MutableNodeRefList& 	/* subQueryResults */) const
   {
   	const XPathExpression&	currentExpression = getExpression();
   
   	// $$ ToDO: Can we reduce this to some call on the
   	// XPathExpression interface?
  -	const int	argLen =
  +	const OpCodePositionType	argLen =
   		currentExpression.getOpCodeMapValue(opPos + XPathExpression::s_opCodeMapLengthIndex + 1) - 3;
   
   	executionContext.error(
  @@ -4399,9 +4424,9 @@
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context,
   			XalanNode::NodeType		nodeType,
  -			int 					opPos,
  -			int 					argLen,
  -			int 					stepType) const
  +			OpCodePositionType 		opPos,
  +			OpCodePositionType 		argLen,
  +			OpCodeMapValueType 		stepType) const
   {
   	assert(context->getNodeType() == nodeType);
   
  @@ -4409,7 +4434,7 @@
   
   	eMatchScore		score = eMatchScoreNone;
   
  -	const int	testType = currentExpression.getOpCodeMapValue(opPos);
  +	const OpCodeMapValueType	testType = currentExpression.getOpCodeMapValue(opPos);
   
   	switch(testType)
   	{
  @@ -4440,7 +4465,7 @@
   			{
   				opPos++;
   
  -				const int				tokenPosition =
  +				const OpCodeMapValueType	tokenPosition =
   					currentExpression.getOpCodeMapValue(opPos);
   
   				const XObject* const	name =
  @@ -4492,7 +4517,7 @@
   			{
   				bool					test = false;
   
  -				int 					queueIndex = currentExpression.getOpCodeMapValue(opPos);
  +				OpCodeMapValueType 		queueIndex = currentExpression.getOpCodeMapValue(opPos);
   
   				const XalanDOMString&	targetNS = queueIndex >= 0 ?
   										currentExpression.getToken(queueIndex)->str() :
  @@ -4673,10 +4698,10 @@
   
   
   
  -int
  +XPath::OpCodePositionType
   XPath::predicates(
   			XPathExecutionContext&	executionContext,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			MutableNodeRefList& 	subQueryResults) const
   {
   	assert(&executionContext.getContextNodeList() == &subQueryResults);
  @@ -4695,7 +4720,7 @@
   		// update endPredicatePos.
   		if (theLength > 0)
   		{
  -			const int	predOpPos = opPos + 2;
  +			const OpCodePositionType	predOpPos = opPos + 2;
   
   			// OK, this is a huge hack/optimization.  If the predicate is
   			// simple a number, such as [2], we can just get the
  @@ -4708,7 +4733,7 @@
   			// our node lists index from 0.
   			if (m_expression.getOpCodeMapValue(predOpPos) == XPathExpression::eOP_NUMBERLIT)
   			{
  -				assert(m_expression.m_tokenQueue.size() > unsigned(m_expression.m_opMap[predOpPos + 3]));
  +				assert(m_expression.tokenQueueSize() > m_expression.getOpCodeMapValue(predOpPos + 3));
   
   				// Get the value of the number...
   				const double	theIndex =
  @@ -4770,7 +4795,7 @@
   
   		opPos = currentExpression.getNextOpCodePosition(opPos);
   
  -		const int	nextStepType = currentExpression.getOpCodeMapValue(opPos);
  +		const OpCodeMapValueType	nextStepType = currentExpression.getOpCodeMapValue(opPos);
   
   		if (nextStepType != XPathExpression::eOP_PREDICATE &&
   		    nextStepType != XPathExpression::eOP_PREDICATE_WITH_POSITION)
  @@ -4791,9 +4816,9 @@
   XPath::NodeTester::NodeTester(
   			const XPath&			xpath,
   			XPathExecutionContext&	executionContext,
  -			int 					opPos,
  -			int 					argLen,
  -			int 					stepType) :
  +			OpCodePositionType 		opPos,
  +			OpCodePositionType 		argLen,
  +			OpCodeMapValueType		stepType) :
   	m_executionContext(executionContext),
   	m_targetNamespace(0),
   	m_targetLocalName(0),
  
  
  
  1.5       +211 -209  xml-xalan/c/src/xalanc/XPath/XPath.hpp
  
  Index: XPath.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPath.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XPath.hpp	6 Jan 2004 02:41:32 -0000	1.4
  +++ XPath.hpp	11 Feb 2004 01:08:30 -0000	1.5
  @@ -104,6 +104,9 @@
   
   	typedef XERCES_CPP_NAMESPACE_QUALIFIER Locator	LocatorType;
   
  +    typedef XPathExpression::OpCodeMapSizeType      OpCodePositionType;
  +    typedef XPathExpression::OpCodeMapValueType     OpCodeMapValueType;
  +
   	static const XalanDOMChar	PSEUDONAME_ANY[];
   	static const XalanDOMChar	PSEUDONAME_ROOT[];
   	static const XalanDOMChar	PSEUDONAME_TEXT[];
  @@ -857,14 +860,14 @@
   	 * Evaluate a predicate.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @return pointer to either a boolean or a number
   	 */
   	const XObjectPtr
   	predicate(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		return executeMore(context, opPos + 2, executionContext);
  @@ -917,7 +920,7 @@
   	static bool
   	uninstallFunction(const XalanDOMString&		funcName)
   	{
  -		return 	s_functions.UninstallFunction(funcName);
  +		return s_functions.UninstallFunction(funcName);
   	}
   
   	/**
  @@ -929,7 +932,7 @@
   	static bool
   	uninstallFunction(const XalanDOMChar*	funcName)
   	{
  -		return 	s_functions.UninstallFunction(funcName);
  +		return s_functions.UninstallFunction(funcName);
   	}
   
   	/**
  @@ -1021,28 +1024,28 @@
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Mpa
   	 * @param executionContext current execution context
   	 * @return node-set
   	 */
   	const XObjectPtr
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult	       the result as a node list
   	 */
   	void
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					theResult) const;
   
  @@ -1050,14 +1053,14 @@
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult	       the result as a node list
   	 */
   	void
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					theResult) const;
   
  @@ -1065,14 +1068,14 @@
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult	       the result as a node list
   	 */
   	void
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			theResult) const;
   
  @@ -1080,7 +1083,7 @@
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1088,7 +1091,7 @@
   	void
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1097,14 +1100,14 @@
   	 * Execute a location path.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult	       the result as a node list
   	 */
   	void
   	locationPath(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		theResult) const
   	{
  @@ -1115,28 +1118,28 @@
   	 * Execute the XPath from the provided context.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @return pointer to union of node-set operands
   	 */
   	const XObjectPtr
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Execute the XPath from the provided context.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult        The result of the execution
   	 */
   	void
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					theResult) const;
   
  @@ -1144,14 +1147,14 @@
   	 * Execute the XPath from the provided context.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult        The result of the execution
   	 */
   	void
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					theResult) const;
   
  @@ -1160,14 +1163,14 @@
   	 * is appended to the supplied string.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult        The result of the execution
   	 */
   	void
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			theResult) const;
   
  @@ -1175,7 +1178,7 @@
   	 * Execute the XPath from the provided context.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1183,7 +1186,7 @@
   	void
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1192,7 +1195,7 @@
   	 * Execute the XPath from the provided context.
   	 *
   	 * @param context          current source tree context node
  -	 * @param opPos            current position in the m_opMap array
  +	 * @param opPos            current position in the Op Map
   	 * @param executionContext current execution context
   	 * @param theResult        The result of the execution
   	 * @return the node-set result, if the result was not returned in the parameter
  @@ -1200,7 +1203,7 @@
   	const XObjectPtr
   	executeMore(
   			XalanNode* 				context,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		theResult) const;
   
  @@ -1219,124 +1222,124 @@
   	/**
   	 * OR two expressions and return the boolean result.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if the one of the two arguments are true.
   	 */
   	bool
   	Or(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * OR two expressions and return the boolean result.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if the two arguments are both true.
   	 */
   	bool
   	And(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if two expressions are functionally not equal.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if the two arguments are not equal.
   	 */
   	bool
   	notequals(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if two expressions are functionally equal.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if the two arguments are equal.
   	 */
   	bool
   	equals(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if one argument is less than or equal to the other argument.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if arg 1 is less than or equal to arg 2.
   	 */
   	bool
   	lte(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if one argument is less than the other argument.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if arg 1 is less than arg 2.
   	 */
   	bool
   	lt(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if one argument is greater than or equal to the other argument.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if arg 1 is greater than or equal to arg 2.
   	 */
   	bool
   	gte(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Tell if one argument is greater than the other argument.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return true if arg 1 is greater than arg 2.
   	 */
   	bool
   	gt(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Give the sum of two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return sum of arg1 and arg2.
   	 */
   	double
   	plus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Give the sum of two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1344,7 +1347,7 @@
   	void
   	plus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1352,20 +1355,20 @@
   	/**
   	 * Give the difference of two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return difference of arg1 and arg2.
   	 */
   	double
   	minus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Give the difference of two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1373,7 +1376,7 @@
   	void
   	minus(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1381,20 +1384,20 @@
   	/**
   	 * Multiply two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return arg1 * arg2.
   	 */
   	double
   	mult(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Multiply two arguments.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1402,7 +1405,7 @@
   	void
   	mult(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1410,20 +1413,20 @@
   	/**
   	 * Divide a number.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return arg1 / arg2.
   	 */
   	double
   	div(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Divide a number.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1431,7 +1434,7 @@
   	void
   	div(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1439,20 +1442,20 @@
   	/**
   	 * Return the remainder from a truncating division.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return arg1 mod arg2.
   	 */
   	double
   	mod(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Return the remainder from a truncating division.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1460,7 +1463,7 @@
   	void
   	mod(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1468,20 +1471,20 @@
   	/**
   	 * Return the negation of a number.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return -arg.
   	 */
   	double
   	neg(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Return the negation of a number.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1489,7 +1492,7 @@
   	void
   	neg(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1497,28 +1500,28 @@
   	/**
   	 * Computes the union of its operands which must be node-sets.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the union of node-set operands.
   	 */
   	const XObjectPtr
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Computes the union of its operands which must be node-sets.
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @result the result of the union of node-set operands.
   	 */
   	void
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					result) const;
   
  @@ -1526,14 +1529,14 @@
   	 * Computes the union of its operands which must be node-sets.
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @result the result of the union of node-set operands.
   	 */
   	void
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					result) const;
   
  @@ -1541,14 +1544,14 @@
   	 * Computes the union of its operands which must be node-sets.
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @result the result of the union of node-set operands.
   	 */
   	void
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			result) const;
   
  @@ -1556,7 +1559,7 @@
   	 * Computes the union of its operands which must be node-sets.
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1564,7 +1567,7 @@
   	void
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const;
  @@ -1572,96 +1575,96 @@
   	/**
   	 * Computes the union of its operands which must be node-sets.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @result the result of the union of node-set operands.
   	 */
   	void
   	Union(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		result) const;
   
   	/**
   	 * Get a literal value.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return an XObject object.
   	 */
   	const XObjectPtr
   	literal(
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
     
   	/**
   	 * Get a literal value as a boolean.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theResult The value.
   	 */
   	void
   	literal(
  -			int		opPos,
  -			bool&	theResult) const;
  +			OpCodePositionType	opPos,
  +			bool&	            theResult) const;
   
   	/**
   	 * Get a literal value as a number.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theResult The value.
   	 */
   	void
   	literal(
  -			int			opPos,
  -			double&		theResult) const;
  +			OpCodePositionType	opPos,
  +			double&		        theResult) const;
   
   	/**
   	 * Get a literal value.  The value is appended to the
   	 * supplied string.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theResult The string.
   	 */
   	void
   	literal(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			XalanDOMString&		theResult) const;
   
   	/**
   	 * Get a literal value.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return The result as a double.
   	 */
   	void
   	literal(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			FormatterListener&	formatterListener,
   			MemberFunctionPtr	function) const;
   
   	/**
   	 * Get the value of a variable.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return an XObject object.
   	 */
   	const XObjectPtr
   	variable(
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Execute an expression as a group.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return arg.
   	 */
   	const XObjectPtr
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		return executeMore(context, opPos + 2, executionContext);
  @@ -1670,14 +1673,14 @@
   	/**
   	 * Execute an expression as a group.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param theResult The result of the execution
   	 */
   	void
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			bool&					theResult) const
   	{
  @@ -1687,14 +1690,14 @@
   	/**
   	 * Execute an expression as a group.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param theResult The result of the execution
   	 */
   	void
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			double&					theResult) const
   	{
  @@ -1704,14 +1707,14 @@
   	/**
   	 * Execute an expression as a group.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param theResult The result of the execution
   	 */
   	void
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			XalanDOMString&			theResult) const
   	{
  @@ -1722,7 +1725,7 @@
   	 * Execute an expression as a group.
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
  @@ -1730,7 +1733,7 @@
   	void
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			FormatterListener&		formatterListener,
   			MemberFunctionPtr		function) const
  @@ -1741,14 +1744,14 @@
   	/**
   	 * Execute an expression as a group.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @param theResult The result of the execution
   	 */
   	void
   	group(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext,
   			MutableNodeRefList&		theResult) const
   	{
  @@ -1757,85 +1760,84 @@
   
   	/**
   	 * Get a literal value.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @return The result as a double.
   	 */
   	double
  -	numberlit(int	opPos) const;
  +	numberlit(OpCodePositionType	opPos) const;
   
   	/**
   	 * Get a literal value.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @return The result as a double.
   	 */
   	const XObjectPtr
   	numberlit(
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Get a literal value as a boolean.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theResult The string.
   	 */
   	void
   	numberlit(
  -			int		opPos,
  -			bool&	theResult) const;
  +			OpCodePositionType	opPos,
  +			bool&	            theResult) const;
   
   	/**
   	 * Get a literal value.  The value is appended to the
   	 * supplied string.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theResult The string.
   	 */
   	void
   	numberlit(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			XalanDOMString&		theResult) const;
   
   	/**
   	 * Get a literal value.
   	 *
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param formatterListener the FormatterListener instance to receive the result
   	 * @param function A pointer to the member function of FormatterListener to call
   	 */
   	void
   	numberlit(
  -			int					opPos,
  +			OpCodePositionType	opPos,
   			FormatterListener&	formatterListener,
   			MemberFunctionPtr	function) const;
   
   	/**
   	 * Setup for and run an extension function.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	const XObjectPtr
   	runExtFunction(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Handle an extension function.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param theNamespace The namespace of the function.
   	 * @param functionName The name of the function.
  -	 * @param opPos The current position in the m_opMap array.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	const XObjectPtr
   	extfunction(
   			XalanNode*								context,
  -			int										/* opPos */,
  +			OpCodePositionType						/* opPos */,
   			const XalanDOMString&					theNamespace,
   			const XalanDOMString&					functionName, 
   			const Function::XObjectArgVectorType&	argVec,
  @@ -1851,20 +1853,20 @@
   	/**
   	 * Setup for and run a function.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	const XObjectPtr
   	runFunction(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Handle a built-in function.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param funcID The function ID.
   	 * @param argVec The arguments for the function.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
  @@ -1872,7 +1874,7 @@
   	const XObjectPtr
   	function(
   			XalanNode*								context,
  -			int										funcID,
  +			OpCodeMapValueType						funcID,
   			const Function::XObjectArgVectorType&	argVec,
   			XPathExecutionContext&					executionContext) const
   	{
  @@ -1912,28 +1914,28 @@
   	 * Handle the built-in function "count".
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionCount(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Handle the built-in function "not".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	bool
   	functionNot(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		assert(context != 0);
  @@ -1945,14 +1947,14 @@
   	 * Handle the built-in function "boolean".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	bool
   	functionBoolean(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		assert(context != 0);
  @@ -1982,14 +1984,14 @@
   	 * Handle the built-in function "name".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	const XalanDOMString&
   	functionName(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
  @@ -2005,14 +2007,14 @@
   	 * Handle the built-in function "local-name".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	const XalanDOMString&
   	functionLocalName(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
  @@ -2036,14 +2038,14 @@
   	 * Handle the built-in function "number".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionNumber(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		double	result;
  @@ -2057,14 +2059,14 @@
   	 * Handle the built-in function "floor".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionFloor(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		return DoubleSupport::floor(functionNumber(context, opPos, executionContext));
  @@ -2074,14 +2076,14 @@
   	 * Handle the built-in function "ceiling".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionCeiling(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		return DoubleSupport::ceiling(functionNumber(context, opPos, executionContext));
  @@ -2091,14 +2093,14 @@
   	 * Handle the built-in function "round".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionRound(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const
   	{
   		return DoubleSupport::round(functionNumber(context, opPos, executionContext));
  @@ -2117,41 +2119,41 @@
   	 * Handle the built-in function "string-length".
   	 *
   	 * @param context The current source tree context node, which must not be 0.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionStringLength(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Handle the built-in function "sum".
   	 *
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return the result of the function.
   	 */
   	double
   	functionSum(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   	/**
   	 * Get a numeric operand for an expression.
   	 * @param context The current source tree context node.
  -	 * @param opPos The current position in the m_opMap array.
  +	 * @param opPos The current position in the Op Map.
   	 * @param executionContext current execution context
   	 * @return The value of the operand.
   	 */
   	double
   	getNumericOperand(
   			XalanNode*				context,
  -			int						opPos,
  +			OpCodePositionType		opPos,
   			XPathExecutionContext&	executionContext) const;
   
   private:
  @@ -2175,7 +2177,7 @@
   	locationPathPattern(
   			XPathExecutionContext&	executionContext,
   			XalanNode& 				context, 
  -			int 					opPos) const;
  +			OpCodePositionType 		opPos) const;
   
   	class NodeTester
   	{
  @@ -2184,9 +2186,9 @@
   		NodeTester(
   			const XPath&			xpath,
   			XPathExecutionContext&	executionContext,
  -			int 					opPos,
  -			int 					argLen,
  -			int 					stepType);
  +			OpCodePositionType 		opPos,
  +			OpCodePositionType 		argLen,
  +			OpCodeMapValueType 		stepType);
   
   		eMatchScore
   		operator()(
  @@ -2319,7 +2321,7 @@
   	step(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			MutableNodeRefList&		queryResults) const;
   
   	/**
  @@ -2336,127 +2338,127 @@
   	stepPattern(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			eMatchScore& 			scoreHolder) const;
   
  -	int
  +	OpCodePositionType
   	findNodeSet(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 	    stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findRoot(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findParent(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findSelf(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findAncestors(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findAncestorsOrSelf(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findAttributes(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findChildren(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findDescendants(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findFollowing(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findFollowingSiblings(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findPreceeding(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findPreceedingSiblings(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findNamespace(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
  -	int
  +	OpCodePositionType
   	findNodesOnUnknownAxis(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context, 
  -			int 					opPos,
  -			int 					stepType,
  +			OpCodePositionType 		opPos,
  +			OpCodeMapValueType 		stepType,
   			MutableNodeRefList& 	subQueryResults) const;
   
   	eMatchScore
  @@ -2464,27 +2466,27 @@
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				context,
   			XalanNode::NodeType		nodeType,
  -			int 					opPos,
  -			int 					argLen,
  -			int 					stepType) const;
  +			OpCodePositionType 		opPos,
  +			OpCodePositionType 		argLen,
  +			OpCodeMapValueType 		stepType) const;
   
  -	int
  +	OpCodePositionType
   	predicates(
   			XPathExecutionContext&	executionContext,
  -			int 					opPos,
  +			OpCodePositionType 		opPos,
   			MutableNodeRefList& 	subQueryResults) const;
   
   	eMatchScore
   	handleFoundIndex(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				localContext,
  -			int 					startOpPos) const;
  +			OpCodePositionType 		startOpPos) const;
   
   	eMatchScore
   	handleFoundIndexPositional(
   			XPathExecutionContext&	executionContext,
   			XalanNode* 				localContext,
  -			int 					startOpPos) const;
  +			OpCodePositionType 		startOpPos) const;
   
   private:
   
  @@ -2492,7 +2494,7 @@
   	unknownOpCodeError(
   			XalanNode*				context,
   			XPathExecutionContext&	executionContext,
  -			int						opPos) const;
  +			OpCodePositionType		opPos) const;
   
   	void
   	notNodeSetError(
  
  
  
  1.7       +5 -5      xml-xalan/c/src/xalanc/XPath/XPathExpression.cpp
  
  Index: XPathExpression.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPathExpression.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XPathExpression.cpp	6 Feb 2004 08:57:08 -0000	1.6
  +++ XPathExpression.cpp	11 Feb 2004 01:08:30 -0000	1.7
  @@ -836,7 +836,7 @@
   	m_opMap.push_back(thePosition);
   
   	// Update the op map length.
  -	m_opMap[s_opCodeMapLengthIndex]++;
  +	++m_opMap[s_opCodeMapLengthIndex];
   }
   
   
  @@ -857,7 +857,7 @@
   	m_opMap.push_back(thePosition);
   
   	// Update the op map length.
  -	m_opMap[s_opCodeMapLengthIndex]++;
  +	++m_opMap[s_opCodeMapLengthIndex];
   }
   
   
  @@ -880,7 +880,7 @@
   	m_opMap.push_back(thePosition);
   
   	// Update the op map length.
  -	m_opMap[s_opCodeMapLengthIndex]++;
  +	++m_opMap[s_opCodeMapLengthIndex];
   }
   
   
  @@ -897,7 +897,7 @@
   	m_opMap.push_back(theIndex);
   
   	// Update the op map length.
  -	m_opMap[s_opCodeMapLengthIndex]++;
  +	++m_opMap[s_opCodeMapLengthIndex];
   
   	m_numberLiteralValues.push_back(theNumber);
   }
  @@ -917,7 +917,7 @@
   	m_opMap.push_back(thePosition);
   
   	// Update the op map length.
  -	m_opMap[s_opCodeMapLengthIndex]++;
  +	++m_opMap[s_opCodeMapLengthIndex];
   }
   
   
  
  
  
  1.5       +28 -36    xml-xalan/c/src/xalanc/XPath/XPathExpression.hpp
  
  Index: XPathExpression.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPathExpression.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XPathExpression.hpp	6 Feb 2004 08:57:08 -0000	1.4
  +++ XPathExpression.hpp	11 Feb 2004 01:08:30 -0000	1.5
  @@ -858,6 +858,23 @@
   		return m_opMap[opPos];
   	}
   
  +	/**
  +	 * Retrieve the value of an operation code at a specified position in the
  +	 * list.
  +	 * 
  +	 * @param opPos position in list
  +	 * @return value of operation code
  +	 */
  +	void
  +	setOpCodeMapValue(
  +            OpCodeMapSizeType	        opPos,
  +            const OpCodeMapValueType&   theValue)
  +	{
  +        assert(opPos < opCodeMapLength());
  +
  +		m_opMap[opPos] = theValue;
  +	}
  +
   	OpCodeMapValueType
   	getOpCodeArgumentLength(OpCodeMapSizeType	opPos) const
   	{
  @@ -1030,7 +1047,7 @@
   	bool
   	hasMoreTokens() const
   	{
  -		return tokenQueueSize() - m_currentPosition > 0 ? true : false;
  +		return tokenQueueSize() > m_currentPosition ? true : false;
   	}
   
   	/**
  @@ -1054,37 +1071,12 @@
   	}
   
   	/**
  -	 * Set the current position in the token queue to a specified value.
  -	 *
  -	 * @param thePosition value of position to set
  -	 */
  -	void
  -	setTokenPosition(TokenQueueSizeType		thePosition)
  -	{
  -		const TokenQueueSizeType	theSize = tokenQueueSize();
  -
  -		m_currentPosition = thePosition > theSize ? theSize : thePosition;
  -	}
  -
  -#if 0
  -	/**
  -	 * Set the current position in the token queue to a specified value.
  -	 *
  -	 * @param thePosition value of position to set
  -	 */
  -	void
  -	setTokenPosition(int	thePosition)
  -	{
  -		setTokenPosition(thePosition > 0 ? TokenQueueSizeType(thePosition) : 0);
  -	}
  -#endif
  -	/**
   	 * Retrieve a token at the specified position in the token queue.
   	 * 
   	 * @param thePosition position in queue
   	 * @return pointer to XObject token
   	 */
  -	const XObject*
  +	const XToken*
   	getToken(TokenQueueSizeType		thePosition) const
   	{
   		assert(thePosition < tokenQueueSize());
  @@ -1097,7 +1089,7 @@
   	 * 
   	 * @return pointer to XObject token
   	 */
  -	const XObject*
  +	const XToken*
   	getNextToken()
   	{
   		if (hasMoreTokens() == true)
  @@ -1115,7 +1107,7 @@
   	 * 
   	 * @return pointer to XObject token
   	 */
  -	const XObject*
  +	const XToken*
   	getPreviousToken()
   	{
   		if (m_currentPosition > 0)
  @@ -1135,7 +1127,7 @@
   	 * @param theOffset offset from current position
   	 * @return pointer to XObject token
   	 */
  -	const XObject*
  +	const XToken*
   	getRelativeToken(int	theOffset) const
   	{
   		const int	thePosition = int(m_currentPosition) + theOffset;
  @@ -1229,7 +1221,7 @@
   	 * Replace a token in the token queue.
   	 * 
   	 * @param theOffset the offset at which to replace the token.
  -	 * @param theString The string data for the token.  The instance will keep a point to this string, so it must be persistent.
  +	 * @param theString The string data for the token.  The instance will keep a pointer to this string, so it must be persistent.
   	 */
   	void
   	replaceRelativeToken(
  @@ -1320,7 +1312,7 @@
   		m_opMap.push_back(theValue);
   
   		// Update the op map length.
  -		m_opMap[s_opCodeMapLengthIndex]++;
  +		++m_opMap[s_opCodeMapLengthIndex];
   	}
   
   	/**
  @@ -1336,7 +1328,7 @@
   	 * Push a token onto the token queue and its index onto the operations code
   	 * map.
   	 *
  -	 * @param theString The string data for the token.  The instance will keep a point to this string, so it must be persistent.
  +	 * @param theString The string data for the token.  The instance will keep a pointer to this string, so it must be persistent.
   	 */
   	void
   	pushArgumentOnOpCodeMap(const XalanDOMString&	theString);
  @@ -1346,7 +1338,7 @@
   	 * map.
   	 *
   	 * @param theNumber The numeric data for the token.  This must be consistent with the lexical value in theString.
  -	 * @param theString The string data for the token.  The instance will keep a point to this string, so it must be persistent.
  +	 * @param theString The string data for the token.  The instance will keep a pointer to this string, so it must be persistent.
   	 */
   	void
   	pushArgumentOnOpCodeMap(
  @@ -1407,6 +1399,8 @@
   		return *m_currentPattern;
   	}
   
  +private:
  +
   	/**
   	 * An operations map is used instead of a proper parse tree.  It contains
   	 * operations codes and indexes into the m_tokenQueue. We use an array
  @@ -1437,8 +1431,6 @@
   	 * The current pattern string, for diagnostics purposes.
   	 */
   	const XalanDOMString*	m_currentPattern;
  -
  -private:
   
   	// Default vector allocation sizes.
   	enum
  
  
  
  1.6       +5 -15     xml-xalan/c/src/xalanc/XPath/XPathProcessorImpl.cpp
  
  Index: XPathProcessorImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPathProcessorImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XPathProcessorImpl.cpp	6 Jan 2004 02:41:32 -0000	1.5
  +++ XPathProcessorImpl.cpp	11 Feb 2004 01:08:30 -0000	1.6
  @@ -477,7 +477,7 @@
   
   	}
   
  -	m_expression->setTokenPosition(0);
  +	m_expression->resetTokenPosition();
   }
   
   
  @@ -754,16 +754,6 @@
   
   
   void
  -XPathProcessorImpl::resetTokenMark(int	mark)
  -{
  -	m_expression->setTokenPosition(mark);
  -
  -	nextToken();
  -}
  -
  -
  -
  -void
   XPathProcessorImpl::consumeExpected(XalanDOMChar	expected)
   {
   	if(tokenIs(expected) == true)
  @@ -1567,7 +1557,7 @@
   
   		default:
   			{
  -				// The position must be at least zero, since
  +				// The position must be at least 1, since
   				// we've looked at a token.
   				assert(m_expression->getTokenPosition() > 0);
   
  @@ -1595,10 +1585,10 @@
   				// Get the arguments, and the argument count...
   				const int	argCount = FunctionCallArguments();
   
  -				assert(m_expression->m_opMap[opPos + 3] == 0);
  +				assert(m_expression->getOpCodeMapValue(opPos + 3) == 0);
   
   				// update the arg count in the op map...
  -				m_expression->m_opMap[opPos + 3] = argCount;
  +				m_expression->setOpCodeMapValue(opPos + 3, argCount);
   			}
   		}
   	}
  @@ -2718,7 +2708,7 @@
   	{
   		assert(m_expression->opCodeMapLength() > matchTypePos);
   
  -		m_expression->m_opMap[matchTypePos] = XPathExpression::eMATCH_ANY_ANCESTOR;
  +		m_expression->setOpCodeMapValue(matchTypePos, XPathExpression::eMATCH_ANY_ANCESTOR);
   	}
   
   	m_expression->updateOpCodeLength(opPos);
  
  
  
  1.3       +0 -7      xml-xalan/c/src/xalanc/XPath/XPathProcessorImpl.hpp
  
  Index: XPathProcessorImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XPath/XPathProcessorImpl.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XPathProcessorImpl.hpp	6 Jan 2004 02:41:32 -0000	1.2
  +++ XPathProcessorImpl.hpp	11 Feb 2004 01:08:30 -0000	1.3
  @@ -282,13 +282,6 @@
   	prevToken();
   
   	/**
  -	 * Reset token queue mark and m_token to a 
  -	 * given position.
  -	 */
  -	void
  -	resetTokenMark(int	mark);
  -
  -	/**
   	 * Consume an expected token, throwing an exception if it 
   	 * isn't there.
   	 */
  
  
  

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