Annotation of embedaddon/libxml2/include/libxml/xpathInternals.h, revision 1.1.1.1
1.1 misho 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:
301: /**
302: * CAST_TO_STRING:
303: *
304: * Macro to try to cast the value on the top of the XPath stack to a string.
305: */
306: #define CAST_TO_STRING \
307: if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
308: xmlXPathStringFunction(ctxt, 1);
309:
310: /**
311: * CAST_TO_NUMBER:
312: *
313: * Macro to try to cast the value on the top of the XPath stack to a number.
314: */
315: #define CAST_TO_NUMBER \
316: if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
317: xmlXPathNumberFunction(ctxt, 1);
318:
319: /**
320: * CAST_TO_BOOLEAN:
321: *
322: * Macro to try to cast the value on the top of the XPath stack to a boolean.
323: */
324: #define CAST_TO_BOOLEAN \
325: if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
326: xmlXPathBooleanFunction(ctxt, 1);
327:
328: /*
329: * Variable Lookup forwarding.
330: */
331:
332: XMLPUBFUN void XMLCALL
333: xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
334: xmlXPathVariableLookupFunc f,
335: void *data);
336:
337: /*
338: * Function Lookup forwarding.
339: */
340:
341: XMLPUBFUN void XMLCALL
342: xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
343: xmlXPathFuncLookupFunc f,
344: void *funcCtxt);
345:
346: /*
347: * Error reporting.
348: */
349: XMLPUBFUN void XMLCALL
350: xmlXPatherror (xmlXPathParserContextPtr ctxt,
351: const char *file,
352: int line,
353: int no);
354:
355: XMLPUBFUN void XMLCALL
356: xmlXPathErr (xmlXPathParserContextPtr ctxt,
357: int error);
358:
359: #ifdef LIBXML_DEBUG_ENABLED
360: XMLPUBFUN void XMLCALL
361: xmlXPathDebugDumpObject (FILE *output,
362: xmlXPathObjectPtr cur,
363: int depth);
364: XMLPUBFUN void XMLCALL
365: xmlXPathDebugDumpCompExpr(FILE *output,
366: xmlXPathCompExprPtr comp,
367: int depth);
368: #endif
369: /**
370: * NodeSet handling.
371: */
372: XMLPUBFUN int XMLCALL
373: xmlXPathNodeSetContains (xmlNodeSetPtr cur,
374: xmlNodePtr val);
375: XMLPUBFUN xmlNodeSetPtr XMLCALL
376: xmlXPathDifference (xmlNodeSetPtr nodes1,
377: xmlNodeSetPtr nodes2);
378: XMLPUBFUN xmlNodeSetPtr XMLCALL
379: xmlXPathIntersection (xmlNodeSetPtr nodes1,
380: xmlNodeSetPtr nodes2);
381:
382: XMLPUBFUN xmlNodeSetPtr XMLCALL
383: xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
384: XMLPUBFUN xmlNodeSetPtr XMLCALL
385: xmlXPathDistinct (xmlNodeSetPtr nodes);
386:
387: XMLPUBFUN int XMLCALL
388: xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
389: xmlNodeSetPtr nodes2);
390:
391: XMLPUBFUN xmlNodeSetPtr XMLCALL
392: xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
393: xmlNodePtr node);
394: XMLPUBFUN xmlNodeSetPtr XMLCALL
395: xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
396: xmlNodeSetPtr nodes2);
397: XMLPUBFUN xmlNodeSetPtr XMLCALL
398: xmlXPathNodeLeading (xmlNodeSetPtr nodes,
399: xmlNodePtr node);
400: XMLPUBFUN xmlNodeSetPtr XMLCALL
401: xmlXPathLeading (xmlNodeSetPtr nodes1,
402: xmlNodeSetPtr nodes2);
403:
404: XMLPUBFUN xmlNodeSetPtr XMLCALL
405: xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
406: xmlNodePtr node);
407: XMLPUBFUN xmlNodeSetPtr XMLCALL
408: xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
409: xmlNodeSetPtr nodes2);
410: XMLPUBFUN xmlNodeSetPtr XMLCALL
411: xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
412: xmlNodePtr node);
413: XMLPUBFUN xmlNodeSetPtr XMLCALL
414: xmlXPathTrailing (xmlNodeSetPtr nodes1,
415: xmlNodeSetPtr nodes2);
416:
417:
418: /**
419: * Extending a context.
420: */
421:
422: XMLPUBFUN int XMLCALL
423: xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
424: const xmlChar *prefix,
425: const xmlChar *ns_uri);
426: XMLPUBFUN const xmlChar * XMLCALL
427: xmlXPathNsLookup (xmlXPathContextPtr ctxt,
428: const xmlChar *prefix);
429: XMLPUBFUN void XMLCALL
430: xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
431:
432: XMLPUBFUN int XMLCALL
433: xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
434: const xmlChar *name,
435: xmlXPathFunction f);
436: XMLPUBFUN int XMLCALL
437: xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
438: const xmlChar *name,
439: const xmlChar *ns_uri,
440: xmlXPathFunction f);
441: XMLPUBFUN int XMLCALL
442: xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
443: const xmlChar *name,
444: xmlXPathObjectPtr value);
445: XMLPUBFUN int XMLCALL
446: xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
447: const xmlChar *name,
448: const xmlChar *ns_uri,
449: xmlXPathObjectPtr value);
450: XMLPUBFUN xmlXPathFunction XMLCALL
451: xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
452: const xmlChar *name);
453: XMLPUBFUN xmlXPathFunction XMLCALL
454: xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
455: const xmlChar *name,
456: const xmlChar *ns_uri);
457: XMLPUBFUN void XMLCALL
458: xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
459: XMLPUBFUN xmlXPathObjectPtr XMLCALL
460: xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
461: const xmlChar *name);
462: XMLPUBFUN xmlXPathObjectPtr XMLCALL
463: xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
464: const xmlChar *name,
465: const xmlChar *ns_uri);
466: XMLPUBFUN void XMLCALL
467: xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
468:
469: /**
470: * Utilities to extend XPath.
471: */
472: XMLPUBFUN xmlXPathParserContextPtr XMLCALL
473: xmlXPathNewParserContext (const xmlChar *str,
474: xmlXPathContextPtr ctxt);
475: XMLPUBFUN void XMLCALL
476: xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
477:
478: /* TODO: remap to xmlXPathValuePop and Push. */
479: XMLPUBFUN xmlXPathObjectPtr XMLCALL
480: valuePop (xmlXPathParserContextPtr ctxt);
481: XMLPUBFUN int XMLCALL
482: valuePush (xmlXPathParserContextPtr ctxt,
483: xmlXPathObjectPtr value);
484:
485: XMLPUBFUN xmlXPathObjectPtr XMLCALL
486: xmlXPathNewString (const xmlChar *val);
487: XMLPUBFUN xmlXPathObjectPtr XMLCALL
488: xmlXPathNewCString (const char *val);
489: XMLPUBFUN xmlXPathObjectPtr XMLCALL
490: xmlXPathWrapString (xmlChar *val);
491: XMLPUBFUN xmlXPathObjectPtr XMLCALL
492: xmlXPathWrapCString (char * val);
493: XMLPUBFUN xmlXPathObjectPtr XMLCALL
494: xmlXPathNewFloat (double val);
495: XMLPUBFUN xmlXPathObjectPtr XMLCALL
496: xmlXPathNewBoolean (int val);
497: XMLPUBFUN xmlXPathObjectPtr XMLCALL
498: xmlXPathNewNodeSet (xmlNodePtr val);
499: XMLPUBFUN xmlXPathObjectPtr XMLCALL
500: xmlXPathNewValueTree (xmlNodePtr val);
501: XMLPUBFUN void XMLCALL
502: xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
503: xmlNodePtr val);
504: XMLPUBFUN void XMLCALL
505: xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
506: xmlNodePtr val);
507: XMLPUBFUN void XMLCALL
508: xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
509: xmlNodePtr node,
510: xmlNsPtr ns);
511: XMLPUBFUN void XMLCALL
512: xmlXPathNodeSetSort (xmlNodeSetPtr set);
513:
514: XMLPUBFUN void XMLCALL
515: xmlXPathRoot (xmlXPathParserContextPtr ctxt);
516: XMLPUBFUN void XMLCALL
517: xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
518: XMLPUBFUN xmlChar * XMLCALL
519: xmlXPathParseName (xmlXPathParserContextPtr ctxt);
520: XMLPUBFUN xmlChar * XMLCALL
521: xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
522:
523: /*
524: * Existing functions.
525: */
526: XMLPUBFUN double XMLCALL
527: xmlXPathStringEvalNumber (const xmlChar *str);
528: XMLPUBFUN int XMLCALL
529: xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
530: xmlXPathObjectPtr res);
531: XMLPUBFUN void XMLCALL
532: xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
533: XMLPUBFUN xmlNodeSetPtr XMLCALL
534: xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
535: xmlNodeSetPtr val2);
536: XMLPUBFUN void XMLCALL
537: xmlXPathNodeSetDel (xmlNodeSetPtr cur,
538: xmlNodePtr val);
539: XMLPUBFUN void XMLCALL
540: xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
541: int val);
542: XMLPUBFUN xmlXPathObjectPtr XMLCALL
543: xmlXPathNewNodeSetList (xmlNodeSetPtr val);
544: XMLPUBFUN xmlXPathObjectPtr XMLCALL
545: xmlXPathWrapNodeSet (xmlNodeSetPtr val);
546: XMLPUBFUN xmlXPathObjectPtr XMLCALL
547: xmlXPathWrapExternal (void *val);
548:
549: XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
550: XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
551: XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
552: XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
553: XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
554: XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
555: XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
556: XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
557: XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
558:
559: XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
560:
561: /*
562: * Some of the axis navigation routines.
563: */
564: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
565: xmlNodePtr cur);
566: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
567: xmlNodePtr cur);
568: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
569: xmlNodePtr cur);
570: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
571: xmlNodePtr cur);
572: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
573: xmlNodePtr cur);
574: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
575: xmlNodePtr cur);
576: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
577: xmlNodePtr cur);
578: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
579: xmlNodePtr cur);
580: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
581: xmlNodePtr cur);
582: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
583: xmlNodePtr cur);
584: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
585: xmlNodePtr cur);
586: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
587: xmlNodePtr cur);
588: XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
589: xmlNodePtr cur);
590: /*
591: * The official core of XPath functions.
592: */
593: XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
594: XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
595: XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
596: XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
597: XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
598: XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
599: XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
600: XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
601: XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
602: XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
603: XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
604: XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
605: XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
606: XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
607: XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
608: XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
609: XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
610: XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
611: XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
612: XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
613: XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
614: XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
615: XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
616: XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
617: XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
618: XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
619:
620: /**
621: * Really internal functions
622: */
623: XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
624:
625: #ifdef __cplusplus
626: }
627: #endif
628:
629: #endif /* LIBXML_XPATH_ENABLED */
630: #endif /* ! __XML_XPATH_INTERNALS_H__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>