source: NonGTP/FCollada/libxml/xpathInternals.h @ 964

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