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
10 * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
18 #ifndef XML_XPATH_INTERNALS_H
19 #define XML_XPATH_INTERNALS_H
21 #include <stdapis/libxml2/libxml2_xpath.h>
28 /************************************************************************
32 ************************************************************************/
35 * Many of these macros may later turn into functions. They
36 * shouldn't be used in #ifdef's preprocessor instructions.
40 * @param ctxt an XPath parser context
41 * @param err an xmlXPathError code
45 #define xmlXPathSetError(ctxt, err) \
46 { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
47 (ctxt)->error = (err); }
50 * xmlXPathSetArityError:
51 * @param ctxt an XPath parser context
53 * Raises an XPATH_INVALID_ARITY error.
55 #define xmlXPathSetArityError(ctxt) \
56 xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
59 * xmlXPathSetTypeError:
60 * @param ctxt an XPath parser context
62 * Raises an XPATH_INVALID_TYPE error.
64 #define xmlXPathSetTypeError(ctxt) \
65 xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
69 * @param ctxt an XPath parser context
71 * Get the error code of an XPath context.
73 * Returns the context error.
75 #define xmlXPathGetError(ctxt) ((ctxt)->error)
79 * @param ctxt an XPath parser context
81 * Check if an XPath error was raised.
83 * Returns true if an error has been raised, false otherwise.
85 #define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
88 * xmlXPathGetDocument:
89 * @param ctxt an XPath parser context
91 * Get the document of an XPath context.
93 * Returns the context document.
95 #define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
98 * xmlXPathGetContextNode:
99 * @param ctxt an XPath parser context
101 * Get the context node of an XPath context.
103 * Returns the context node.
105 #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
107 XMLPUBFUN int XMLCALL
108 xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
109 XMLPUBFUN double XMLCALL
110 xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
111 XMLPUBFUN xmlChar * XMLCALL
112 xmlXPathPopString (xmlXPathParserContextPtr ctxt);
113 XMLPUBFUN xmlNodeSetPtr XMLCALL
114 xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
115 XMLPUBFUN void * XMLCALL
116 xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
119 * xmlXPathReturnBoolean:
120 * @param ctxt an XPath parser context
121 * @param val a boolean
123 * Pushes the boolean val on the context stack.
125 #define xmlXPathReturnBoolean(ctxt, val) \
126 valuePush((ctxt), xmlXPathNewBoolean(val))
129 * xmlXPathReturnTrue:
130 * @param ctxt an XPath parser context
132 * Pushes true on the context stack.
134 #define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
137 * xmlXPathReturnFalse:
138 * @param ctxt an XPath parser context
140 * Pushes false on the context stack.
142 #define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
145 * xmlXPathReturnNumber:
146 * @param ctxt an XPath parser context
147 * @param val a double
149 * Pushes the double val on the context stack.
151 #define xmlXPathReturnNumber(ctxt, val) \
152 valuePush((ctxt), xmlXPathNewFloat(val))
155 * xmlXPathReturnString:
156 * @param ctxt an XPath parser context
157 * @param str a string
159 * Pushes the string str on the context stack.
161 #define xmlXPathReturnString(ctxt, str) \
162 valuePush((ctxt), xmlXPathWrapString(str))
165 * xmlXPathReturnEmptyString:
166 * @param ctxt an XPath parser context
168 * Pushes an empty string on the stack.
170 #define xmlXPathReturnEmptyString(ctxt) \
171 valuePush((ctxt), xmlXPathNewCString(""))
174 * xmlXPathReturnNodeSet:
175 * @param ctxt an XPath parser context
176 * @param ns a node-set
178 * Pushes the node-set ns on the context stack.
180 #define xmlXPathReturnNodeSet(ctxt, ns) \
181 valuePush((ctxt), xmlXPathWrapNodeSet(ns))
184 * xmlXPathReturnEmptyNodeSet:
185 * @param ctxt an XPath parser context
187 * Pushes an empty node-set on the context stack.
189 #define xmlXPathReturnEmptyNodeSet(ctxt) \
190 valuePush((ctxt), xmlXPathNewNodeSet(NULL))
193 * xmlXPathReturnExternal:
194 * @param ctxt an XPath parser context
195 * @param val user data
197 * Pushes user data on the context stack.
199 #define xmlXPathReturnExternal(ctxt, val) \
200 valuePush((ctxt), xmlXPathWrapExternal(val))
203 * xmlXPathStackIsNodeSet:
204 * @param ctxt an XPath parser context
206 * Check if the current value on the XPath stack is a node set or
207 * an XSLT value tree.
209 * Returns true if the current object on the stack is a node-set.
211 #define xmlXPathStackIsNodeSet(ctxt) \
212 (((ctxt)->value != NULL) \
213 && (((ctxt)->value->type == XPATH_NODESET) \
214 || ((ctxt)->value->type == XPATH_XSLT_TREE)))
217 * xmlXPathStackIsExternal:
218 * @param ctxt an XPath parser context
220 * Checks if the current value on the XPath stack is an external
223 * Returns true if the current object on the stack is an external
226 #define xmlXPathStackIsExternal(ctxt) \
227 ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
230 * xmlXPathEmptyNodeSet:
231 * @param ns a node-set
233 * Empties a node-set.
235 #define xmlXPathEmptyNodeSet(ns) \
236 { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
241 * Macro to return from the function if an XPath error was detected.
243 #define CHECK_ERROR \
244 if (ctxt->error != XPATH_EXPRESSION_OK) return
249 * Macro to return 0 from the function if an XPath error was detected.
251 #define CHECK_ERROR0 \
252 if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
256 * @param X the error code
258 * Macro to raise an XPath error and return.
260 #define XP_ERROR(X) \
261 { xmlXPathErr(ctxt, X); return; }
265 * @param X the error code
267 * Macro to raise an XPath error and return 0.
269 #define XP_ERROR0(X) \
270 { xmlXPathErr(ctxt, X); return(0); }
274 * @param typeval the XPath type
276 * Macro to check that the value on top of the XPath stack is of a given
279 #define CHECK_TYPE(typeval) \
280 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
281 XP_ERROR(XPATH_INVALID_TYPE)
285 * @param typeval the XPath type
287 * Macro to check that the value on top of the XPath stack is of a given
288 * type. Return(0) in case of failure
290 #define CHECK_TYPE0(typeval) \
291 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
292 XP_ERROR0(XPATH_INVALID_TYPE)
296 * @param x the number of expected args
298 * Macro to check that the number of args passed to an XPath function matches.
300 #define CHECK_ARITY(x) \
302 XP_ERROR(XPATH_INVALID_ARITY);
307 * Macro to try to cast the value on the top of the XPath stack to a string.
309 #define CAST_TO_STRING \
310 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
311 xmlXPathStringFunction(ctxt, 1);
316 * Macro to try to cast the value on the top of the XPath stack to a number.
318 #define CAST_TO_NUMBER \
319 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
320 xmlXPathNumberFunction(ctxt, 1);
325 * Macro to try to cast the value on the top of the XPath stack to a boolean.
327 #define CAST_TO_BOOLEAN \
328 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
329 xmlXPathBooleanFunction(ctxt, 1);
332 * Variable Lookup forwarding.
335 * xmlXPathVariableLookupFunc:
336 * @param ctxt an XPath context
337 * @param name name of the variable
338 * @param ns_uri the namespace name hosting this variable
340 * Prototype for callbacks used to plug variable lookup in the XPath
343 * Returns the XPath object value or NULL if not found.
345 typedef xmlXPathObjectPtr (*xmlXPathVariableLookupFunc) (void *ctxt,
347 const xmlChar *ns_uri);
349 XMLPUBFUN void XMLCALL
350 xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
351 xmlXPathVariableLookupFunc f,
355 * Function Lookup forwarding.
358 * xmlXPathFuncLookupFunc:
359 * @param ctxt an XPath context
360 * @param name name of the function
361 * @param ns_uri the namespace name hosting this function
363 * Prototype for callbacks used to plug function lookup in the XPath
366 * Returns the XPath function or NULL if not found.
368 typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt,
370 const xmlChar *ns_uri);
372 XMLPUBFUN void XMLCALL
373 xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
374 xmlXPathFuncLookupFunc f,
382 // DONE: Replaced with macro
383 #define xmlXPatherror(ctxt,file,line,no) xmlXPathErr(ctxt, no)
384 //XMLPUBFUN void XMLCALL
385 // xmlXPatherror (xmlXPathParserContextPtr ctxt,
390 XMLPUBFUN void XMLCALL
391 xmlXPathErr (xmlXPathParserContextPtr ctxt, int error);
393 #ifdef LIBXML_DEBUG_ENABLED
394 XMLPUBFUN void XMLCALL
395 xmlXPathDebugDumpObject (FILE *output,
396 xmlXPathObjectPtr cur,
398 XMLPUBFUN void XMLCALL
399 xmlXPathDebugDumpCompExpr(FILE *output,
400 xmlXPathCompExprPtr comp,
406 XMLPUBFUN int XMLCALL
407 xmlXPathNodeSetContains (xmlNodeSetPtr cur,
409 XMLPUBFUN xmlNodeSetPtr XMLCALL
410 xmlXPathDifference (xmlNodeSetPtr nodes1,
411 xmlNodeSetPtr nodes2);
412 XMLPUBFUN xmlNodeSetPtr XMLCALL
413 xmlXPathIntersection (xmlNodeSetPtr nodes1,
414 xmlNodeSetPtr nodes2);
416 XMLPUBFUN xmlNodeSetPtr XMLCALL
417 xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
418 XMLPUBFUN xmlNodeSetPtr XMLCALL
419 xmlXPathDistinct (xmlNodeSetPtr nodes);
421 XMLPUBFUN int XMLCALL
422 xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
423 xmlNodeSetPtr nodes2);
425 XMLPUBFUN xmlNodeSetPtr XMLCALL
426 xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
428 XMLPUBFUN xmlNodeSetPtr XMLCALL
429 xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
430 xmlNodeSetPtr nodes2);
431 XMLPUBFUN xmlNodeSetPtr XMLCALL
432 xmlXPathNodeLeading (xmlNodeSetPtr nodes,
434 XMLPUBFUN xmlNodeSetPtr XMLCALL
435 xmlXPathLeading (xmlNodeSetPtr nodes1,
436 xmlNodeSetPtr nodes2);
438 XMLPUBFUN xmlNodeSetPtr XMLCALL
439 xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
441 XMLPUBFUN xmlNodeSetPtr XMLCALL
442 xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
443 xmlNodeSetPtr nodes2);
444 XMLPUBFUN xmlNodeSetPtr XMLCALL
445 xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
447 XMLPUBFUN xmlNodeSetPtr XMLCALL
448 xmlXPathTrailing (xmlNodeSetPtr nodes1,
449 xmlNodeSetPtr nodes2);
453 * Extending a context.
456 XMLPUBFUN int XMLCALL
457 xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
458 const xmlChar *prefix,
459 const xmlChar *ns_uri);
460 XMLPUBFUN const xmlChar * XMLCALL
461 xmlXPathNsLookup (xmlXPathContextPtr ctxt,
462 const xmlChar *prefix);
463 XMLPUBFUN void XMLCALL
464 xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
466 XMLPUBFUN int XMLCALL
467 xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
470 XMLPUBFUN int XMLCALL
471 xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
473 const xmlChar *ns_uri,
475 XMLPUBFUN int XMLCALL
476 xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
478 xmlXPathObjectPtr value);
479 XMLPUBFUN int XMLCALL
480 xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
482 const xmlChar *ns_uri,
483 xmlXPathObjectPtr value);
484 XMLPUBFUN xmlXPathFunction XMLCALL
485 xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
486 const xmlChar *name);
487 XMLPUBFUN xmlXPathFunction XMLCALL
488 xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
490 const xmlChar *ns_uri);
491 XMLPUBFUN void XMLCALL
492 xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
493 XMLPUBFUN xmlXPathObjectPtr XMLCALL
494 xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
495 const xmlChar *name);
496 XMLPUBFUN xmlXPathObjectPtr XMLCALL
497 xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
499 const xmlChar *ns_uri);
500 XMLPUBFUN void XMLCALL
501 xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
504 * Utilities to extend XPath.
506 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
507 xmlXPathNewParserContext (const xmlChar *str, xmlXPathContextPtr ctxt);
508 XMLPUBFUN void XMLCALL
509 xmlXPathFreeParserContext(xmlXPathParserContextPtr ctxt);
512 XMLPUBFUN xmlXPathObjectPtr XMLCALL
513 valuePop (xmlXPathParserContextPtr ctxt);
514 XMLPUBFUN int XMLCALL
515 valuePush (xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr value);
516 XMLPUBFUN xmlXPathObjectPtr XMLCALL
517 xmlXPathNewString (const xmlChar *val);
518 XMLPUBFUN xmlXPathObjectPtr XMLCALL
519 xmlXPathNewCString (const char *val);
520 XMLPUBFUN xmlXPathObjectPtr XMLCALL
521 xmlXPathWrapString (xmlChar *val);
522 XMLPUBFUN xmlXPathObjectPtr XMLCALL
523 xmlXPathWrapCString (char * val);
524 XMLPUBFUN xmlXPathObjectPtr XMLCALL
525 xmlXPathNewFloat (double val);
526 XMLPUBFUN xmlXPathObjectPtr XMLCALL
527 xmlXPathNewBoolean (int val);
528 XMLPUBFUN xmlXPathObjectPtr XMLCALL
529 xmlXPathNewNodeSet (xmlNodePtr val);
530 XMLPUBFUN xmlXPathObjectPtr XMLCALL
531 xmlXPathNewValueTree(xmlNodePtr val);
532 XMLPUBFUN void XMLCALL
533 xmlXPathNodeSetAdd (xmlNodeSetPtr cur, xmlNodePtr val);
534 XMLPUBFUN void XMLCALL
535 xmlXPathNodeSetAddUnique(xmlNodeSetPtr cur, xmlNodePtr val);
536 XMLPUBFUN void XMLCALL
537 xmlXPathNodeSetAddNs(xmlNodeSetPtr cur, xmlNodePtr node, xmlNsPtr ns);
538 XMLPUBFUN void XMLCALL
539 xmlXPathNodeSetSort (xmlNodeSetPtr set);
540 XMLPUBFUN void XMLCALL
541 xmlXPathRoot (xmlXPathParserContextPtr ctxt);
542 XMLPUBFUN void XMLCALL
543 xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
544 XMLPUBFUN xmlChar * XMLCALL
545 xmlXPathParseName (xmlXPathParserContextPtr ctxt);
546 XMLPUBFUN xmlChar * XMLCALL
547 xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
550 * Existing functions.
552 XMLPUBFUN double XMLCALL
553 xmlXPathStringEvalNumber (const xmlChar *str);
554 XMLPUBFUN int XMLCALL
555 xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr res);
556 XMLPUBFUN void XMLCALL
557 xmlXPathRegisterAllFunctions(xmlXPathContextPtr ctxt);
558 XMLPUBFUN xmlNodeSetPtr XMLCALL
559 xmlXPathNodeSetMerge (xmlNodeSetPtr val1, xmlNodeSetPtr val2);
560 XMLPUBFUN void XMLCALL
561 xmlXPathNodeSetDel (xmlNodeSetPtr cur, xmlNodePtr val);
562 XMLPUBFUN void XMLCALL
563 xmlXPathNodeSetRemove (xmlNodeSetPtr cur, int val);
564 XMLPUBFUN xmlXPathObjectPtr XMLCALL
565 xmlXPathNewNodeSetList (xmlNodeSetPtr val);
566 XMLPUBFUN xmlXPathObjectPtr XMLCALL
567 xmlXPathWrapNodeSet (xmlNodeSetPtr val);
568 XMLPUBFUN xmlXPathObjectPtr XMLCALL
569 xmlXPathWrapExternal (void *val);
571 XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
572 XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
573 XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
574 XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
575 XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
576 XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
577 XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
578 XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
579 XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
581 XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
584 * Some of the axis navigation routines.
586 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
587 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
588 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
589 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
590 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
591 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
592 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
593 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
594 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
595 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
596 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
597 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
598 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt, xmlNodePtr cur);
600 * The official core of XPath functions.
602 XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
603 XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
604 XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
605 XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
606 XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
607 XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
608 XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
609 XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
610 XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
611 XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
612 XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
613 XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
614 XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
615 XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
616 XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
617 XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
618 XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
619 XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
620 XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
621 XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
622 XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
623 XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
624 XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
625 XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
626 XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
627 XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
630 * Really internal functions
632 XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
634 // XMLENGINE: NEW CODE -- XForms extensions support
635 void addNodeSetsFromStackToDependencyList(xmlXPathParserContextPtr ctxt, int nargs);
641 #endif /* XML_XPATH_INTERNALS_H */