1 * Summary: internal interfaces for XML Path Language implementation
2 * Description: internal interfaces for XML Path Language implementation
3 * used to build new modules on top of XPath like XPointer and
6 * Copy: See Copyright for the status of this software.
8 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
10 /if not defined(XML_XPATH_INTERNALS_H__)
11 /define XML_XPATH_INTERNALS_H__
13 /include "libxmlrpg/xmlversion"
14 /include "libxmlrpg/xpath"
16 /if defined(LIBXML_XPATH_ENABLED)
18 ************************************************************************
22 ************************************************************************
24 * Many of these macros may later turn into functions. They
25 * shouldn't be used in #ifdef's preprocessor instructions.
27 d xmlXPathPopBoolean...
28 d pr 10i 0 extproc('xmlXPathPopBoolean')
29 d ctxt value like(xmlXPathParserContextPtr)
31 d xmlXPathPopNumber...
32 d pr 8f extproc('xmlXPathPopNumber')
33 d ctxt value like(xmlXPathParserContextPtr)
35 d xmlXPathPopString...
36 d pr * extproc('xmlXPathPopString') xmlChar *
37 d ctxt value like(xmlXPathParserContextPtr)
39 d xmlXPathPopNodeSet...
40 d pr extproc('xmlXPathPopNodeSet')
42 d ctxt value like(xmlXPathParserContextPtr)
44 d xmlXPathPopExternal...
45 d pr * extproc('xmlXPathPopExternal') void *
46 d ctxt value like(xmlXPathParserContextPtr)
48 * Variable Lookup forwarding.
50 d xmlXPathRegisterVariableLookup...
52 d 'xmlXPathRegisterVariableLookup')
53 d ctxt value like(xmlXPathContextPtr)
55 d like(xmlXPathVariableLookupFunc)
58 * Function Lookup forwarding.
60 d xmlXPathRegisterFuncLookup...
61 d pr extproc('xmlXPathRegisterFuncLookup')
62 d ctxt value like(xmlXPathContextPtr)
63 d f value like(xmlXPathFuncLookupFunc)
64 d funcCtxt * value void *
67 * Note this procedure is renamed in RPG to avoid character case clash with
68 * data type xmlXPathError.
70 d xmlXPathReportError...
71 d pr extproc('xmlXPatherror')
72 d ctxt value like(xmlXPathParserContextPtr)
73 d file * value options(*string) const char *
77 d xmlXPathErr pr extproc('xmlXPathErr')
78 d ctxt value like(xmlXPathParserContextPtr)
81 /if defined(LIBXML_DEBUG_ENABLED)
82 d xmlXPathDebugDumpObject...
83 d pr extproc('xmlXPathDebugDumpObject')
84 d output * value FILE *
85 d cur value like(xmlXPathObjectPtr)
88 d xmlXPathDebugDumpCompExpr...
89 d pr extproc('xmlXPathDebugDumpCompExpr')
90 d output * value FILE *
91 d comp value like(xmlXPathCompExprPtr)
97 d xmlXPathNodeSetContains...
98 d pr 10i 0 extproc('xmlXPathNodeSetContains')
99 d cur value like(xmlNodeSetPtr)
100 d val value like(xmlNodePtr)
102 d xmlXPathDifference...
103 d pr extproc('xmlXPathDifference')
104 d like(xmlNodeSetPtr)
105 d nodes1 value like(xmlNodeSetPtr)
106 d nodes2 value like(xmlNodeSetPtr)
108 d xmlXPathIntersection...
109 d pr extproc('xmlXPathIntersection')
110 d like(xmlNodeSetPtr)
111 d nodes1 value like(xmlNodeSetPtr)
112 d nodes2 value like(xmlNodeSetPtr)
114 d xmlXPathDistinctSorted...
115 d pr extproc('xmlXPathDistinctSorted')
116 d like(xmlNodeSetPtr)
117 d nodes value like(xmlNodeSetPtr)
119 d xmlXPathDistinct...
120 d pr extproc('xmlXPathDistinct')
121 d like(xmlNodeSetPtr)
122 d nodes value like(xmlNodeSetPtr)
124 d xmlXPathHasSameNodes...
125 d pr 10i 0 extproc('xmlXPathHasSameNodes')
126 d nodes1 value like(xmlNodeSetPtr)
127 d nodes2 value like(xmlNodeSetPtr)
129 d xmlXPathNodeLeadingSorted...
130 d pr extproc('xmlXPathNodeLeadingSorted')
131 d like(xmlNodeSetPtr)
132 d nodes value like(xmlNodeSetPtr)
133 d node value like(xmlNodePtr)
135 d xmlXPathLeadingSorted...
136 d pr extproc('xmlXPathLeadingSorted')
137 d like(xmlNodeSetPtr)
138 d nodes1 value like(xmlNodeSetPtr)
139 d nodes2 value like(xmlNodeSetPtr)
141 d xmlXPathNodeLeading...
142 d pr extproc('xmlXPathNodeLeading')
143 d like(xmlNodeSetPtr)
144 d nodes value like(xmlNodeSetPtr)
145 d node value like(xmlNodePtr)
148 d pr extproc('xmlXPathLeading')
149 d like(xmlNodeSetPtr)
150 d nodes1 value like(xmlNodeSetPtr)
151 d nodes2 value like(xmlNodeSetPtr)
153 d xmlXPathNodeTrailingSorted...
154 d pr extproc('xmlXPathNodeTrailingSorted')
155 d like(xmlNodeSetPtr)
156 d nodes value like(xmlNodeSetPtr)
157 d node value like(xmlNodePtr)
159 d xmlXPathTrailingSorted...
160 d pr extproc('xmlXPathTrailingSorted')
161 d like(xmlNodeSetPtr)
162 d nodes1 value like(xmlNodeSetPtr)
163 d nodes2 value like(xmlNodeSetPtr)
165 d xmlXPathNodeTrailing...
166 d pr extproc('xmlXPathNodeTrailing')
167 d like(xmlNodeSetPtr)
168 d nodes value like(xmlNodeSetPtr)
169 d node value like(xmlNodePtr)
171 d xmlXPathTrailing...
172 d pr extproc('xmlXPathTrailing')
173 d like(xmlNodeSetPtr)
174 d nodes1 value like(xmlNodeSetPtr)
175 d nodes2 value like(xmlNodeSetPtr)
177 * Extending a context.
179 d xmlXPathRegisterNs...
180 d pr 10i 0 extproc('xmlXPathRegisterNs')
181 d ctxt value like(xmlXPathContextPtr)
182 d prefix * value options(*string) const xmlChar *
183 d ns_uri * value options(*string) const xmlChar *
185 d xmlXPathNsLookup...
186 d pr * extproc('xmlXPathNsLookup') const xmlChar *
187 d ctxt value like(xmlXPathContextPtr)
188 d prefix * value options(*string) const xmlChar *
190 d xmlXPathRegisteredNsCleanup...
192 d 'xmlXPathRegisteredNsCleanup')
193 d ctxt value like(xmlXPathContextPtr)
195 d xmlXPathRegisterFunc...
196 d pr 10i 0 extproc('xmlXPathRegisterFunc')
197 d ctxt value like(xmlXPathContextPtr)
198 d name * value options(*string) const xmlChar *
199 d f value like(xmlXPathFunction)
201 d xmlXPathRegisterFuncNS...
202 d pr 10i 0 extproc('xmlXPathRegisterFuncNS')
203 d ctxt value like(xmlXPathContextPtr)
204 d name * value options(*string) const xmlChar *
205 d ns_uri * value options(*string) const xmlChar *
206 d f value like(xmlXPathFunction)
208 d xmlXPathRegisterVariable...
209 d pr 10i 0 extproc('xmlXPathRegisterVariable')
210 d ctxt value like(xmlXPathContextPtr)
211 d name * value options(*string) const xmlChar *
212 d value value like(xmlXPathObjectPtr)
214 d xmlXPathRegisterVariableNS...
215 d pr 10i 0 extproc('xmlXPathRegisterVariableNS')
216 d ctxt value like(xmlXPathContextPtr)
217 d name * value options(*string) const xmlChar *
218 d ns_uri * value options(*string) const xmlChar *
219 d value value like(xmlXPathObjectPtr)
221 d xmlXPathFunctionLookup...
222 d pr extproc('xmlXPathFunctionLookup')
223 d like(xmlXPathFunction)
224 d ctxt value like(xmlXPathContextPtr)
225 d name * value options(*string) const xmlChar *
227 d xmlXPathFunctionLookupNS...
228 d pr extproc('xmlXPathFunctionLookupNS')
229 d like(xmlXPathFunction)
230 d ctxt value like(xmlXPathContextPtr)
231 d name * value options(*string) const xmlChar *
232 d ns_uri * value options(*string) const xmlChar *
234 d xmlXPathRegisteredFuncsCleanup...
236 d 'xmlXPathRegisteredFuncsCleanup')
237 d ctxt value like(xmlXPathContextPtr)
239 d xmlXPathVariableLookup...
240 d pr extproc('xmlXPathVariableLookup')
241 d like(xmlXPathObjectPtr)
242 d ctxt value like(xmlXPathContextPtr)
243 d name * value options(*string) const xmlChar *
245 d xmlXPathVariableLookupNS...
246 d pr extproc('xmlXPathVariableLookupNS')
247 d like(xmlXPathObjectPtr)
248 d ctxt value like(xmlXPathContextPtr)
249 d name * value options(*string) const xmlChar *
250 d ns_uri * value options(*string) const xmlChar *
252 d xmlXPathRegisteredVariablesCleanup...
254 d 'xmlXPathRegisteredVariablesCleanup')
255 d ctxt value like(xmlXPathContextPtr)
257 * Utilities to extend XPath.
259 d xmlXPathNewParserContext...
260 d pr extproc('xmlXPathNewParserContext')
261 d like(xmlXPathParserContextPtr)
262 d str * value options(*string) const xmlChar *
263 d ctxt value like(xmlXPathContextPtr)
265 d xmlXPathFreeParserContext...
266 d pr extproc('xmlXPathFreeParserContext')
267 d ctxt value like(xmlXPathParserContextPtr)
270 * TODO: remap to xmlXPathValuePop and Push.
272 d valuePop pr extproc('valuePop')
273 d like(xmlXPathObjectPtr)
274 d ctxt value like(xmlXPathParserContextPtr)
276 d valuePush pr 10i 0 extproc('valuePush')
277 d ctxt value like(xmlXPathParserContextPtr)
278 d value value like(xmlXPathObjectPtr)
280 d xmlXPathNewString...
281 d pr extproc('xmlXPathNewString')
282 d like(xmlXPathObjectPtr)
283 d val * value options(*string) const xmlChar *
285 d xmlXPathNewCString...
286 d pr extproc('xmlXPathNewCString')
287 d like(xmlXPathObjectPtr)
288 d val * value options(*string) const char *
290 d xmlXPathWrapString...
291 d pr extproc('xmlXPathWrapString')
292 d like(xmlXPathObjectPtr)
293 d val * value options(*string) xmlChar *
295 d xmlXPathWrapCString...
296 d pr extproc('xmlXPathWrapCString')
297 d like(xmlXPathObjectPtr)
298 d val * value options(*string) char *
300 d xmlXPathNewFloat...
301 d pr extproc('xmlXPathNewFloat')
302 d like(xmlXPathObjectPtr)
305 d xmlXPathNewBoolean...
306 d pr extproc('xmlXPathNewBoolean')
307 d like(xmlXPathObjectPtr)
310 d xmlXPathNewNodeSet...
311 d pr extproc('xmlXPathNewNodeSet')
312 d like(xmlXPathObjectPtr)
313 d val value like(xmlNodePtr)
315 d xmlXPathNewValueTree...
316 d pr extproc('xmlXPathNewValueTree')
317 d like(xmlXPathObjectPtr)
318 d val value like(xmlNodePtr)
320 d xmlXPathNodeSetAdd...
321 d pr 10i 0 extproc('xmlXPathNodeSetAdd')
322 d cur value like(xmlNodeSetPtr)
323 d val value like(xmlNodePtr)
325 d xmlXPathNodeSetAddUnique...
326 d pr 10i 0 extproc('xmlXPathNodeSetAddUnique')
327 d cur value like(xmlNodeSetPtr)
328 d val value like(xmlNodePtr)
330 d xmlXPathNodeSetAddNs...
331 d pr 10i 0 extproc('xmlXPathNodeSetAddNs')
332 d cur value like(xmlNodeSetPtr)
333 d node value like(xmlNodePtr)
334 d ns value like(xmlNsPtr)
336 d xmlXPathNodeSetSort...
337 d pr extproc('xmlXPathNodeSetSort')
338 d set value like(xmlNodeSetPtr)
340 d xmlXPathRoot pr extproc('xmlXPathRoot')
341 d ctxt value like(xmlXPathParserContextPtr)
343 d xmlXPathEvalExpr...
344 d pr extproc('xmlXPathEvalExpr')
345 d ctxt value like(xmlXPathParserContextPtr)
347 d xmlXPathParseName...
348 d pr * extproc('xmlXPathParseName') xmlChar *
349 d ctxt value like(xmlXPathParserContextPtr)
351 d xmlXPathParseNCName...
352 d pr * extproc('xmlXPathParseNCName') xmlChar *
353 d ctxt value like(xmlXPathParserContextPtr)
355 * Existing functions.
357 d xmlXPathStringEvalNumber...
358 d pr 8f extproc('xmlXPathStringEvalNumber')
359 d str * value options(*string) const xmlChar *
361 d xmlXPathEvaluatePredicateResult...
363 d 'xmlXPathEvaluatePredicateResult')
364 d ctxt value like(xmlXPathParserContextPtr)
365 d res value like(xmlXPathObjectPtr)
367 d xmlXPathRegisterAllFunctions...
369 d 'xmlXPathRegisterAllFunctions')
370 d ctxt value like(xmlXPathContextPtr)
372 d xmlXPathNodeSetMerge...
373 d pr extproc('xmlXPathNodeSetMerge')
374 d like(xmlNodeSetPtr)
375 d val1 value like(xmlNodeSetPtr)
376 d val2 value like(xmlNodeSetPtr)
378 d xmlXPathNodeSetDel...
379 d pr extproc('xmlXPathNodeSetDel')
380 d cur value like(xmlNodeSetPtr)
381 d val value like(xmlNodePtr)
383 d xmlXPathNodeSetRemove...
384 d pr extproc('xmlXPathNodeSetRemove')
385 d cur value like(xmlNodeSetPtr)
388 d xmlXPathNewNodeSetList...
389 d pr extproc('xmlXPathNewNodeSetList')
390 d like(xmlXPathObjectPtr)
391 d val value like(xmlNodeSetPtr)
393 d xmlXPathWrapNodeSet...
394 d pr extproc('xmlXPathWrapNodeSet')
395 d like(xmlXPathObjectPtr)
396 d val value like(xmlNodeSetPtr)
398 d xmlXPathWrapExternal...
399 d pr extproc('xmlXPathWrapExternal')
400 d like(xmlXPathObjectPtr)
403 d xmlXPathEqualValues...
404 d pr 10i 0 extproc('xmlXPathEqualValues')
405 d ctxt value like(xmlXPathParserContextPtr)
407 d xmlXPathNotEqualValues...
408 d pr 10i 0 extproc('xmlXPathNotEqualValues')
409 d ctxt value like(xmlXPathParserContextPtr)
411 d xmlXPathCompareValues...
412 d pr 10i 0 extproc('xmlXPathCompareValues')
413 d ctxt value like(xmlXPathParserContextPtr)
417 d xmlXPathValueFlipSign...
418 d pr extproc('xmlXPathValueFlipSign')
419 d ctxt value like(xmlXPathParserContextPtr)
421 d xmlXPathAddValues...
422 d pr extproc('xmlXPathAddValues')
423 d ctxt value like(xmlXPathParserContextPtr)
425 d xmlXPathSubValues...
426 d pr extproc('xmlXPathSubValues')
427 d ctxt value like(xmlXPathParserContextPtr)
429 d xmlXPathMultValues...
430 d pr extproc('xmlXPathMultValues')
431 d ctxt value like(xmlXPathParserContextPtr)
433 d xmlXPathDivValues...
434 d pr extproc('xmlXPathDivValues')
435 d ctxt value like(xmlXPathParserContextPtr)
437 d xmlXPathModValues...
438 d pr extproc('xmlXPathModValues')
439 d ctxt value like(xmlXPathParserContextPtr)
441 d xmlXPathIsNodeType...
442 d pr 10i 0 extproc('xmlXPathIsNodeType')
443 d name * value options(*string) const xmlChar *
445 * Some of the axis navigation routines.
447 d xmlXPathNextSelf...
448 d pr extproc('xmlXPathNextSelf')
450 d ctxt value like(xmlXPathParserContextPtr)
451 d cur value like(xmlNodePtr)
453 d xmlXPathNextChild...
454 d pr extproc('xmlXPathNextChild')
456 d ctxt value like(xmlXPathParserContextPtr)
457 d cur value like(xmlNodePtr)
459 d xmlXPathNextDescendant...
460 d pr extproc('xmlXPathNextDescendant')
462 d ctxt value like(xmlXPathParserContextPtr)
463 d cur value like(xmlNodePtr)
465 d xmlXPathNextDescendantOrSelf...
467 d 'xmlXPathNextDescendantOrSelf')
469 d ctxt value like(xmlXPathParserContextPtr)
470 d cur value like(xmlNodePtr)
472 d xmlXPathNextParent...
473 d pr extproc('xmlXPathNextParent')
475 d ctxt value like(xmlXPathParserContextPtr)
476 d cur value like(xmlNodePtr)
478 d xmlXPathNextAncestorOrSelf...
479 d pr extproc('xmlXPathNextAncestorOrSelf')
481 d ctxt value like(xmlXPathParserContextPtr)
482 d cur value like(xmlNodePtr)
484 d xmlXPathNextFollowingSibling...
486 d 'xmlXPathNextFollowingSibling')
488 d ctxt value like(xmlXPathParserContextPtr)
489 d cur value like(xmlNodePtr)
491 d xmlXPathNextFollowing...
492 d pr extproc('xmlXPathNextFollowing')
494 d ctxt value like(xmlXPathParserContextPtr)
495 d cur value like(xmlNodePtr)
497 d xmlXPathNextNamespace...
498 d pr extproc('xmlXPathNextNamespace')
500 d ctxt value like(xmlXPathParserContextPtr)
501 d cur value like(xmlNodePtr)
503 d xmlXPathNextAttribute...
504 d pr extproc('xmlXPathNextAttribute')
506 d ctxt value like(xmlXPathParserContextPtr)
507 d cur value like(xmlNodePtr)
509 d xmlXPathNextPreceding...
510 d pr extproc('xmlXPathNextPreceding')
512 d ctxt value like(xmlXPathParserContextPtr)
513 d cur value like(xmlNodePtr)
515 d xmlXPathNextAncestor...
516 d pr extproc('xmlXPathNextAncestor')
518 d ctxt value like(xmlXPathParserContextPtr)
519 d cur value like(xmlNodePtr)
521 d xmlXPathNextPrecedingSibling...
523 d 'xmlXPathNextPrecedingSibling')
525 d ctxt value like(xmlXPathParserContextPtr)
526 d cur value like(xmlNodePtr)
528 * The official core of XPath functions.
530 d xmlXPathLastFunction...
531 d pr extproc('xmlXPathLastFunction')
532 d ctxt value like(xmlXPathParserContextPtr)
535 d xmlXPathPositionFunction...
536 d pr extproc('xmlXPathPositionFunction')
537 d ctxt value like(xmlXPathParserContextPtr)
540 d xmlXPathCountFunction...
541 d pr extproc('xmlXPathCountFunction')
542 d ctxt value like(xmlXPathParserContextPtr)
545 d xmlXPathIdFunction...
546 d pr extproc('xmlXPathIdFunction')
547 d ctxt value like(xmlXPathParserContextPtr)
550 d xmlXPathLocalNameFunction...
551 d pr extproc('xmlXPathLocalNameFunction')
552 d ctxt value like(xmlXPathParserContextPtr)
555 d xmlXPathNamespaceURIFunction...
557 d 'xmlXPathNamespaceURIFunction')
558 d ctxt value like(xmlXPathParserContextPtr)
561 d xmlXPathStringFunction...
562 d pr extproc('xmlXPathStringFunction')
563 d ctxt value like(xmlXPathParserContextPtr)
566 d xmlXPathStringLengthFunction...
568 d 'xmlXPathStringLengthFunction')
569 d ctxt value like(xmlXPathParserContextPtr)
572 d xmlXPathConcatFunction...
573 d pr extproc('xmlXPathConcatFunction')
574 d ctxt value like(xmlXPathParserContextPtr)
577 d xmlXPathContainsFunction...
578 d pr extproc('xmlXPathContainsFunction')
579 d ctxt value like(xmlXPathParserContextPtr)
582 d xmlXPathStartsWithFunction...
583 d pr extproc('xmlXPathStartsWithFunction')
584 d ctxt value like(xmlXPathParserContextPtr)
587 d xmlXPathSubstringFunction...
588 d pr extproc('xmlXPathSubstringFunction')
589 d ctxt value like(xmlXPathParserContextPtr)
592 d xmlXPathSubstringBeforeFunction...
594 d 'xmlXPathSubstringBeforeFunction')
595 d ctxt value like(xmlXPathParserContextPtr)
598 d xmlXPathSubstringAfterFunction...
600 d 'xmlXPathSubstringAfterFunction')
601 d ctxt value like(xmlXPathParserContextPtr)
605 d xmlXPathNormalizeFunction...
606 d pr extproc('xmlXPathNormalizeFunction')
607 d ctxt value like(xmlXPathParserContextPtr)
610 d xmlXPathTranslateFunction...
611 d pr extproc('xmlXPathTranslateFunction')
612 d ctxt value like(xmlXPathParserContextPtr)
615 d xmlXPathNotFunction...
616 d pr extproc('xmlXPathNotFunction')
617 d ctxt value like(xmlXPathParserContextPtr)
620 d xmlXPathTrueFunction...
621 d pr extproc('xmlXPathTrueFunction')
622 d ctxt value like(xmlXPathParserContextPtr)
625 d xmlXPathFalseFunction...
626 d pr extproc('xmlXPathFalseFunction')
627 d ctxt value like(xmlXPathParserContextPtr)
630 d xmlXPathLangFunction...
631 d pr extproc('xmlXPathLangFunction')
632 d ctxt value like(xmlXPathParserContextPtr)
635 d xmlXPathNumberFunction...
636 d pr extproc('xmlXPathNumberFunction')
637 d ctxt value like(xmlXPathParserContextPtr)
640 d xmlXPathSumFunction...
641 d pr extproc('xmlXPathSumFunction')
642 d ctxt value like(xmlXPathParserContextPtr)
645 d xmlXPathFloorFunction...
646 d pr extproc('xmlXPathFloorFunction')
647 d ctxt value like(xmlXPathParserContextPtr)
650 d xmlXPathCeilingFunction...
651 d pr extproc('xmlXPathCeilingFunction')
652 d ctxt value like(xmlXPathParserContextPtr)
655 d xmlXPathRoundFunction...
656 d pr extproc('xmlXPathRoundFunction')
657 d ctxt value like(xmlXPathParserContextPtr)
660 d xmlXPathBooleanFunction...
661 d pr extproc('xmlXPathBooleanFunction')
662 d ctxt value like(xmlXPathParserContextPtr)
665 * Really internal functions
667 d xmlXPathNodeSetFreeNs...
668 d pr extproc('xmlXPathNodeSetFreeNs')
669 d ns value like(xmlNsPtr)
671 /endif LIBXML_XPATH_ENABLED
672 /endif XPATH_INTERNALS_H__