18#if !defined(XPATHPROCESSORIMPL_HEADER_GUARD_1357924680)
19#define XPATHPROCESSORIMPL_HEADER_GUARD_1357924680
93 const Locator* locator = 0,
94 bool allowVariableReferences =
true,
95 bool allowKeyFunction =
true);
103 const Locator* locator = 0,
104 bool allowVariableReferences =
true,
105 bool allowKeyFunction =
true);
122 replaceTokenWithNamespaceToken()
const;
149 tokenIs(
const XalanDOMChar* s)
const;
157 tokenIs(XalanDOMChar c)
const;
180 const XalanDOMChar* s,
221 lookbehindHasToken(
int n)
const;
235 getTokenRelative(
int theOffset)
const;
249 consumeExpected(XalanDOMChar expected);
252 isCurrentLiteral()
const;
282 error(XalanMessages::Codes theCode)
const;
286 XalanMessages::Codes theCode,
291 XalanMessages::Codes theCode,
292 const XalanDOMChar* theToken)
const;
296 XalanMessages::Codes theCode,
297 XalanDOMChar theToken1,
306 return searchTable(s_functionTable, s_functionTableSize, key).m_opCode;
315 return searchTable(s_nodeTypeTable, s_nodeTypeTableSize, key).m_opCode;
321 static XPathExpression::eOpCodes
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);
533 FunctionString(
int opPos);
536 FunctionStringLength(
int opPos);
542 FunctionNamespaceURI(
int opPos);
561 RelativeLocationPath();
584 XPathExpression::eOpCodes
664 LocationPathPattern();
684 RelativePathPattern();
700 AbbreviatedNodeTestStep();
703 isValidFunction(
const XalanDOMString& key);
708 FunctionCallArguments();
712 const XalanDOMChar* m_string;
714 XPathExpression::eOpCodes m_opCode;
719 static const TableEntry&
721 const TableEntry theTable[],
722 size_type theTableSize,
723 const XalanDOMString& theString);
728 XalanDOMString m_token;
735 XalanDOMChar m_tokenChar;
745 XPathConstructionContext* m_constructionContext;
750 XPathExpression* m_expression;
755 const PrefixResolver* m_prefixResolver;
757 bool m_requireLiterals;
759 bool m_isMatchPattern;
761 const Locator* m_locator;
763 BoolVectorType m_positionPredicateStack;
765 StringToStringMapType m_namespaces;
767 bool m_allowVariableReferences;
769 bool m_allowKeyFunction;
772 static const XalanDOMString s_emptyString;
774 static const XalanDOMChar s_functionIDString[];
778 static const XalanDOMChar s_functionKeyString[];
780 static const XalanDOMChar s_orString[];
782 static const XalanDOMChar s_andString[];
784 static const XalanDOMChar s_divString[];
786 static const XalanDOMChar s_modString[];
788 static const XalanDOMChar s_dotString[];
790 static const XalanDOMChar s_dotDotString[];
792 static const XalanDOMChar s_axisString[];
794 static const XalanDOMChar s_attributeString[];
796 static const XalanDOMChar s_childString[];
798 static const XalanDOMChar s_lastString[];
800 static const XalanDOMChar s_positionString[];
802 static const XalanDOMChar s_asteriskString[];
804 static const XalanDOMChar s_commentString[];
806 static const XalanDOMChar s_piString[];
808 static const XalanDOMChar s_nodeString[];
810 static const XalanDOMChar s_textString[];
812 static const XalanDOMChar s_ancestorString[];
814 static const XalanDOMChar s_ancestorOrSelfString[];
816 static const XalanDOMChar s_descendantString[];
818 static const XalanDOMChar s_descendantOrSelfString[];
820 static const XalanDOMChar s_followingString[];
822 static const XalanDOMChar s_followingSiblingString[];
824 static const XalanDOMChar s_parentString[];
826 static const XalanDOMChar s_precedingString[];
828 static const XalanDOMChar s_precedingSiblingString[];
830 static const XalanDOMChar s_selfString[];
832 static const XalanDOMChar s_namespaceString[];
834 static const TableEntry s_functionTable[];
836 static const size_type s_functionTableSize;
838 static const TableEntry s_nodeTypeTable[];
840 static const size_type s_nodeTypeTableSize;
842 static const TableEntry s_axisTable[];
846 static const TableEntry s_dummyEntry;
#define XALAN_XPATH_EXPORT
#define XALAN_DEFAULT_MEMMGR
#define XALAN_CPP_NAMESPACE
Xalan-C++ namespace, including major and minor version.
This class defines an interface for classes that resolve namespace prefixes to their URIs.
eOpCodes
List of operations codes.
The XPathProcessorImpl class responsibilities include tokenizing and parsing the XPath expression,...
XalanMap< XalanDOMString, const XalanDOMString * > StringToStringMapType
virtual void initXPath(XPath &pathObj, XPathConstructionContext &constructionContext, const XalanDOMString &expression, const PrefixResolver &resolver, const Locator *locator=0, bool allowVariableReferences=true, bool allowKeyFunction=true)
Given a string, make an XPath object, in order that a parse doesn't have to be done each time the exp...
static XPathProcessorImpl * create(MemoryManager &theManager)
virtual void initMatchPattern(XPath &pathObj, XPathConstructionContext &constructionContext, const XalanDOMString &expression, const PrefixResolver &resolver, const Locator *locator=0, bool allowVariableReferences=true, bool allowKeyFunction=true)
Given a string, create an XSLT Match Pattern object.
XalanDOMString::size_type t_size_type
XPathProcessorImpl(MemoryManager &theManager XALAN_DEFAULT_MEMMGR)
virtual ~XPathProcessorImpl()
XalanVector< bool > BoolVectorType
Xalan implementation of a hashtable.