2 * Summary: internal interfaces for XML Path Language implementation
3 * Description: internal interfaces for XML Path Language implementation
4 * used to build new modules on top of XPath like XPointer and
7 * Copy: See Copyright for the status of this software.
9 * Author: Daniel Veillard
12 #ifndef __XML_XPATH_INTERNALS_H__
13 #define __XML_XPATH_INTERNALS_H__
15 #include <libxml/xmlversion.h>
16 #include <libxml/xpath.h>
18 #ifdef LIBXML_XPATH_ENABLED
24 /************************************************************************
28 ************************************************************************/
31 * Many of these macros may later turn into functions. They
32 * shouldn't be used in #ifdef's preprocessor instructions.
36 * @ctxt: an XPath parser context
37 * @err: an xmlXPathError code
41 #define xmlXPathSetError(ctxt, err) \
42 { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
43 if ((ctxt) != NULL) (ctxt)->error = (err); }
46 * xmlXPathSetArityError:
47 * @ctxt: an XPath parser context
49 * Raises an XPATH_INVALID_ARITY error.
51 #define xmlXPathSetArityError(ctxt) \
52 xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
55 * xmlXPathSetTypeError:
56 * @ctxt: an XPath parser context
58 * Raises an XPATH_INVALID_TYPE error.
60 #define xmlXPathSetTypeError(ctxt) \
61 xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
65 * @ctxt: an XPath parser context
67 * Get the error code of an XPath context.
69 * Returns the context error.
71 #define xmlXPathGetError(ctxt) ((ctxt)->error)
75 * @ctxt: an XPath parser context
77 * Check if an XPath error was raised.
79 * Returns true if an error has been raised, false otherwise.
81 #define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
84 * xmlXPathGetDocument:
85 * @ctxt: an XPath parser context
87 * Get the document of an XPath context.
89 * Returns the context document.
91 #define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
94 * xmlXPathGetContextNode:
95 * @ctxt: an XPath parser context
97 * Get the context node of an XPath context.
99 * Returns the context node.
101 #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
103 XMLPUBFUN
int XMLCALL
104 xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt
);
105 XMLPUBFUN
double XMLCALL
106 xmlXPathPopNumber (xmlXPathParserContextPtr ctxt
);
107 XMLPUBFUN xmlChar
* XMLCALL
108 xmlXPathPopString (xmlXPathParserContextPtr ctxt
);
109 XMLPUBFUN xmlNodeSetPtr XMLCALL
110 xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt
);
111 XMLPUBFUN
void * XMLCALL
112 xmlXPathPopExternal (xmlXPathParserContextPtr ctxt
);
115 * xmlXPathReturnBoolean:
116 * @ctxt: an XPath parser context
119 * Pushes the boolean @val on the context stack.
121 #define xmlXPathReturnBoolean(ctxt, val) \
122 valuePush((ctxt), xmlXPathNewBoolean(val))
125 * xmlXPathReturnTrue:
126 * @ctxt: an XPath parser context
128 * Pushes true on the context stack.
130 #define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
133 * xmlXPathReturnFalse:
134 * @ctxt: an XPath parser context
136 * Pushes false on the context stack.
138 #define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
141 * xmlXPathReturnNumber:
142 * @ctxt: an XPath parser context
145 * Pushes the double @val on the context stack.
147 #define xmlXPathReturnNumber(ctxt, val) \
148 valuePush((ctxt), xmlXPathNewFloat(val))
151 * xmlXPathReturnString:
152 * @ctxt: an XPath parser context
155 * Pushes the string @str on the context stack.
157 #define xmlXPathReturnString(ctxt, str) \
158 valuePush((ctxt), xmlXPathWrapString(str))
161 * xmlXPathReturnEmptyString:
162 * @ctxt: an XPath parser context
164 * Pushes an empty string on the stack.
166 #define xmlXPathReturnEmptyString(ctxt) \
167 valuePush((ctxt), xmlXPathNewCString(""))
170 * xmlXPathReturnNodeSet:
171 * @ctxt: an XPath parser context
174 * Pushes the node-set @ns on the context stack.
176 #define xmlXPathReturnNodeSet(ctxt, ns) \
177 valuePush((ctxt), xmlXPathWrapNodeSet(ns))
180 * xmlXPathReturnEmptyNodeSet:
181 * @ctxt: an XPath parser context
183 * Pushes an empty node-set on the context stack.
185 #define xmlXPathReturnEmptyNodeSet(ctxt) \
186 valuePush((ctxt), xmlXPathNewNodeSet(NULL))
189 * xmlXPathReturnExternal:
190 * @ctxt: an XPath parser context
193 * Pushes user data on the context stack.
195 #define xmlXPathReturnExternal(ctxt, val) \
196 valuePush((ctxt), xmlXPathWrapExternal(val))
199 * xmlXPathStackIsNodeSet:
200 * @ctxt: an XPath parser context
202 * Check if the current value on the XPath stack is a node set or
203 * an XSLT value tree.
205 * Returns true if the current object on the stack is a node-set.
207 #define xmlXPathStackIsNodeSet(ctxt) \
208 (((ctxt)->value != NULL) \
209 && (((ctxt)->value->type == XPATH_NODESET) \
210 || ((ctxt)->value->type == XPATH_XSLT_TREE)))
213 * xmlXPathStackIsExternal:
214 * @ctxt: an XPath parser context
216 * Checks if the current value on the XPath stack is an external
219 * Returns true if the current object on the stack is an external
222 #define xmlXPathStackIsExternal(ctxt) \
223 ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
226 * xmlXPathEmptyNodeSet:
229 * Empties a node-set.
231 #define xmlXPathEmptyNodeSet(ns) \
232 { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
237 * Macro to return from the function if an XPath error was detected.
239 #define CHECK_ERROR \
240 if (ctxt->error != XPATH_EXPRESSION_OK) return
245 * Macro to return 0 from the function if an XPath error was detected.
247 #define CHECK_ERROR0 \
248 if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
254 * Macro to raise an XPath error and return.
256 #define XP_ERROR(X) \
257 { xmlXPathErr(ctxt, X); return; }
263 * Macro to raise an XPath error and return 0.
265 #define XP_ERROR0(X) \
266 { xmlXPathErr(ctxt, X); return(0); }
270 * @typeval: the XPath type
272 * Macro to check that the value on top of the XPath stack is of a given
275 #define CHECK_TYPE(typeval) \
276 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
277 XP_ERROR(XPATH_INVALID_TYPE)
281 * @typeval: the XPath type
283 * Macro to check that the value on top of the XPath stack is of a given
284 * type. Return(0) in case of failure
286 #define CHECK_TYPE0(typeval) \
287 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
288 XP_ERROR0(XPATH_INVALID_TYPE)
292 * @x: the number of expected args
294 * Macro to check that the number of args passed to an XPath function matches.
296 #define CHECK_ARITY(x) \
297 if (ctxt == NULL) return; \
299 XP_ERROR(XPATH_INVALID_ARITY); \
300 if (ctxt->valueNr < ctxt->valueFrame + (x)) \
301 XP_ERROR(XPATH_STACK_ERROR);
306 * Macro to try to cast the value on the top of the XPath stack to a string.
308 #define CAST_TO_STRING \
309 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
310 xmlXPathStringFunction(ctxt, 1);
315 * Macro to try to cast the value on the top of the XPath stack to a number.
317 #define CAST_TO_NUMBER \
318 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
319 xmlXPathNumberFunction(ctxt, 1);
324 * Macro to try to cast the value on the top of the XPath stack to a boolean.
326 #define CAST_TO_BOOLEAN \
327 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
328 xmlXPathBooleanFunction(ctxt, 1);
331 * Variable Lookup forwarding.
334 XMLPUBFUN
void XMLCALL
335 xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt
,
336 xmlXPathVariableLookupFunc f
,
340 * Function Lookup forwarding.
343 XMLPUBFUN
void XMLCALL
344 xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt
,
345 xmlXPathFuncLookupFunc f
,
351 XMLPUBFUN
void XMLCALL
352 xmlXPatherror (xmlXPathParserContextPtr ctxt
,
357 XMLPUBFUN
void XMLCALL
358 xmlXPathErr (xmlXPathParserContextPtr ctxt
,
361 #ifdef LIBXML_DEBUG_ENABLED
362 XMLPUBFUN
void XMLCALL
363 xmlXPathDebugDumpObject (FILE *output
,
364 xmlXPathObjectPtr cur
,
366 XMLPUBFUN
void XMLCALL
367 xmlXPathDebugDumpCompExpr(FILE *output
,
368 xmlXPathCompExprPtr comp
,
374 XMLPUBFUN
int XMLCALL
375 xmlXPathNodeSetContains (xmlNodeSetPtr cur
,
377 XMLPUBFUN xmlNodeSetPtr XMLCALL
378 xmlXPathDifference (xmlNodeSetPtr nodes1
,
379 xmlNodeSetPtr nodes2
);
380 XMLPUBFUN xmlNodeSetPtr XMLCALL
381 xmlXPathIntersection (xmlNodeSetPtr nodes1
,
382 xmlNodeSetPtr nodes2
);
384 XMLPUBFUN xmlNodeSetPtr XMLCALL
385 xmlXPathDistinctSorted (xmlNodeSetPtr nodes
);
386 XMLPUBFUN xmlNodeSetPtr XMLCALL
387 xmlXPathDistinct (xmlNodeSetPtr nodes
);
389 XMLPUBFUN
int XMLCALL
390 xmlXPathHasSameNodes (xmlNodeSetPtr nodes1
,
391 xmlNodeSetPtr nodes2
);
393 XMLPUBFUN xmlNodeSetPtr XMLCALL
394 xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes
,
396 XMLPUBFUN xmlNodeSetPtr XMLCALL
397 xmlXPathLeadingSorted (xmlNodeSetPtr nodes1
,
398 xmlNodeSetPtr nodes2
);
399 XMLPUBFUN xmlNodeSetPtr XMLCALL
400 xmlXPathNodeLeading (xmlNodeSetPtr nodes
,
402 XMLPUBFUN xmlNodeSetPtr XMLCALL
403 xmlXPathLeading (xmlNodeSetPtr nodes1
,
404 xmlNodeSetPtr nodes2
);
406 XMLPUBFUN xmlNodeSetPtr XMLCALL
407 xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes
,
409 XMLPUBFUN xmlNodeSetPtr XMLCALL
410 xmlXPathTrailingSorted (xmlNodeSetPtr nodes1
,
411 xmlNodeSetPtr nodes2
);
412 XMLPUBFUN xmlNodeSetPtr XMLCALL
413 xmlXPathNodeTrailing (xmlNodeSetPtr nodes
,
415 XMLPUBFUN xmlNodeSetPtr XMLCALL
416 xmlXPathTrailing (xmlNodeSetPtr nodes1
,
417 xmlNodeSetPtr nodes2
);
421 * Extending a context.
424 XMLPUBFUN
int XMLCALL
425 xmlXPathRegisterNs (xmlXPathContextPtr ctxt
,
426 const xmlChar
*prefix
,
427 const xmlChar
*ns_uri
);
428 XMLPUBFUN
const xmlChar
* XMLCALL
429 xmlXPathNsLookup (xmlXPathContextPtr ctxt
,
430 const xmlChar
*prefix
);
431 XMLPUBFUN
void XMLCALL
432 xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt
);
434 XMLPUBFUN
int XMLCALL
435 xmlXPathRegisterFunc (xmlXPathContextPtr ctxt
,
438 XMLPUBFUN
int XMLCALL
439 xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt
,
441 const xmlChar
*ns_uri
,
443 XMLPUBFUN
int XMLCALL
444 xmlXPathRegisterVariable (xmlXPathContextPtr ctxt
,
446 xmlXPathObjectPtr value
);
447 XMLPUBFUN
int XMLCALL
448 xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt
,
450 const xmlChar
*ns_uri
,
451 xmlXPathObjectPtr value
);
452 XMLPUBFUN xmlXPathFunction XMLCALL
453 xmlXPathFunctionLookup (xmlXPathContextPtr ctxt
,
454 const xmlChar
*name
);
455 XMLPUBFUN xmlXPathFunction XMLCALL
456 xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt
,
458 const xmlChar
*ns_uri
);
459 XMLPUBFUN
void XMLCALL
460 xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt
);
461 XMLPUBFUN xmlXPathObjectPtr XMLCALL
462 xmlXPathVariableLookup (xmlXPathContextPtr ctxt
,
463 const xmlChar
*name
);
464 XMLPUBFUN xmlXPathObjectPtr XMLCALL
465 xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt
,
467 const xmlChar
*ns_uri
);
468 XMLPUBFUN
void XMLCALL
469 xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt
);
472 * Utilities to extend XPath.
474 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
475 xmlXPathNewParserContext (const xmlChar
*str
,
476 xmlXPathContextPtr ctxt
);
477 XMLPUBFUN
void XMLCALL
478 xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt
);
480 /* TODO: remap to xmlXPathValuePop and Push. */
481 XMLPUBFUN xmlXPathObjectPtr XMLCALL
482 valuePop (xmlXPathParserContextPtr ctxt
);
483 XMLPUBFUN
int XMLCALL
484 valuePush (xmlXPathParserContextPtr ctxt
,
485 xmlXPathObjectPtr value
);
487 XMLPUBFUN xmlXPathObjectPtr XMLCALL
488 xmlXPathNewString (const xmlChar
*val
);
489 XMLPUBFUN xmlXPathObjectPtr XMLCALL
490 xmlXPathNewCString (const char *val
);
491 XMLPUBFUN xmlXPathObjectPtr XMLCALL
492 xmlXPathWrapString (xmlChar
*val
);
493 XMLPUBFUN xmlXPathObjectPtr XMLCALL
494 xmlXPathWrapCString (char * val
);
495 XMLPUBFUN xmlXPathObjectPtr XMLCALL
496 xmlXPathNewFloat (double val
);
497 XMLPUBFUN xmlXPathObjectPtr XMLCALL
498 xmlXPathNewBoolean (int val
);
499 XMLPUBFUN xmlXPathObjectPtr XMLCALL
500 xmlXPathNewNodeSet (xmlNodePtr val
);
501 XMLPUBFUN xmlXPathObjectPtr XMLCALL
502 xmlXPathNewValueTree (xmlNodePtr val
);
503 XMLPUBFUN
int XMLCALL
504 xmlXPathNodeSetAdd (xmlNodeSetPtr cur
,
506 XMLPUBFUN
int XMLCALL
507 xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur
,
509 XMLPUBFUN
int XMLCALL
510 xmlXPathNodeSetAddNs (xmlNodeSetPtr cur
,
513 XMLPUBFUN
void XMLCALL
514 xmlXPathNodeSetSort (xmlNodeSetPtr set
);
516 XMLPUBFUN
void XMLCALL
517 xmlXPathRoot (xmlXPathParserContextPtr ctxt
);
518 XMLPUBFUN
void XMLCALL
519 xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt
);
520 XMLPUBFUN xmlChar
* XMLCALL
521 xmlXPathParseName (xmlXPathParserContextPtr ctxt
);
522 XMLPUBFUN xmlChar
* XMLCALL
523 xmlXPathParseNCName (xmlXPathParserContextPtr ctxt
);
526 * Existing functions.
528 XMLPUBFUN
double XMLCALL
529 xmlXPathStringEvalNumber (const xmlChar
*str
);
530 XMLPUBFUN
int XMLCALL
531 xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt
,
532 xmlXPathObjectPtr res
);
533 XMLPUBFUN
void XMLCALL
534 xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt
);
535 XMLPUBFUN xmlNodeSetPtr XMLCALL
536 xmlXPathNodeSetMerge (xmlNodeSetPtr val1
,
538 XMLPUBFUN
void XMLCALL
539 xmlXPathNodeSetDel (xmlNodeSetPtr cur
,
541 XMLPUBFUN
void XMLCALL
542 xmlXPathNodeSetRemove (xmlNodeSetPtr cur
,
544 XMLPUBFUN xmlXPathObjectPtr XMLCALL
545 xmlXPathNewNodeSetList (xmlNodeSetPtr val
);
546 XMLPUBFUN xmlXPathObjectPtr XMLCALL
547 xmlXPathWrapNodeSet (xmlNodeSetPtr val
);
548 XMLPUBFUN xmlXPathObjectPtr XMLCALL
549 xmlXPathWrapExternal (void *val
);
551 XMLPUBFUN
int XMLCALL
xmlXPathEqualValues(xmlXPathParserContextPtr ctxt
);
552 XMLPUBFUN
int XMLCALL
xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt
);
553 XMLPUBFUN
int XMLCALL
xmlXPathCompareValues(xmlXPathParserContextPtr ctxt
, int inf
, int strict
);
554 XMLPUBFUN
void XMLCALL
xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt
);
555 XMLPUBFUN
void XMLCALL
xmlXPathAddValues(xmlXPathParserContextPtr ctxt
);
556 XMLPUBFUN
void XMLCALL
xmlXPathSubValues(xmlXPathParserContextPtr ctxt
);
557 XMLPUBFUN
void XMLCALL
xmlXPathMultValues(xmlXPathParserContextPtr ctxt
);
558 XMLPUBFUN
void XMLCALL
xmlXPathDivValues(xmlXPathParserContextPtr ctxt
);
559 XMLPUBFUN
void XMLCALL
xmlXPathModValues(xmlXPathParserContextPtr ctxt
);
561 XMLPUBFUN
int XMLCALL
xmlXPathIsNodeType(const xmlChar
*name
);
564 * Some of the axis navigation routines.
566 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextSelf(xmlXPathParserContextPtr ctxt
,
568 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextChild(xmlXPathParserContextPtr ctxt
,
570 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt
,
572 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt
,
574 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextParent(xmlXPathParserContextPtr ctxt
,
576 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt
,
578 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt
,
580 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt
,
582 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt
,
584 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt
,
586 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt
,
588 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt
,
590 XMLPUBFUN xmlNodePtr XMLCALL
xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt
,
593 * The official core of XPath functions.
595 XMLPUBFUN
void XMLCALL
xmlXPathLastFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
596 XMLPUBFUN
void XMLCALL
xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
597 XMLPUBFUN
void XMLCALL
xmlXPathCountFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
598 XMLPUBFUN
void XMLCALL
xmlXPathIdFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
599 XMLPUBFUN
void XMLCALL
xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
600 XMLPUBFUN
void XMLCALL
xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
601 XMLPUBFUN
void XMLCALL
xmlXPathStringFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
602 XMLPUBFUN
void XMLCALL
xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
603 XMLPUBFUN
void XMLCALL
xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
604 XMLPUBFUN
void XMLCALL
xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
605 XMLPUBFUN
void XMLCALL
xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
606 XMLPUBFUN
void XMLCALL
xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
607 XMLPUBFUN
void XMLCALL
xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
608 XMLPUBFUN
void XMLCALL
xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
609 XMLPUBFUN
void XMLCALL
xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
610 XMLPUBFUN
void XMLCALL
xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
611 XMLPUBFUN
void XMLCALL
xmlXPathNotFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
612 XMLPUBFUN
void XMLCALL
xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
613 XMLPUBFUN
void XMLCALL
xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
614 XMLPUBFUN
void XMLCALL
xmlXPathLangFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
615 XMLPUBFUN
void XMLCALL
xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
616 XMLPUBFUN
void XMLCALL
xmlXPathSumFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
617 XMLPUBFUN
void XMLCALL
xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
618 XMLPUBFUN
void XMLCALL
xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
619 XMLPUBFUN
void XMLCALL
xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
620 XMLPUBFUN
void XMLCALL
xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt
, int nargs
);
623 * Really internal functions
625 XMLPUBFUN
void XMLCALL
xmlXPathNodeSetFreeNs(xmlNsPtr ns
);
631 #endif /* LIBXML_XPATH_ENABLED */
632 #endif /* ! __XML_XPATH_INTERNALS_H__ */