Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/xpathInternals.h
4394 views
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 <stdio.h>
16
#include <libxml/xmlversion.h>
17
#include <libxml/xpath.h>
18
19
#ifdef LIBXML_XPATH_ENABLED
20
21
#ifdef __cplusplus
22
extern "C" {
23
#endif
24
25
/************************************************************************
26
* *
27
* Helpers *
28
* *
29
************************************************************************/
30
31
/*
32
* Many of these macros may later turn into functions. They
33
* shouldn't be used in #ifdef's preprocessor instructions.
34
*/
35
/**
36
* xmlXPathSetError:
37
* @ctxt: an XPath parser context
38
* @err: an xmlXPathError code
39
*
40
* Raises an error.
41
*/
42
#define xmlXPathSetError(ctxt, err) \
43
{ xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
44
if ((ctxt) != NULL) (ctxt)->error = (err); }
45
46
/**
47
* xmlXPathSetArityError:
48
* @ctxt: an XPath parser context
49
*
50
* Raises an XPATH_INVALID_ARITY error.
51
*/
52
#define xmlXPathSetArityError(ctxt) \
53
xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
54
55
/**
56
* xmlXPathSetTypeError:
57
* @ctxt: an XPath parser context
58
*
59
* Raises an XPATH_INVALID_TYPE error.
60
*/
61
#define xmlXPathSetTypeError(ctxt) \
62
xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
63
64
/**
65
* xmlXPathGetError:
66
* @ctxt: an XPath parser context
67
*
68
* Get the error code of an XPath context.
69
*
70
* Returns the context error.
71
*/
72
#define xmlXPathGetError(ctxt) ((ctxt)->error)
73
74
/**
75
* xmlXPathCheckError:
76
* @ctxt: an XPath parser context
77
*
78
* Check if an XPath error was raised.
79
*
80
* Returns true if an error has been raised, false otherwise.
81
*/
82
#define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
83
84
/**
85
* xmlXPathGetDocument:
86
* @ctxt: an XPath parser context
87
*
88
* Get the document of an XPath context.
89
*
90
* Returns the context document.
91
*/
92
#define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
93
94
/**
95
* xmlXPathGetContextNode:
96
* @ctxt: an XPath parser context
97
*
98
* Get the context node of an XPath context.
99
*
100
* Returns the context node.
101
*/
102
#define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
103
104
XMLPUBFUN int
105
xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
106
XMLPUBFUN double
107
xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
108
XMLPUBFUN xmlChar *
109
xmlXPathPopString (xmlXPathParserContextPtr ctxt);
110
XMLPUBFUN xmlNodeSetPtr
111
xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
112
XMLPUBFUN void *
113
xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
114
115
/**
116
* xmlXPathReturnBoolean:
117
* @ctxt: an XPath parser context
118
* @val: a boolean
119
*
120
* Pushes the boolean @val on the context stack.
121
*/
122
#define xmlXPathReturnBoolean(ctxt, val) \
123
valuePush((ctxt), xmlXPathNewBoolean(val))
124
125
/**
126
* xmlXPathReturnTrue:
127
* @ctxt: an XPath parser context
128
*
129
* Pushes true on the context stack.
130
*/
131
#define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
132
133
/**
134
* xmlXPathReturnFalse:
135
* @ctxt: an XPath parser context
136
*
137
* Pushes false on the context stack.
138
*/
139
#define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
140
141
/**
142
* xmlXPathReturnNumber:
143
* @ctxt: an XPath parser context
144
* @val: a double
145
*
146
* Pushes the double @val on the context stack.
147
*/
148
#define xmlXPathReturnNumber(ctxt, val) \
149
valuePush((ctxt), xmlXPathNewFloat(val))
150
151
/**
152
* xmlXPathReturnString:
153
* @ctxt: an XPath parser context
154
* @str: a string
155
*
156
* Pushes the string @str on the context stack.
157
*/
158
#define xmlXPathReturnString(ctxt, str) \
159
valuePush((ctxt), xmlXPathWrapString(str))
160
161
/**
162
* xmlXPathReturnEmptyString:
163
* @ctxt: an XPath parser context
164
*
165
* Pushes an empty string on the stack.
166
*/
167
#define xmlXPathReturnEmptyString(ctxt) \
168
valuePush((ctxt), xmlXPathNewCString(""))
169
170
/**
171
* xmlXPathReturnNodeSet:
172
* @ctxt: an XPath parser context
173
* @ns: a node-set
174
*
175
* Pushes the node-set @ns on the context stack.
176
*/
177
#define xmlXPathReturnNodeSet(ctxt, ns) \
178
valuePush((ctxt), xmlXPathWrapNodeSet(ns))
179
180
/**
181
* xmlXPathReturnEmptyNodeSet:
182
* @ctxt: an XPath parser context
183
*
184
* Pushes an empty node-set on the context stack.
185
*/
186
#define xmlXPathReturnEmptyNodeSet(ctxt) \
187
valuePush((ctxt), xmlXPathNewNodeSet(NULL))
188
189
/**
190
* xmlXPathReturnExternal:
191
* @ctxt: an XPath parser context
192
* @val: user data
193
*
194
* Pushes user data on the context stack.
195
*/
196
#define xmlXPathReturnExternal(ctxt, val) \
197
valuePush((ctxt), xmlXPathWrapExternal(val))
198
199
/**
200
* xmlXPathStackIsNodeSet:
201
* @ctxt: an XPath parser context
202
*
203
* Check if the current value on the XPath stack is a node set or
204
* an XSLT value tree.
205
*
206
* Returns true if the current object on the stack is a node-set.
207
*/
208
#define xmlXPathStackIsNodeSet(ctxt) \
209
(((ctxt)->value != NULL) \
210
&& (((ctxt)->value->type == XPATH_NODESET) \
211
|| ((ctxt)->value->type == XPATH_XSLT_TREE)))
212
213
/**
214
* xmlXPathStackIsExternal:
215
* @ctxt: an XPath parser context
216
*
217
* Checks if the current value on the XPath stack is an external
218
* object.
219
*
220
* Returns true if the current object on the stack is an external
221
* object.
222
*/
223
#define xmlXPathStackIsExternal(ctxt) \
224
((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
225
226
/**
227
* xmlXPathEmptyNodeSet:
228
* @ns: a node-set
229
*
230
* Empties a node-set.
231
*/
232
#define xmlXPathEmptyNodeSet(ns) \
233
{ while ((ns)->nodeNr > 0) (ns)->nodeTab[--(ns)->nodeNr] = NULL; }
234
235
/**
236
* CHECK_ERROR:
237
*
238
* Macro to return from the function if an XPath error was detected.
239
*/
240
#define CHECK_ERROR \
241
if (ctxt->error != XPATH_EXPRESSION_OK) return
242
243
/**
244
* CHECK_ERROR0:
245
*
246
* Macro to return 0 from the function if an XPath error was detected.
247
*/
248
#define CHECK_ERROR0 \
249
if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
250
251
/**
252
* XP_ERROR:
253
* @X: the error code
254
*
255
* Macro to raise an XPath error and return.
256
*/
257
#define XP_ERROR(X) \
258
{ xmlXPathErr(ctxt, X); return; }
259
260
/**
261
* XP_ERROR0:
262
* @X: the error code
263
*
264
* Macro to raise an XPath error and return 0.
265
*/
266
#define XP_ERROR0(X) \
267
{ xmlXPathErr(ctxt, X); return(0); }
268
269
/**
270
* CHECK_TYPE:
271
* @typeval: the XPath type
272
*
273
* Macro to check that the value on top of the XPath stack is of a given
274
* type.
275
*/
276
#define CHECK_TYPE(typeval) \
277
if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
278
XP_ERROR(XPATH_INVALID_TYPE)
279
280
/**
281
* CHECK_TYPE0:
282
* @typeval: the XPath type
283
*
284
* Macro to check that the value on top of the XPath stack is of a given
285
* type. Return(0) in case of failure
286
*/
287
#define CHECK_TYPE0(typeval) \
288
if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
289
XP_ERROR0(XPATH_INVALID_TYPE)
290
291
/**
292
* CHECK_ARITY:
293
* @x: the number of expected args
294
*
295
* Macro to check that the number of args passed to an XPath function matches.
296
*/
297
#define CHECK_ARITY(x) \
298
if (ctxt == NULL) return; \
299
if (nargs != (x)) \
300
XP_ERROR(XPATH_INVALID_ARITY); \
301
if (ctxt->valueNr < (x)) \
302
XP_ERROR(XPATH_STACK_ERROR);
303
304
/**
305
* CAST_TO_STRING:
306
*
307
* Macro to try to cast the value on the top of the XPath stack to a string.
308
*/
309
#define CAST_TO_STRING \
310
if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
311
xmlXPathStringFunction(ctxt, 1);
312
313
/**
314
* CAST_TO_NUMBER:
315
*
316
* Macro to try to cast the value on the top of the XPath stack to a number.
317
*/
318
#define CAST_TO_NUMBER \
319
if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
320
xmlXPathNumberFunction(ctxt, 1);
321
322
/**
323
* CAST_TO_BOOLEAN:
324
*
325
* Macro to try to cast the value on the top of the XPath stack to a boolean.
326
*/
327
#define CAST_TO_BOOLEAN \
328
if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
329
xmlXPathBooleanFunction(ctxt, 1);
330
331
/*
332
* Variable Lookup forwarding.
333
*/
334
335
XMLPUBFUN void
336
xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
337
xmlXPathVariableLookupFunc f,
338
void *data);
339
340
/*
341
* Function Lookup forwarding.
342
*/
343
344
XMLPUBFUN void
345
xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
346
xmlXPathFuncLookupFunc f,
347
void *funcCtxt);
348
349
/*
350
* Error reporting.
351
*/
352
XMLPUBFUN void
353
xmlXPatherror (xmlXPathParserContextPtr ctxt,
354
const char *file,
355
int line,
356
int no);
357
358
XMLPUBFUN void
359
xmlXPathErr (xmlXPathParserContextPtr ctxt,
360
int error);
361
362
#ifdef LIBXML_DEBUG_ENABLED
363
XMLPUBFUN void
364
xmlXPathDebugDumpObject (FILE *output,
365
xmlXPathObjectPtr cur,
366
int depth);
367
XMLPUBFUN void
368
xmlXPathDebugDumpCompExpr(FILE *output,
369
xmlXPathCompExprPtr comp,
370
int depth);
371
#endif
372
/**
373
* NodeSet handling.
374
*/
375
XMLPUBFUN int
376
xmlXPathNodeSetContains (xmlNodeSetPtr cur,
377
xmlNodePtr val);
378
XMLPUBFUN xmlNodeSetPtr
379
xmlXPathDifference (xmlNodeSetPtr nodes1,
380
xmlNodeSetPtr nodes2);
381
XMLPUBFUN xmlNodeSetPtr
382
xmlXPathIntersection (xmlNodeSetPtr nodes1,
383
xmlNodeSetPtr nodes2);
384
385
XMLPUBFUN xmlNodeSetPtr
386
xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
387
XMLPUBFUN xmlNodeSetPtr
388
xmlXPathDistinct (xmlNodeSetPtr nodes);
389
390
XMLPUBFUN int
391
xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
392
xmlNodeSetPtr nodes2);
393
394
XMLPUBFUN xmlNodeSetPtr
395
xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
396
xmlNodePtr node);
397
XMLPUBFUN xmlNodeSetPtr
398
xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
399
xmlNodeSetPtr nodes2);
400
XMLPUBFUN xmlNodeSetPtr
401
xmlXPathNodeLeading (xmlNodeSetPtr nodes,
402
xmlNodePtr node);
403
XMLPUBFUN xmlNodeSetPtr
404
xmlXPathLeading (xmlNodeSetPtr nodes1,
405
xmlNodeSetPtr nodes2);
406
407
XMLPUBFUN xmlNodeSetPtr
408
xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
409
xmlNodePtr node);
410
XMLPUBFUN xmlNodeSetPtr
411
xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
412
xmlNodeSetPtr nodes2);
413
XMLPUBFUN xmlNodeSetPtr
414
xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
415
xmlNodePtr node);
416
XMLPUBFUN xmlNodeSetPtr
417
xmlXPathTrailing (xmlNodeSetPtr nodes1,
418
xmlNodeSetPtr nodes2);
419
420
421
/**
422
* Extending a context.
423
*/
424
425
XMLPUBFUN int
426
xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
427
const xmlChar *prefix,
428
const xmlChar *ns_uri);
429
XMLPUBFUN const xmlChar *
430
xmlXPathNsLookup (xmlXPathContextPtr ctxt,
431
const xmlChar *prefix);
432
XMLPUBFUN void
433
xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
434
435
XMLPUBFUN int
436
xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
437
const xmlChar *name,
438
xmlXPathFunction f);
439
XMLPUBFUN int
440
xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
441
const xmlChar *name,
442
const xmlChar *ns_uri,
443
xmlXPathFunction f);
444
XMLPUBFUN int
445
xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
446
const xmlChar *name,
447
xmlXPathObjectPtr value);
448
XMLPUBFUN int
449
xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
450
const xmlChar *name,
451
const xmlChar *ns_uri,
452
xmlXPathObjectPtr value);
453
XMLPUBFUN xmlXPathFunction
454
xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
455
const xmlChar *name);
456
XMLPUBFUN xmlXPathFunction
457
xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
458
const xmlChar *name,
459
const xmlChar *ns_uri);
460
XMLPUBFUN void
461
xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
462
XMLPUBFUN xmlXPathObjectPtr
463
xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
464
const xmlChar *name);
465
XMLPUBFUN xmlXPathObjectPtr
466
xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
467
const xmlChar *name,
468
const xmlChar *ns_uri);
469
XMLPUBFUN void
470
xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
471
472
/**
473
* Utilities to extend XPath.
474
*/
475
XMLPUBFUN xmlXPathParserContextPtr
476
xmlXPathNewParserContext (const xmlChar *str,
477
xmlXPathContextPtr ctxt);
478
XMLPUBFUN void
479
xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
480
481
/* TODO: remap to xmlXPathValuePop and Push. */
482
XMLPUBFUN xmlXPathObjectPtr
483
valuePop (xmlXPathParserContextPtr ctxt);
484
XMLPUBFUN int
485
valuePush (xmlXPathParserContextPtr ctxt,
486
xmlXPathObjectPtr value);
487
488
XMLPUBFUN xmlXPathObjectPtr
489
xmlXPathNewString (const xmlChar *val);
490
XMLPUBFUN xmlXPathObjectPtr
491
xmlXPathNewCString (const char *val);
492
XMLPUBFUN xmlXPathObjectPtr
493
xmlXPathWrapString (xmlChar *val);
494
XMLPUBFUN xmlXPathObjectPtr
495
xmlXPathWrapCString (char * val);
496
XMLPUBFUN xmlXPathObjectPtr
497
xmlXPathNewFloat (double val);
498
XMLPUBFUN xmlXPathObjectPtr
499
xmlXPathNewBoolean (int val);
500
XMLPUBFUN xmlXPathObjectPtr
501
xmlXPathNewNodeSet (xmlNodePtr val);
502
XMLPUBFUN xmlXPathObjectPtr
503
xmlXPathNewValueTree (xmlNodePtr val);
504
XMLPUBFUN int
505
xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
506
xmlNodePtr val);
507
XMLPUBFUN int
508
xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
509
xmlNodePtr val);
510
XMLPUBFUN int
511
xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
512
xmlNodePtr node,
513
xmlNsPtr ns);
514
XMLPUBFUN void
515
xmlXPathNodeSetSort (xmlNodeSetPtr set);
516
517
XMLPUBFUN void
518
xmlXPathRoot (xmlXPathParserContextPtr ctxt);
519
XMLPUBFUN void
520
xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
521
XMLPUBFUN xmlChar *
522
xmlXPathParseName (xmlXPathParserContextPtr ctxt);
523
XMLPUBFUN xmlChar *
524
xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
525
526
/*
527
* Existing functions.
528
*/
529
XMLPUBFUN double
530
xmlXPathStringEvalNumber (const xmlChar *str);
531
XMLPUBFUN int
532
xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
533
xmlXPathObjectPtr res);
534
XMLPUBFUN void
535
xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
536
XMLPUBFUN xmlNodeSetPtr
537
xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
538
xmlNodeSetPtr val2);
539
XMLPUBFUN void
540
xmlXPathNodeSetDel (xmlNodeSetPtr cur,
541
xmlNodePtr val);
542
XMLPUBFUN void
543
xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
544
int val);
545
XMLPUBFUN xmlXPathObjectPtr
546
xmlXPathNewNodeSetList (xmlNodeSetPtr val);
547
XMLPUBFUN xmlXPathObjectPtr
548
xmlXPathWrapNodeSet (xmlNodeSetPtr val);
549
XMLPUBFUN xmlXPathObjectPtr
550
xmlXPathWrapExternal (void *val);
551
552
XMLPUBFUN int xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
553
XMLPUBFUN int xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
554
XMLPUBFUN int xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
555
XMLPUBFUN void xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
556
XMLPUBFUN void xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
557
XMLPUBFUN void xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
558
XMLPUBFUN void xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
559
XMLPUBFUN void xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
560
XMLPUBFUN void xmlXPathModValues(xmlXPathParserContextPtr ctxt);
561
562
XMLPUBFUN int xmlXPathIsNodeType(const xmlChar *name);
563
564
/*
565
* Some of the axis navigation routines.
566
*/
567
XMLPUBFUN xmlNodePtr xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
568
xmlNodePtr cur);
569
XMLPUBFUN xmlNodePtr xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
570
xmlNodePtr cur);
571
XMLPUBFUN xmlNodePtr xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
572
xmlNodePtr cur);
573
XMLPUBFUN xmlNodePtr xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
574
xmlNodePtr cur);
575
XMLPUBFUN xmlNodePtr xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
576
xmlNodePtr cur);
577
XMLPUBFUN xmlNodePtr xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
578
xmlNodePtr cur);
579
XMLPUBFUN xmlNodePtr xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
580
xmlNodePtr cur);
581
XMLPUBFUN xmlNodePtr xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
582
xmlNodePtr cur);
583
XMLPUBFUN xmlNodePtr xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
584
xmlNodePtr cur);
585
XMLPUBFUN xmlNodePtr xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
586
xmlNodePtr cur);
587
XMLPUBFUN xmlNodePtr xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
588
xmlNodePtr cur);
589
XMLPUBFUN xmlNodePtr xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
590
xmlNodePtr cur);
591
XMLPUBFUN xmlNodePtr xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
592
xmlNodePtr cur);
593
/*
594
* The official core of XPath functions.
595
*/
596
XMLPUBFUN void xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
597
XMLPUBFUN void xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
598
XMLPUBFUN void xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
599
XMLPUBFUN void xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
600
XMLPUBFUN void xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
601
XMLPUBFUN void xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
602
XMLPUBFUN void xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
603
XMLPUBFUN void xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
604
XMLPUBFUN void xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
605
XMLPUBFUN void xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
606
XMLPUBFUN void xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
607
XMLPUBFUN void xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
608
XMLPUBFUN void xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
609
XMLPUBFUN void xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
610
XMLPUBFUN void xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
611
XMLPUBFUN void xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
612
XMLPUBFUN void xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
613
XMLPUBFUN void xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
614
XMLPUBFUN void xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
615
XMLPUBFUN void xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
616
XMLPUBFUN void xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
617
XMLPUBFUN void xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
618
XMLPUBFUN void xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
619
XMLPUBFUN void xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
620
XMLPUBFUN void xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
621
XMLPUBFUN void xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
622
623
/**
624
* Really internal functions
625
*/
626
XMLPUBFUN void xmlXPathNodeSetFreeNs(xmlNsPtr ns);
627
628
#ifdef __cplusplus
629
}
630
#endif
631
632
#endif /* LIBXML_XPATH_ENABLED */
633
#endif /* ! __XML_XPATH_INTERNALS_H__ */
634
635