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 2002/09/28 01:32:51 UTC
cvs commit: xml-xalan/c/src/XPath XPathExpression.cpp XPathExpression.hpp
dbertoni 2002/09/27 16:32:51
Modified: c/src/XPath XPathExpression.cpp XPathExpression.hpp
Log:
New XToken code to prepare for string pooling.
Revision Changes Path
1.38 +21 -0 xml-xalan/c/src/XPath/XPathExpression.cpp
Index: XPathExpression.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExpression.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- XPathExpression.cpp 31 Jul 2002 16:04:06 -0000 1.37
+++ XPathExpression.cpp 27 Sep 2002 23:32:51 -0000 1.38
@@ -811,6 +811,27 @@
void
+XPathExpression::pushArgumentOnOpCodeMap(const XToken& theXToken)
+{
+ assert(m_currentPosition != 0);
+
+ const TokenQueueSizeType thePosition = m_currentPosition - 1;
+
+ assert(thePosition < tokenQueueSize());
+
+ // Set the entry in the token queue to the XObject.
+ m_tokenQueue[thePosition] = theXToken;
+
+ // Push the index onto the op map.
+ m_opMap.push_back(thePosition);
+
+ // Update the op map length.
+ m_opMap[s_opCodeMapLengthIndex]++;
+}
+
+
+
+void
XPathExpression::pushArgumentOnOpCodeMap(const XalanDOMString& theToken)
{
assert(m_currentPosition != 0);
1.28 +33 -1 xml-xalan/c/src/XPath/XPathExpression.hpp
Index: XPathExpression.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathExpression.hpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- XPathExpression.hpp 26 Jun 2002 01:20:01 -0000 1.27
+++ XPathExpression.hpp 27 Sep 2002 23:32:51 -0000 1.28
@@ -1173,6 +1173,29 @@
m_tokenQueue.insert(m_tokenQueue.begin() + (m_currentPosition - 1), XToken(theToken));
}
+#if 1
+ /**
+ * Replace a token in the token queue.
+ *
+ * @param theOffset the offset at which to replace the token.
+ * @param theToken The new token
+ */
+ void
+ replaceRelativeToken(
+ int theOffset,
+ const XToken& theToken)
+ {
+ const int thePosition = int(m_currentPosition) + theOffset;
+
+ if (thePosition < 0 ||
+ thePosition >= int(tokenQueueSize()))
+ {
+ throw InvalidRelativeTokenPosition(theOffset);
+ }
+
+ m_tokenQueue[thePosition] = theToken;
+ }
+#else
/**
* Replace a token in the token queue.
*
@@ -1219,7 +1242,7 @@
m_tokenQueue[thePosition] = theToken;
}
-
+#endif
/**
* Diagnostic function to output the operation code map.
*
@@ -1305,6 +1328,15 @@
// Update the op map length.
m_opMap[s_opCodeMapLengthIndex]++;
}
+
+ /**
+ * Push a token onto the token queue and its index onto the operations code
+ * map.
+ *
+ * @param theXToken the XToken to push
+ */
+ void
+ pushArgumentOnOpCodeMap(const XToken& theXToken);
/**
* Push a token onto the token queue and its index onto the operations code
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org