18 #if !defined(XPATH_HEADER_GUARD_1357924680)
19 #define XPATH_HEADER_GUARD_1357924680
48 XALAN_DECLARE_XERCES_CLASS(Locator)
52 XALAN_CPP_NAMESPACE_BEGIN
78 static const XalanDOMChar PSEUDONAME_ANY[];
79 static const XalanDOMChar PSEUDONAME_ROOT[];
80 static const XalanDOMChar PSEUDONAME_TEXT[];
81 static const XalanDOMChar PSEUDONAME_COMMENT[];
82 static const XalanDOMChar PSEUDONAME_PI[];
83 static const XalanDOMChar PSEUDONAME_OTHER[];
84 static const XalanDOMChar PSEUDONAME_NODE[];
103 m_priority(eMatchScoreNone),
109 const XalanDOMChar* theString,
113 m_priority(thePriority),
114 m_targetType(theTargetType)
138 const XalanDOMChar* m_string;
142 eTargetType m_targetType;
151 initialize(MemoryManager& theManager);
166 MemoryManager& theManager,
167 const Locator* theLocator = 0);
171 MemoryManager& theManager,
172 const Locator* theLocator = 0);
177 return m_expression.getMemoryManager();
188 m_expression.shrink();
233 double& result)
const;
268 MemberFunctionPtr
function)
const;
317 return execute(context, prefixResolver, executionContext);
342 execute(context, prefixResolver, executionContext, result);
360 double& result)
const
367 execute(context, prefixResolver, executionContext, result);
393 execute(context, prefixResolver, executionContext, result);
413 MemberFunctionPtr
function)
const
420 execute(context, prefixResolver, executionContext, formatterListener,
function);
456 return execute(context, prefixResolver, executionContext, result);
476 getInitialOpCodePosition(),
499 getInitialOpCodePosition(),
516 double& result)
const
523 getInitialOpCodePosition(),
548 getInitialOpCodePosition(),
567 MemberFunctionPtr
function)
const
574 getInitialOpCodePosition(),
610 getInitialOpCodePosition(),
639 getInitialOpCodePosition(),
668 getInitialOpCodePosition(),
687 double& result)
const
698 getInitialOpCodePosition(),
729 getInitialOpCodePosition(),
747 MemberFunctionPtr
function)
const
758 getInitialOpCodePosition(),
800 getInitialOpCodePosition(),
832 case eMatchScoreNone:
836 case eMatchScoreNodeTest:
840 case eMatchScoreNSWild:
844 case eMatchScoreOther:
848 case eMatchScoreQName:
897 return executeMore(context, opPos + 2, executionContext);
906 getTargetData(TargetDataVectorType& targetData)
const;
919 s_functions.InstallFunction(funcName,
931 const XalanDOMChar* funcName,
934 s_functions.InstallFunction(funcName,
947 return s_functions.UninstallFunction(funcName);
959 return s_functions.UninstallFunction(funcName);
971 return s_functions.isInstalledFunction(theFunctionName);
992 template<
class OutputIteratorType>
996 s_functions.getInstalledFunctionNames(theIterator);
1002 s_functions.DestroyTable();
1008 return m_inStylesheet;
1014 m_inStylesheet = fValue;
1026 m_locator = theLocator;
1048 const Locator* theLocator = 0,
1063 return (this->*m_testFunction)(context, nodeType);
1069 return (this->*m_testFunction2)(context);
1075 m_executionContext = theRHS.m_executionContext;
1076 m_targetNamespace = theRHS.m_targetNamespace;
1077 m_targetLocalName = theRHS.m_targetLocalName;
1078 m_testFunction = theRHS.m_testFunction;
1079 m_testFunction2 = theRHS.m_testFunction2;
1091 const Locator* theLocator);
1136 testAttributeNCName(
1146 testAttributeNamespaceOnly(
1151 testAttributeTotallyWild(
1166 testElementNamespaceOnly(
1171 testElementTotallyWild(
1182 testElementNamespaceOnly2(
const XalanElement& context)
const;
1185 testElementTotallyWild2(
const XalanElement& context)
const;
1188 testNamespaceNCName(
1193 testNamespaceTotallyWild(
1206 matchLocalName(
const XalanNode& context)
const;
1209 matchNamespaceURI(
const XalanNode& context)
const;
1212 matchLocalNameAndNamespaceURI(
const XalanNode& context)
const;
1215 matchNamespace(
const XalanNode& context)
const;
1218 shouldStripSourceNode(
const XalanText& context)
const;
1227 TestFunctionPtr m_testFunction;
1229 TestFunctionPtr2 m_testFunction2;
1263 bool& theResult)
const;
1278 double& theResult)
const;
1310 MemberFunctionPtr
function)
const;
1327 step(executionContext, context, opPos + 2, theResult);
1341 OpCodeMapPositionType opPos,
1355 OpCodeMapPositionType opPos,
1357 bool& theResult)
const;
1370 OpCodeMapPositionType opPos,
1372 double& theResult)
const;
1386 OpCodeMapPositionType opPos,
1402 OpCodeMapPositionType opPos,
1405 MemberFunctionPtr
function)
const;
1419 OpCodeMapPositionType opPos,
1433 eMatchScore& score)
const;
1445 OpCodeMapPositionType opPos,
1458 OpCodeMapPositionType opPos,
1471 OpCodeMapPositionType opPos,
1484 OpCodeMapPositionType opPos,
1497 OpCodeMapPositionType opPos,
1510 OpCodeMapPositionType opPos,
1523 OpCodeMapPositionType opPos,
1536 OpCodeMapPositionType opPos,
1549 OpCodeMapPositionType opPos,
1563 OpCodeMapPositionType opPos,
1566 MemberFunctionPtr
function)
const;
1578 OpCodeMapPositionType opPos,
1592 OpCodeMapPositionType opPos,
1595 MemberFunctionPtr
function)
const;
1607 OpCodeMapPositionType opPos,
1621 OpCodeMapPositionType opPos,
1624 MemberFunctionPtr
function)
const;
1636 OpCodeMapPositionType opPos,
1650 OpCodeMapPositionType opPos,
1653 MemberFunctionPtr
function)
const;
1665 OpCodeMapPositionType opPos,
1679 OpCodeMapPositionType opPos,
1682 MemberFunctionPtr
function)
const;
1694 OpCodeMapPositionType opPos,
1708 OpCodeMapPositionType opPos,
1711 MemberFunctionPtr
function)
const;
1723 OpCodeMapPositionType opPos,
1737 OpCodeMapPositionType opPos,
1739 bool& result)
const;
1752 OpCodeMapPositionType opPos,
1754 double& result)
const;
1767 OpCodeMapPositionType opPos,
1783 OpCodeMapPositionType opPos,
1786 MemberFunctionPtr
function)
const;
1798 OpCodeMapPositionType opPos,
1810 OpCodeMapPositionType opPos,
1821 OpCodeMapPositionType opPos,
1822 bool& theResult)
const;
1832 OpCodeMapPositionType opPos,
1833 double& theResult)
const;
1844 OpCodeMapPositionType opPos,
1855 OpCodeMapPositionType opPos,
1857 MemberFunctionPtr
function)
const;
1867 OpCodeMapPositionType opPos,
1883 return executeMore(context, opPos + 2, executionContext);
1898 bool& theResult)
const
1900 executeMore(context, opPos + 2, executionContext, theResult);
1915 double& theResult)
const
1917 executeMore(context, opPos + 2, executionContext, theResult);
1934 executeMore(context, opPos + 2, executionContext, theResult);
1952 MemberFunctionPtr
function)
const
1982 if (theValue.
null() ==
false)
1998 numberlit(OpCodeMapPositionType opPos)
const;
2007 OpCodeMapPositionType opPos,
2018 OpCodeMapPositionType opPos,
2019 bool& theResult)
const;
2030 OpCodeMapPositionType opPos,
2042 OpCodeMapPositionType opPos,
2044 MemberFunctionPtr
function)
const;
2056 OpCodeMapPositionType opPos,
2094 OpCodeMapPositionType opPos,
2112 return s_functions[funcID].execute(executionContext, context, argVec, m_locator);
2127 assert(context != 0);
2131 assert(
static_cast<double>(theResult) == theResult);
2133 return static_cast<double>(theResult);
2147 assert(
static_cast<double>(theResult) == theResult);
2149 return static_cast<double>(theResult);
2163 OpCodeMapPositionType opPos,
2180 assert(context != 0);
2182 return !functionBoolean(context, opPos, executionContext);
2199 assert(context != 0);
2203 executeMore(context, opPos + 2, executionContext, result);
2217 assert(context != 0);
2233 OpCodeMapPositionType opPos,
2243 functionLocalName(
XalanNode* context)
const;
2256 OpCodeMapPositionType opPos,
2271 assert(context != 0);
2292 executeMore(context, opPos + 2, executionContext, result);
2356 functionStringLength(
2369 functionStringLength(
2371 OpCodeMapPositionType opPos,
2385 OpCodeMapPositionType opPos,
2398 OpCodeMapPositionType opPos,
2407 operator=(
const XPath&);
2415 eDefaultTargetDataSize = 5
2418 OpCodeMapPositionType
2419 getInitialOpCodePosition()
const
2421 #if defined(XALAN_XPATH_EXPRESSION_USE_ITERATORS)
2424 assert(m_expression.getOpCodeMapValue(
2427 return m_expression.getInitialOpCodePosition() + 2;
2431 locationPathPattern(
2434 OpCodeMapPositionType opPos)
const;
2450 OpCodeMapPositionType opPos,
2467 OpCodeMapPositionType opPos,
2468 OpCodeMapPositionType startOpPos,
2469 eMatchScore score)
const;
2485 OpCodeMapPositionType opPos,
2486 eMatchScore& scoreHolder)
const;
2488 OpCodeMapPositionType
2492 OpCodeMapPositionType opPos,
2493 OpCodeMapValueType stepType,
2496 OpCodeMapPositionType
2500 OpCodeMapPositionType opPos,
2501 OpCodeMapValueType stepType,
2504 OpCodeMapPositionType
2508 OpCodeMapPositionType opPos,
2509 OpCodeMapValueType stepType,
2512 OpCodeMapPositionType
2516 OpCodeMapPositionType opPos,
2517 OpCodeMapValueType stepType,
2520 OpCodeMapPositionType
2524 OpCodeMapPositionType opPos,
2525 OpCodeMapValueType stepType,
2528 OpCodeMapPositionType
2529 findAncestorsOrSelf(
2532 OpCodeMapPositionType opPos,
2533 OpCodeMapValueType stepType,
2536 OpCodeMapPositionType
2540 OpCodeMapPositionType opPos,
2541 OpCodeMapValueType stepType,
2544 OpCodeMapPositionType
2548 OpCodeMapPositionType opPos,
2549 OpCodeMapValueType stepType,
2552 OpCodeMapPositionType
2556 OpCodeMapPositionType opPos,
2557 OpCodeMapValueType stepType,
2560 OpCodeMapPositionType
2564 OpCodeMapPositionType opPos,
2565 OpCodeMapValueType stepType,
2568 OpCodeMapPositionType
2569 findFollowingSiblings(
2572 OpCodeMapPositionType opPos,
2573 OpCodeMapValueType stepType,
2576 OpCodeMapPositionType
2580 OpCodeMapPositionType opPos,
2581 OpCodeMapValueType stepType,
2584 OpCodeMapPositionType
2585 findPreceedingSiblings(
2588 OpCodeMapPositionType opPos,
2589 OpCodeMapValueType stepType,
2592 OpCodeMapPositionType
2596 OpCodeMapPositionType opPos,
2597 OpCodeMapValueType stepType,
2600 OpCodeMapPositionType
2601 findNodesOnUnknownAxis(
2604 OpCodeMapPositionType opPos,
2605 OpCodeMapValueType stepType,
2608 OpCodeMapPositionType
2611 OpCodeMapPositionType opPos,
2618 OpCodeMapPositionType startOpPos)
const;
2621 handleFoundIndexPositional(
2624 OpCodeMapPositionType startOpPos)
const;
2632 OpCodeMapPositionType opPos)
const;
2651 const Locator* m_locator;
2658 bool m_inStylesheet;
2665 static FunctionTableType s_functions;
2672 XALAN_CPP_NAMESPACE_END
2676 #endif // XPATH_HEADER_GUARD_1357924680