Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/xpathInternals.h
811 views
/*1* Summary: internal interfaces for XML Path Language implementation2* Description: internal interfaces for XML Path Language implementation3* used to build new modules on top of XPath like XPointer and4* XSLT5*6* Copy: See Copyright for the status of this software.7*8* Author: Daniel Veillard9*/1011#ifndef __XML_XPATH_INTERNALS_H__12#define __XML_XPATH_INTERNALS_H__1314#include <libxml/xmlversion.h>15#include <libxml/xpath.h>1617#ifdef LIBXML_XPATH_ENABLED1819#ifdef __cplusplus20extern "C" {21#endif2223/************************************************************************24* *25* Helpers *26* *27************************************************************************/2829/*30* Many of these macros may later turn into functions. They31* shouldn't be used in #ifdef's preprocessor instructions.32*/33/**34* xmlXPathSetError:35* @ctxt: an XPath parser context36* @err: an xmlXPathError code37*38* Raises an error.39*/40#define xmlXPathSetError(ctxt, err) \41{ xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \42if ((ctxt) != NULL) (ctxt)->error = (err); }4344/**45* xmlXPathSetArityError:46* @ctxt: an XPath parser context47*48* Raises an XPATH_INVALID_ARITY error.49*/50#define xmlXPathSetArityError(ctxt) \51xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)5253/**54* xmlXPathSetTypeError:55* @ctxt: an XPath parser context56*57* Raises an XPATH_INVALID_TYPE error.58*/59#define xmlXPathSetTypeError(ctxt) \60xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)6162/**63* xmlXPathGetError:64* @ctxt: an XPath parser context65*66* Get the error code of an XPath context.67*68* Returns the context error.69*/70#define xmlXPathGetError(ctxt) ((ctxt)->error)7172/**73* xmlXPathCheckError:74* @ctxt: an XPath parser context75*76* Check if an XPath error was raised.77*78* Returns true if an error has been raised, false otherwise.79*/80#define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)8182/**83* xmlXPathGetDocument:84* @ctxt: an XPath parser context85*86* Get the document of an XPath context.87*88* Returns the context document.89*/90#define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)9192/**93* xmlXPathGetContextNode:94* @ctxt: an XPath parser context95*96* Get the context node of an XPath context.97*98* Returns the context node.99*/100#define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)101102XMLPUBFUN int XMLCALL103xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);104XMLPUBFUN double XMLCALL105xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);106XMLPUBFUN xmlChar * XMLCALL107xmlXPathPopString (xmlXPathParserContextPtr ctxt);108XMLPUBFUN xmlNodeSetPtr XMLCALL109xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);110XMLPUBFUN void * XMLCALL111xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);112113/**114* xmlXPathReturnBoolean:115* @ctxt: an XPath parser context116* @val: a boolean117*118* Pushes the boolean @val on the context stack.119*/120#define xmlXPathReturnBoolean(ctxt, val) \121valuePush((ctxt), xmlXPathNewBoolean(val))122123/**124* xmlXPathReturnTrue:125* @ctxt: an XPath parser context126*127* Pushes true on the context stack.128*/129#define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)130131/**132* xmlXPathReturnFalse:133* @ctxt: an XPath parser context134*135* Pushes false on the context stack.136*/137#define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)138139/**140* xmlXPathReturnNumber:141* @ctxt: an XPath parser context142* @val: a double143*144* Pushes the double @val on the context stack.145*/146#define xmlXPathReturnNumber(ctxt, val) \147valuePush((ctxt), xmlXPathNewFloat(val))148149/**150* xmlXPathReturnString:151* @ctxt: an XPath parser context152* @str: a string153*154* Pushes the string @str on the context stack.155*/156#define xmlXPathReturnString(ctxt, str) \157valuePush((ctxt), xmlXPathWrapString(str))158159/**160* xmlXPathReturnEmptyString:161* @ctxt: an XPath parser context162*163* Pushes an empty string on the stack.164*/165#define xmlXPathReturnEmptyString(ctxt) \166valuePush((ctxt), xmlXPathNewCString(""))167168/**169* xmlXPathReturnNodeSet:170* @ctxt: an XPath parser context171* @ns: a node-set172*173* Pushes the node-set @ns on the context stack.174*/175#define xmlXPathReturnNodeSet(ctxt, ns) \176valuePush((ctxt), xmlXPathWrapNodeSet(ns))177178/**179* xmlXPathReturnEmptyNodeSet:180* @ctxt: an XPath parser context181*182* Pushes an empty node-set on the context stack.183*/184#define xmlXPathReturnEmptyNodeSet(ctxt) \185valuePush((ctxt), xmlXPathNewNodeSet(NULL))186187/**188* xmlXPathReturnExternal:189* @ctxt: an XPath parser context190* @val: user data191*192* Pushes user data on the context stack.193*/194#define xmlXPathReturnExternal(ctxt, val) \195valuePush((ctxt), xmlXPathWrapExternal(val))196197/**198* xmlXPathStackIsNodeSet:199* @ctxt: an XPath parser context200*201* Check if the current value on the XPath stack is a node set or202* an XSLT value tree.203*204* Returns true if the current object on the stack is a node-set.205*/206#define xmlXPathStackIsNodeSet(ctxt) \207(((ctxt)->value != NULL) \208&& (((ctxt)->value->type == XPATH_NODESET) \209|| ((ctxt)->value->type == XPATH_XSLT_TREE)))210211/**212* xmlXPathStackIsExternal:213* @ctxt: an XPath parser context214*215* Checks if the current value on the XPath stack is an external216* object.217*218* Returns true if the current object on the stack is an external219* object.220*/221#define xmlXPathStackIsExternal(ctxt) \222((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))223224/**225* xmlXPathEmptyNodeSet:226* @ns: a node-set227*228* Empties a node-set.229*/230#define xmlXPathEmptyNodeSet(ns) \231{ while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }232233/**234* CHECK_ERROR:235*236* Macro to return from the function if an XPath error was detected.237*/238#define CHECK_ERROR \239if (ctxt->error != XPATH_EXPRESSION_OK) return240241/**242* CHECK_ERROR0:243*244* Macro to return 0 from the function if an XPath error was detected.245*/246#define CHECK_ERROR0 \247if (ctxt->error != XPATH_EXPRESSION_OK) return(0)248249/**250* XP_ERROR:251* @X: the error code252*253* Macro to raise an XPath error and return.254*/255#define XP_ERROR(X) \256{ xmlXPathErr(ctxt, X); return; }257258/**259* XP_ERROR0:260* @X: the error code261*262* Macro to raise an XPath error and return 0.263*/264#define XP_ERROR0(X) \265{ xmlXPathErr(ctxt, X); return(0); }266267/**268* CHECK_TYPE:269* @typeval: the XPath type270*271* Macro to check that the value on top of the XPath stack is of a given272* type.273*/274#define CHECK_TYPE(typeval) \275if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \276XP_ERROR(XPATH_INVALID_TYPE)277278/**279* CHECK_TYPE0:280* @typeval: the XPath type281*282* Macro to check that the value on top of the XPath stack is of a given283* type. Return(0) in case of failure284*/285#define CHECK_TYPE0(typeval) \286if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \287XP_ERROR0(XPATH_INVALID_TYPE)288289/**290* CHECK_ARITY:291* @x: the number of expected args292*293* Macro to check that the number of args passed to an XPath function matches.294*/295#define CHECK_ARITY(x) \296if (ctxt == NULL) return; \297if (nargs != (x)) \298XP_ERROR(XPATH_INVALID_ARITY); \299if (ctxt->valueNr < ctxt->valueFrame + (x)) \300XP_ERROR(XPATH_STACK_ERROR);301302/**303* CAST_TO_STRING:304*305* Macro to try to cast the value on the top of the XPath stack to a string.306*/307#define CAST_TO_STRING \308if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \309xmlXPathStringFunction(ctxt, 1);310311/**312* CAST_TO_NUMBER:313*314* Macro to try to cast the value on the top of the XPath stack to a number.315*/316#define CAST_TO_NUMBER \317if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \318xmlXPathNumberFunction(ctxt, 1);319320/**321* CAST_TO_BOOLEAN:322*323* Macro to try to cast the value on the top of the XPath stack to a boolean.324*/325#define CAST_TO_BOOLEAN \326if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \327xmlXPathBooleanFunction(ctxt, 1);328329/*330* Variable Lookup forwarding.331*/332333XMLPUBFUN void XMLCALL334xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,335xmlXPathVariableLookupFunc f,336void *data);337338/*339* Function Lookup forwarding.340*/341342XMLPUBFUN void XMLCALL343xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,344xmlXPathFuncLookupFunc f,345void *funcCtxt);346347/*348* Error reporting.349*/350XMLPUBFUN void XMLCALL351xmlXPatherror (xmlXPathParserContextPtr ctxt,352const char *file,353int line,354int no);355356XMLPUBFUN void XMLCALL357xmlXPathErr (xmlXPathParserContextPtr ctxt,358int error);359360#ifdef LIBXML_DEBUG_ENABLED361XMLPUBFUN void XMLCALL362xmlXPathDebugDumpObject (FILE *output,363xmlXPathObjectPtr cur,364int depth);365XMLPUBFUN void XMLCALL366xmlXPathDebugDumpCompExpr(FILE *output,367xmlXPathCompExprPtr comp,368int depth);369#endif370/**371* NodeSet handling.372*/373XMLPUBFUN int XMLCALL374xmlXPathNodeSetContains (xmlNodeSetPtr cur,375xmlNodePtr val);376XMLPUBFUN xmlNodeSetPtr XMLCALL377xmlXPathDifference (xmlNodeSetPtr nodes1,378xmlNodeSetPtr nodes2);379XMLPUBFUN xmlNodeSetPtr XMLCALL380xmlXPathIntersection (xmlNodeSetPtr nodes1,381xmlNodeSetPtr nodes2);382383XMLPUBFUN xmlNodeSetPtr XMLCALL384xmlXPathDistinctSorted (xmlNodeSetPtr nodes);385XMLPUBFUN xmlNodeSetPtr XMLCALL386xmlXPathDistinct (xmlNodeSetPtr nodes);387388XMLPUBFUN int XMLCALL389xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,390xmlNodeSetPtr nodes2);391392XMLPUBFUN xmlNodeSetPtr XMLCALL393xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,394xmlNodePtr node);395XMLPUBFUN xmlNodeSetPtr XMLCALL396xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,397xmlNodeSetPtr nodes2);398XMLPUBFUN xmlNodeSetPtr XMLCALL399xmlXPathNodeLeading (xmlNodeSetPtr nodes,400xmlNodePtr node);401XMLPUBFUN xmlNodeSetPtr XMLCALL402xmlXPathLeading (xmlNodeSetPtr nodes1,403xmlNodeSetPtr nodes2);404405XMLPUBFUN xmlNodeSetPtr XMLCALL406xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,407xmlNodePtr node);408XMLPUBFUN xmlNodeSetPtr XMLCALL409xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,410xmlNodeSetPtr nodes2);411XMLPUBFUN xmlNodeSetPtr XMLCALL412xmlXPathNodeTrailing (xmlNodeSetPtr nodes,413xmlNodePtr node);414XMLPUBFUN xmlNodeSetPtr XMLCALL415xmlXPathTrailing (xmlNodeSetPtr nodes1,416xmlNodeSetPtr nodes2);417418419/**420* Extending a context.421*/422423XMLPUBFUN int XMLCALL424xmlXPathRegisterNs (xmlXPathContextPtr ctxt,425const xmlChar *prefix,426const xmlChar *ns_uri);427XMLPUBFUN const xmlChar * XMLCALL428xmlXPathNsLookup (xmlXPathContextPtr ctxt,429const xmlChar *prefix);430XMLPUBFUN void XMLCALL431xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);432433XMLPUBFUN int XMLCALL434xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,435const xmlChar *name,436xmlXPathFunction f);437XMLPUBFUN int XMLCALL438xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,439const xmlChar *name,440const xmlChar *ns_uri,441xmlXPathFunction f);442XMLPUBFUN int XMLCALL443xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,444const xmlChar *name,445xmlXPathObjectPtr value);446XMLPUBFUN int XMLCALL447xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,448const xmlChar *name,449const xmlChar *ns_uri,450xmlXPathObjectPtr value);451XMLPUBFUN xmlXPathFunction XMLCALL452xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,453const xmlChar *name);454XMLPUBFUN xmlXPathFunction XMLCALL455xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,456const xmlChar *name,457const xmlChar *ns_uri);458XMLPUBFUN void XMLCALL459xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);460XMLPUBFUN xmlXPathObjectPtr XMLCALL461xmlXPathVariableLookup (xmlXPathContextPtr ctxt,462const xmlChar *name);463XMLPUBFUN xmlXPathObjectPtr XMLCALL464xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,465const xmlChar *name,466const xmlChar *ns_uri);467XMLPUBFUN void XMLCALL468xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);469470/**471* Utilities to extend XPath.472*/473XMLPUBFUN xmlXPathParserContextPtr XMLCALL474xmlXPathNewParserContext (const xmlChar *str,475xmlXPathContextPtr ctxt);476XMLPUBFUN void XMLCALL477xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);478479/* TODO: remap to xmlXPathValuePop and Push. */480XMLPUBFUN xmlXPathObjectPtr XMLCALL481valuePop (xmlXPathParserContextPtr ctxt);482XMLPUBFUN int XMLCALL483valuePush (xmlXPathParserContextPtr ctxt,484xmlXPathObjectPtr value);485486XMLPUBFUN xmlXPathObjectPtr XMLCALL487xmlXPathNewString (const xmlChar *val);488XMLPUBFUN xmlXPathObjectPtr XMLCALL489xmlXPathNewCString (const char *val);490XMLPUBFUN xmlXPathObjectPtr XMLCALL491xmlXPathWrapString (xmlChar *val);492XMLPUBFUN xmlXPathObjectPtr XMLCALL493xmlXPathWrapCString (char * val);494XMLPUBFUN xmlXPathObjectPtr XMLCALL495xmlXPathNewFloat (double val);496XMLPUBFUN xmlXPathObjectPtr XMLCALL497xmlXPathNewBoolean (int val);498XMLPUBFUN xmlXPathObjectPtr XMLCALL499xmlXPathNewNodeSet (xmlNodePtr val);500XMLPUBFUN xmlXPathObjectPtr XMLCALL501xmlXPathNewValueTree (xmlNodePtr val);502XMLPUBFUN int XMLCALL503xmlXPathNodeSetAdd (xmlNodeSetPtr cur,504xmlNodePtr val);505XMLPUBFUN int XMLCALL506xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,507xmlNodePtr val);508XMLPUBFUN int XMLCALL509xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,510xmlNodePtr node,511xmlNsPtr ns);512XMLPUBFUN void XMLCALL513xmlXPathNodeSetSort (xmlNodeSetPtr set);514515XMLPUBFUN void XMLCALL516xmlXPathRoot (xmlXPathParserContextPtr ctxt);517XMLPUBFUN void XMLCALL518xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);519XMLPUBFUN xmlChar * XMLCALL520xmlXPathParseName (xmlXPathParserContextPtr ctxt);521XMLPUBFUN xmlChar * XMLCALL522xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);523524/*525* Existing functions.526*/527XMLPUBFUN double XMLCALL528xmlXPathStringEvalNumber (const xmlChar *str);529XMLPUBFUN int XMLCALL530xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,531xmlXPathObjectPtr res);532XMLPUBFUN void XMLCALL533xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);534XMLPUBFUN xmlNodeSetPtr XMLCALL535xmlXPathNodeSetMerge (xmlNodeSetPtr val1,536xmlNodeSetPtr val2);537XMLPUBFUN void XMLCALL538xmlXPathNodeSetDel (xmlNodeSetPtr cur,539xmlNodePtr val);540XMLPUBFUN void XMLCALL541xmlXPathNodeSetRemove (xmlNodeSetPtr cur,542int val);543XMLPUBFUN xmlXPathObjectPtr XMLCALL544xmlXPathNewNodeSetList (xmlNodeSetPtr val);545XMLPUBFUN xmlXPathObjectPtr XMLCALL546xmlXPathWrapNodeSet (xmlNodeSetPtr val);547XMLPUBFUN xmlXPathObjectPtr XMLCALL548xmlXPathWrapExternal (void *val);549550XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);551XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);552XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);553XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);554XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);555XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);556XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);557XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);558XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);559560XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);561562/*563* Some of the axis navigation routines.564*/565XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,566xmlNodePtr cur);567XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,568xmlNodePtr cur);569XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,570xmlNodePtr cur);571XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,572xmlNodePtr cur);573XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,574xmlNodePtr cur);575XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,576xmlNodePtr cur);577XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,578xmlNodePtr cur);579XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,580xmlNodePtr cur);581XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,582xmlNodePtr cur);583XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,584xmlNodePtr cur);585XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,586xmlNodePtr cur);587XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,588xmlNodePtr cur);589XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,590xmlNodePtr cur);591/*592* The official core of XPath functions.593*/594XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);595XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);596XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);597XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);598XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);599XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);600XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);601XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);602XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);603XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);604XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);605XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);606XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);607XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);608XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);609XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);610XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);611XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);612XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);613XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);614XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);615XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);616XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);617XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);618XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);619XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);620621/**622* Really internal functions623*/624XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);625626#ifdef __cplusplus627}628#endif629630#endif /* LIBXML_XPATH_ENABLED */631#endif /* ! __XML_XPATH_INTERNALS_H__ */632633634