comparison env/lib/python3.7/site-packages/lxml/includes/libxml/xpathInternals.h @ 2:6af9afd405e9 draft

"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author shellac
date Thu, 14 May 2020 14:56:58 -0400
parents 26e78fe6e8c4
children
comparison
equal deleted inserted replaced
1:75ca89e9b81c 2:6af9afd405e9
1 /*
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
5 * XSLT
6 *
7 * Copy: See Copyright for the status of this software.
8 *
9 * Author: Daniel Veillard
10 */
11
12 #ifndef __XML_XPATH_INTERNALS_H__
13 #define __XML_XPATH_INTERNALS_H__
14
15 #include <libxml/xmlversion.h>
16 #include <libxml/xpath.h>
17
18 #ifdef LIBXML_XPATH_ENABLED
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 /************************************************************************
25 * *
26 * Helpers *
27 * *
28 ************************************************************************/
29
30 /*
31 * Many of these macros may later turn into functions. They
32 * shouldn't be used in #ifdef's preprocessor instructions.
33 */
34 /**
35 * xmlXPathSetError:
36 * @ctxt: an XPath parser context
37 * @err: an xmlXPathError code
38 *
39 * Raises an error.
40 */
41 #define xmlXPathSetError(ctxt, err) \
42 { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
43 if ((ctxt) != NULL) (ctxt)->error = (err); }
44
45 /**
46 * xmlXPathSetArityError:
47 * @ctxt: an XPath parser context
48 *
49 * Raises an XPATH_INVALID_ARITY error.
50 */
51 #define xmlXPathSetArityError(ctxt) \
52 xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
53
54 /**
55 * xmlXPathSetTypeError:
56 * @ctxt: an XPath parser context
57 *
58 * Raises an XPATH_INVALID_TYPE error.
59 */
60 #define xmlXPathSetTypeError(ctxt) \
61 xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
62
63 /**
64 * xmlXPathGetError:
65 * @ctxt: an XPath parser context
66 *
67 * Get the error code of an XPath context.
68 *
69 * Returns the context error.
70 */
71 #define xmlXPathGetError(ctxt) ((ctxt)->error)
72
73 /**
74 * xmlXPathCheckError:
75 * @ctxt: an XPath parser context
76 *
77 * Check if an XPath error was raised.
78 *
79 * Returns true if an error has been raised, false otherwise.
80 */
81 #define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
82
83 /**
84 * xmlXPathGetDocument:
85 * @ctxt: an XPath parser context
86 *
87 * Get the document of an XPath context.
88 *
89 * Returns the context document.
90 */
91 #define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
92
93 /**
94 * xmlXPathGetContextNode:
95 * @ctxt: an XPath parser context
96 *
97 * Get the context node of an XPath context.
98 *
99 * Returns the context node.
100 */
101 #define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
102
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);
113
114 /**
115 * xmlXPathReturnBoolean:
116 * @ctxt: an XPath parser context
117 * @val: a boolean
118 *
119 * Pushes the boolean @val on the context stack.
120 */
121 #define xmlXPathReturnBoolean(ctxt, val) \
122 valuePush((ctxt), xmlXPathNewBoolean(val))
123
124 /**
125 * xmlXPathReturnTrue:
126 * @ctxt: an XPath parser context
127 *
128 * Pushes true on the context stack.
129 */
130 #define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
131
132 /**
133 * xmlXPathReturnFalse:
134 * @ctxt: an XPath parser context
135 *
136 * Pushes false on the context stack.
137 */
138 #define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
139
140 /**
141 * xmlXPathReturnNumber:
142 * @ctxt: an XPath parser context
143 * @val: a double
144 *
145 * Pushes the double @val on the context stack.
146 */
147 #define xmlXPathReturnNumber(ctxt, val) \
148 valuePush((ctxt), xmlXPathNewFloat(val))
149
150 /**
151 * xmlXPathReturnString:
152 * @ctxt: an XPath parser context
153 * @str: a string
154 *
155 * Pushes the string @str on the context stack.
156 */
157 #define xmlXPathReturnString(ctxt, str) \
158 valuePush((ctxt), xmlXPathWrapString(str))
159
160 /**
161 * xmlXPathReturnEmptyString:
162 * @ctxt: an XPath parser context
163 *
164 * Pushes an empty string on the stack.
165 */
166 #define xmlXPathReturnEmptyString(ctxt) \
167 valuePush((ctxt), xmlXPathNewCString(""))
168
169 /**
170 * xmlXPathReturnNodeSet:
171 * @ctxt: an XPath parser context
172 * @ns: a node-set
173 *
174 * Pushes the node-set @ns on the context stack.
175 */
176 #define xmlXPathReturnNodeSet(ctxt, ns) \
177 valuePush((ctxt), xmlXPathWrapNodeSet(ns))
178
179 /**
180 * xmlXPathReturnEmptyNodeSet:
181 * @ctxt: an XPath parser context
182 *
183 * Pushes an empty node-set on the context stack.
184 */
185 #define xmlXPathReturnEmptyNodeSet(ctxt) \
186 valuePush((ctxt), xmlXPathNewNodeSet(NULL))
187
188 /**
189 * xmlXPathReturnExternal:
190 * @ctxt: an XPath parser context
191 * @val: user data
192 *
193 * Pushes user data on the context stack.
194 */
195 #define xmlXPathReturnExternal(ctxt, val) \
196 valuePush((ctxt), xmlXPathWrapExternal(val))
197
198 /**
199 * xmlXPathStackIsNodeSet:
200 * @ctxt: an XPath parser context
201 *
202 * Check if the current value on the XPath stack is a node set or
203 * an XSLT value tree.
204 *
205 * Returns true if the current object on the stack is a node-set.
206 */
207 #define xmlXPathStackIsNodeSet(ctxt) \
208 (((ctxt)->value != NULL) \
209 && (((ctxt)->value->type == XPATH_NODESET) \
210 || ((ctxt)->value->type == XPATH_XSLT_TREE)))
211
212 /**
213 * xmlXPathStackIsExternal:
214 * @ctxt: an XPath parser context
215 *
216 * Checks if the current value on the XPath stack is an external
217 * object.
218 *
219 * Returns true if the current object on the stack is an external
220 * object.
221 */
222 #define xmlXPathStackIsExternal(ctxt) \
223 ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
224
225 /**
226 * xmlXPathEmptyNodeSet:
227 * @ns: a node-set
228 *
229 * Empties a node-set.
230 */
231 #define xmlXPathEmptyNodeSet(ns) \
232 { while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }
233
234 /**
235 * CHECK_ERROR:
236 *
237 * Macro to return from the function if an XPath error was detected.
238 */
239 #define CHECK_ERROR \
240 if (ctxt->error != XPATH_EXPRESSION_OK) return
241
242 /**
243 * CHECK_ERROR0:
244 *
245 * Macro to return 0 from the function if an XPath error was detected.
246 */
247 #define CHECK_ERROR0 \
248 if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
249
250 /**
251 * XP_ERROR:
252 * @X: the error code
253 *
254 * Macro to raise an XPath error and return.
255 */
256 #define XP_ERROR(X) \
257 { xmlXPathErr(ctxt, X); return; }
258
259 /**
260 * XP_ERROR0:
261 * @X: the error code
262 *
263 * Macro to raise an XPath error and return 0.
264 */
265 #define XP_ERROR0(X) \
266 { xmlXPathErr(ctxt, X); return(0); }
267
268 /**
269 * CHECK_TYPE:
270 * @typeval: the XPath type
271 *
272 * Macro to check that the value on top of the XPath stack is of a given
273 * type.
274 */
275 #define CHECK_TYPE(typeval) \
276 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
277 XP_ERROR(XPATH_INVALID_TYPE)
278
279 /**
280 * CHECK_TYPE0:
281 * @typeval: the XPath type
282 *
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
285 */
286 #define CHECK_TYPE0(typeval) \
287 if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
288 XP_ERROR0(XPATH_INVALID_TYPE)
289
290 /**
291 * CHECK_ARITY:
292 * @x: the number of expected args
293 *
294 * Macro to check that the number of args passed to an XPath function matches.
295 */
296 #define CHECK_ARITY(x) \
297 if (ctxt == NULL) return; \
298 if (nargs != (x)) \
299 XP_ERROR(XPATH_INVALID_ARITY); \
300 if (ctxt->valueNr < ctxt->valueFrame + (x)) \
301 XP_ERROR(XPATH_STACK_ERROR);
302
303 /**
304 * CAST_TO_STRING:
305 *
306 * Macro to try to cast the value on the top of the XPath stack to a string.
307 */
308 #define CAST_TO_STRING \
309 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
310 xmlXPathStringFunction(ctxt, 1);
311
312 /**
313 * CAST_TO_NUMBER:
314 *
315 * Macro to try to cast the value on the top of the XPath stack to a number.
316 */
317 #define CAST_TO_NUMBER \
318 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
319 xmlXPathNumberFunction(ctxt, 1);
320
321 /**
322 * CAST_TO_BOOLEAN:
323 *
324 * Macro to try to cast the value on the top of the XPath stack to a boolean.
325 */
326 #define CAST_TO_BOOLEAN \
327 if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
328 xmlXPathBooleanFunction(ctxt, 1);
329
330 /*
331 * Variable Lookup forwarding.
332 */
333
334 XMLPUBFUN void XMLCALL
335 xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
336 xmlXPathVariableLookupFunc f,
337 void *data);
338
339 /*
340 * Function Lookup forwarding.
341 */
342
343 XMLPUBFUN void XMLCALL
344 xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
345 xmlXPathFuncLookupFunc f,
346 void *funcCtxt);
347
348 /*
349 * Error reporting.
350 */
351 XMLPUBFUN void XMLCALL
352 xmlXPatherror (xmlXPathParserContextPtr ctxt,
353 const char *file,
354 int line,
355 int no);
356
357 XMLPUBFUN void XMLCALL
358 xmlXPathErr (xmlXPathParserContextPtr ctxt,
359 int error);
360
361 #ifdef LIBXML_DEBUG_ENABLED
362 XMLPUBFUN void XMLCALL
363 xmlXPathDebugDumpObject (FILE *output,
364 xmlXPathObjectPtr cur,
365 int depth);
366 XMLPUBFUN void XMLCALL
367 xmlXPathDebugDumpCompExpr(FILE *output,
368 xmlXPathCompExprPtr comp,
369 int depth);
370 #endif
371 /**
372 * NodeSet handling.
373 */
374 XMLPUBFUN int XMLCALL
375 xmlXPathNodeSetContains (xmlNodeSetPtr cur,
376 xmlNodePtr val);
377 XMLPUBFUN xmlNodeSetPtr XMLCALL
378 xmlXPathDifference (xmlNodeSetPtr nodes1,
379 xmlNodeSetPtr nodes2);
380 XMLPUBFUN xmlNodeSetPtr XMLCALL
381 xmlXPathIntersection (xmlNodeSetPtr nodes1,
382 xmlNodeSetPtr nodes2);
383
384 XMLPUBFUN xmlNodeSetPtr XMLCALL
385 xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
386 XMLPUBFUN xmlNodeSetPtr XMLCALL
387 xmlXPathDistinct (xmlNodeSetPtr nodes);
388
389 XMLPUBFUN int XMLCALL
390 xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
391 xmlNodeSetPtr nodes2);
392
393 XMLPUBFUN xmlNodeSetPtr XMLCALL
394 xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
395 xmlNodePtr node);
396 XMLPUBFUN xmlNodeSetPtr XMLCALL
397 xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
398 xmlNodeSetPtr nodes2);
399 XMLPUBFUN xmlNodeSetPtr XMLCALL
400 xmlXPathNodeLeading (xmlNodeSetPtr nodes,
401 xmlNodePtr node);
402 XMLPUBFUN xmlNodeSetPtr XMLCALL
403 xmlXPathLeading (xmlNodeSetPtr nodes1,
404 xmlNodeSetPtr nodes2);
405
406 XMLPUBFUN xmlNodeSetPtr XMLCALL
407 xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
408 xmlNodePtr node);
409 XMLPUBFUN xmlNodeSetPtr XMLCALL
410 xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
411 xmlNodeSetPtr nodes2);
412 XMLPUBFUN xmlNodeSetPtr XMLCALL
413 xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
414 xmlNodePtr node);
415 XMLPUBFUN xmlNodeSetPtr XMLCALL
416 xmlXPathTrailing (xmlNodeSetPtr nodes1,
417 xmlNodeSetPtr nodes2);
418
419
420 /**
421 * Extending a context.
422 */
423
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);
433
434 XMLPUBFUN int XMLCALL
435 xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
436 const xmlChar *name,
437 xmlXPathFunction f);
438 XMLPUBFUN int XMLCALL
439 xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
440 const xmlChar *name,
441 const xmlChar *ns_uri,
442 xmlXPathFunction f);
443 XMLPUBFUN int XMLCALL
444 xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
445 const xmlChar *name,
446 xmlXPathObjectPtr value);
447 XMLPUBFUN int XMLCALL
448 xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
449 const xmlChar *name,
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,
457 const xmlChar *name,
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,
466 const xmlChar *name,
467 const xmlChar *ns_uri);
468 XMLPUBFUN void XMLCALL
469 xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
470
471 /**
472 * Utilities to extend XPath.
473 */
474 XMLPUBFUN xmlXPathParserContextPtr XMLCALL
475 xmlXPathNewParserContext (const xmlChar *str,
476 xmlXPathContextPtr ctxt);
477 XMLPUBFUN void XMLCALL
478 xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
479
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);
486
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,
505 xmlNodePtr val);
506 XMLPUBFUN int XMLCALL
507 xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
508 xmlNodePtr val);
509 XMLPUBFUN int XMLCALL
510 xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
511 xmlNodePtr node,
512 xmlNsPtr ns);
513 XMLPUBFUN void XMLCALL
514 xmlXPathNodeSetSort (xmlNodeSetPtr set);
515
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);
524
525 /*
526 * Existing functions.
527 */
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,
537 xmlNodeSetPtr val2);
538 XMLPUBFUN void XMLCALL
539 xmlXPathNodeSetDel (xmlNodeSetPtr cur,
540 xmlNodePtr val);
541 XMLPUBFUN void XMLCALL
542 xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
543 int val);
544 XMLPUBFUN xmlXPathObjectPtr XMLCALL
545 xmlXPathNewNodeSetList (xmlNodeSetPtr val);
546 XMLPUBFUN xmlXPathObjectPtr XMLCALL
547 xmlXPathWrapNodeSet (xmlNodeSetPtr val);
548 XMLPUBFUN xmlXPathObjectPtr XMLCALL
549 xmlXPathWrapExternal (void *val);
550
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);
560
561 XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
562
563 /*
564 * Some of the axis navigation routines.
565 */
566 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
567 xmlNodePtr cur);
568 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
569 xmlNodePtr cur);
570 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
571 xmlNodePtr cur);
572 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
573 xmlNodePtr cur);
574 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
575 xmlNodePtr cur);
576 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
577 xmlNodePtr cur);
578 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
579 xmlNodePtr cur);
580 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
581 xmlNodePtr cur);
582 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
583 xmlNodePtr cur);
584 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
585 xmlNodePtr cur);
586 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
587 xmlNodePtr cur);
588 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
589 xmlNodePtr cur);
590 XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
591 xmlNodePtr cur);
592 /*
593 * The official core of XPath functions.
594 */
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);
621
622 /**
623 * Really internal functions
624 */
625 XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
626
627 #ifdef __cplusplus
628 }
629 #endif
630
631 #endif /* LIBXML_XPATH_ENABLED */
632 #endif /* ! __XML_XPATH_INTERNALS_H__ */