18 #if !defined(XPATHPROCESSORIMPL_HEADER_GUARD_1357924680) 19 #define XPATHPROCESSORIMPL_HEADER_GUARD_1357924680 54 XALAN_CPP_NAMESPACE_BEGIN
84 create(MemoryManager& theManager);
91 const XalanDOMString& expression,
93 const Locator* locator = 0,
94 bool allowVariableReferences =
true,
95 bool allowKeyFunction =
true);
101 const XalanDOMString& expression,
103 const Locator* locator = 0,
104 bool allowVariableReferences =
true,
105 bool allowKeyFunction =
true);
116 tokenize(
const XalanDOMString& pat);
119 addToTokenQueue(
const XalanDOMString& s)
const;
122 replaceTokenWithNamespaceToken()
const;
130 const XalanDOMString& pat,
131 t_size_type startSubstring,
132 t_size_type posOfNSSep,
133 t_size_type posOfScan);
141 tokenIs(
const XalanDOMString& s)
const;
149 tokenIs(
const XalanDOMChar* s)
const;
157 tokenIs(XalanDOMChar c)
const;
180 const XalanDOMChar* s,
192 const XalanDOMString& s,
221 lookbehindHasToken(
int n)
const;
234 const XalanDOMString&
235 getTokenRelative(
int theOffset)
const;
249 consumeExpected(XalanDOMChar expected);
252 isCurrentLiteral()
const;
261 isAxis(
const XalanDOMString& theToken);
270 isNodeTest(
const XalanDOMString& theToken);
276 error(
const XalanDOMString& msg)
const;
282 error(XalanMessages::Codes theCode)
const;
286 XalanMessages::Codes theCode,
287 const XalanDOMString& theToken)
const;
291 XalanMessages::Codes theCode,
292 const XalanDOMChar* theToken)
const;
296 XalanMessages::Codes theCode,
297 XalanDOMChar theToken1,
298 const XalanDOMString& theToken2)
const;
304 getFunctionToken(
const XalanDOMString& key)
306 return searchTable(s_functionTable, s_functionTableSize, key).m_opCode;
313 getNodeTypeToken(
const XalanDOMString& key)
315 return searchTable(s_nodeTypeTable, s_nodeTypeTableSize, key).m_opCode;
322 getAxisToken(
const XalanDOMString& key)
324 return searchTable(s_axisTable, s_axisTableSize, key).m_opCode;
367 EqualityExpr(
int opCodePos = -1);
382 RelationalExpr(
int opCodePos = -1);
395 AdditiveExpr(
int opCodePos = -1);
410 MultiplicativeExpr(
int opCodePos = -1);
515 FunctionName(
int opPos);
518 FunctionLocalName(
int opPos);
521 FunctionNumber(
int opPos);
536 FunctionStringLength(
int opPos);
561 RelativeLocationPath();
664 LocationPathPattern();
684 RelativePathPattern();
700 AbbreviatedNodeTestStep();
703 isValidFunction(
const XalanDOMString& key);
708 FunctionCallArguments();
712 const XalanDOMChar* m_string;
717 #if defined(XALAN_STRICT_ANSI_HEADERS) 723 static const TableEntry&
725 const TableEntry theTable[],
726 size_type theTableSize,
727 const XalanDOMString& theString);
732 XalanDOMString m_token;
739 XalanDOMChar m_tokenChar;
761 bool m_requireLiterals;
763 bool m_isMatchPattern;
765 const Locator* m_locator;
767 BoolVectorType m_positionPredicateStack;
769 StringToStringMapType m_namespaces;
771 bool m_allowVariableReferences;
773 bool m_allowKeyFunction;
776 static const XalanDOMString s_emptyString;
778 static const XalanDOMChar s_functionIDString[];
782 static const XalanDOMChar s_functionKeyString[];
784 static const XalanDOMChar s_orString[];
786 static const XalanDOMChar s_andString[];
788 static const XalanDOMChar s_divString[];
790 static const XalanDOMChar s_modString[];
792 static const XalanDOMChar s_dotString[];
794 static const XalanDOMChar s_dotDotString[];
796 static const XalanDOMChar s_axisString[];
798 static const XalanDOMChar s_attributeString[];
800 static const XalanDOMChar s_childString[];
802 static const XalanDOMChar s_lastString[];
804 static const XalanDOMChar s_positionString[];
806 static const XalanDOMChar s_asteriskString[];
808 static const XalanDOMChar s_commentString[];
810 static const XalanDOMChar s_piString[];
812 static const XalanDOMChar s_nodeString[];
814 static const XalanDOMChar s_textString[];
816 static const XalanDOMChar s_ancestorString[];
818 static const XalanDOMChar s_ancestorOrSelfString[];
820 static const XalanDOMChar s_descendantString[];
822 static const XalanDOMChar s_descendantOrSelfString[];
824 static const XalanDOMChar s_followingString[];
826 static const XalanDOMChar s_followingSiblingString[];
828 static const XalanDOMChar s_parentString[];
830 static const XalanDOMChar s_precedingString[];
832 static const XalanDOMChar s_precedingSiblingString[];
834 static const XalanDOMChar s_selfString[];
836 static const XalanDOMChar s_namespaceString[];
838 static const TableEntry s_functionTable[];
840 static const size_type s_functionTableSize;
842 static const TableEntry s_nodeTypeTable[];
844 static const size_type s_nodeTypeTableSize;
846 static const TableEntry s_axisTable[];
848 static const size_type s_axisTableSize;
850 static const TableEntry s_dummyEntry;
855 XALAN_CPP_NAMESPACE_END
859 #endif // XPATHPROCESSORIMPL_HEADER_GUARD_1357924680 XalanMap< XalanDOMString, const XalanDOMString * > StringToStringMapType
The XPathProcessorImpl class responsibilities include tokenizing and parsing the XPath expression...
XalanVector< bool > BoolVectorType
XalanDOMString::size_type t_size_type
#define XALAN_DEFAULT_MEMMGR
XPath implementation of "string" function.
XALAN_CPP_NAMESPACE_BEGIN typedef size_t size_type
XPath implementation of "namespace-uri" function.
This class defines an interface for classes that resolve namespace prefixes to their URIs...
eOpCodes
List of operations codes.
virtual void initMatchPattern(XPath &pathObj, XPathConstructionContext &constructionContext, const XalanDOMString &expression, const PrefixResolver &resolver, const Locator *locator=0, bool allowVariableReferences=true, bool allowKeyFunction=true)=0
Given a string, create an XSLT Match Pattern object.
virtual void initXPath(XPath &pathObj, XPathConstructionContext &constructionContext, const XalanDOMString &expression, const PrefixResolver &resolver, const Locator *locator=0, bool allowVariableReferences=true, bool allowKeyFunction=true)=0
Given a string, make an XPath object, in order that a parse doesn't have to be done each time the exp...
Xalan implementation of a hashtable.
#define XALAN_XPATH_EXPORT