Home | History | Annotate | Download | only in libxml2

Lines Matching full:ctxt

88  * @ctxt:  an XPTR evaluation context
94 xmlXPtrErr(xmlXPathParserContextPtr ctxt, int error,
97 if (ctxt != NULL)
98 ctxt->error = error;
99 if ((ctxt == NULL) || (ctxt->context == NULL)) {
109 xmlResetError(&ctxt->context->lastError);
111 ctxt->context->lastError.domain = XML_FROM_XPOINTER;
112 ctxt->context->lastError.code = error;
113 ctxt->context->lastError.level = XML_ERR_ERROR;
114 ctxt->context->lastError.str1 = (char *) xmlStrdup(ctxt->base);
115 ctxt->context->lastError.int1 = ctxt->cur - ctxt->base;
116 ctxt->context->lastError.node = ctxt->context->debugNode;
117 if (ctxt->context->error != NULL) {
118 ctxt->context->error(ctxt->context->userData,
119 &ctxt->context->lastError);
122 NULL, ctxt->context->debugNode, XML_FROM_XPOINTER,
124 (const char *) extra, (const char *) ctxt->base, NULL,
125 ctxt->cur - ctxt->base, 0,
846 static void xmlXPtrEvalChildSeq(xmlXPathParserContextPtr ctxt, xmlChar *name);
871 #define CUR (*ctxt->cur)
872 #define SKIP(val) ctxt->cur += (val)
873 #define NXT(val) ctxt->cur[(val)]
874 #define CUR_PTR ctxt->cur
877 while (IS_BLANK_CH(*(ctxt->cur))) NEXT
879 #define CURRENT (*ctxt->cur)
880 #define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur)
884 * @ctxt: the XPointer Parser context
891 xmlXPtrGetChildNo(xmlXPathParserContextPtr ctxt, int indx) {
897 obj = valuePop(ctxt);
901 valuePush(ctxt, xmlXPathNewNodeSet(NULL));
907 valuePush(ctxt, xmlXPathNewNodeSet(NULL));
911 valuePush(ctxt, obj);
916 * @ctxt: the XPointer Parser context
949 xmlXPtrEvalXPtrPart(xmlXPathParserContextPtr ctxt, xmlChar *name) {
955 name = xmlXPathParseName(ctxt);
966 len = xmlStrlen(ctxt->cur);
1011 ctxt->context->node = (xmlNodePtr)ctxt->context->doc;
1012 ctxt->context->proximityPosition = 1;
1013 ctxt->context->contextSize = 1;
1014 xmlXPathEvalExpr(ctxt);
1022 xmlXPathRoot(ctxt);
1023 xmlXPtrEvalChildSeq(ctxt, NULL);
1025 name2 = xmlXPathParseName(ctxt);
1032 xmlXPtrEvalChildSeq(ctxt, name2);
1043 prefix = xmlXPathParseNCName(ctxt);
1060 value = xmlParseURI((const char *)ctxt->cur);
1076 xmlXPathRegisterNs(ctxt->context, prefix, URI);
1082 xmlXPtrErr(ctxt, XML_XPTR_UNKNOWN_SCHEME,
1091 * @ctxt: the XPointer Parser context
1117 xmlXPtrEvalFullXPtr(xmlXPathParserContextPtr ctxt, xmlChar *name) {
1119 name = xmlXPathParseName(ctxt);
1123 ctxt->error = XPATH_EXPRESSION_OK;
1124 xmlXPtrEvalXPtrPart(ctxt, name);
1127 if ((ctxt->error != XPATH_EXPRESSION_OK) &&
1128 (ctxt->error != XML_XPTR_UNKNOWN_SCHEME))
1135 if (ctxt->value != NULL) {
1136 xmlXPathObjectPtr obj = ctxt->value;
1140 xmlLocationSetPtr loc = ctxt->value->user;
1146 xmlNodeSetPtr loc = ctxt->value->nodesetval;
1160 obj = valuePop(ctxt);
1171 name = xmlXPathParseName(ctxt);
1177 * @ctxt: the XPointer Parser context
1187 xmlXPtrEvalChildSeq(xmlXPathParserContextPtr ctxt, xmlChar *name) {
1193 xmlXPtrErr(ctxt, XML_XPTR_CHILDSEQ_START,
1198 valuePush(ctxt, xmlXPathNewString(name));
1200 xmlXPathIdFunction(ctxt, 1);
1212 xmlXPtrGetChildNo(ctxt, child);
1219 * @ctxt: the XPointer Parser context
1228 xmlXPtrEvalXPointer(xmlXPathParserContextPtr ctxt) {
1229 if (ctxt->valueTab == NULL) {
1231 ctxt->valueTab = (xmlXPathObjectPtr *)
1233 if (ctxt->valueTab == NULL) {
1237 ctxt->valueNr = 0;
1238 ctxt->valueMax = 10;
1239 ctxt->value = NULL;
1240 ctxt->valueFrame = 0;
1244 xmlXPathRoot(ctxt);
1245 xmlXPtrEvalChildSeq(ctxt, NULL);
1249 name = xmlXPathParseName(ctxt);
1253 xmlXPtrEvalFullXPtr(ctxt, name);
1258 xmlXPtrEvalChildSeq(ctxt, name);
1274 void xmlXPtrStringRangeFunction(xmlXPathParserContextPtr ctxt, int nargs);
1276 void xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs);
1278 void xmlXPtrEndPointFunction(xmlXPathParserContextPtr ctxt, int nargs);
1280 void xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs);
1282 void xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs);
1284 ctxt, int nargs);
1286 void xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs);
1340 xmlXPathParserContextPtr ctxt;
1350 ctxt = xmlXPathNewParserContext(str, ctx);
1351 if (ctxt == NULL)
1353 ctxt->xptr = 1;
1354 xmlXPtrEvalXPointer(ctxt);
1356 if ((ctxt->value != NULL) &&
1357 (ctxt->value->type != XPATH_NODESET) &&
1358 (ctxt->value->type != XPATH_LOCATIONSET)) {
1359 xmlXPtrErr(ctxt, XML_XPTR_EVAL_FAILED,
1363 res = valuePop(ctxt);
1367 tmp = valuePop(ctxt);
1386 xmlXPtrErr(ctxt, XML_XPTR_EXTRA_OBJECTS,
1390 if (ctxt->error != XPATH_EXPRESSION_OK) {
1395 xmlXPathFreeParserContext(ctxt);
1709 * @ctxt: the XPointer Parser context
1716 xmlXPtrHereFunction(xmlXPathParserContextPtr ctxt, int nargs) {
1719 if (ctxt->context->here == NULL)
1722 valuePush(ctxt, xmlXPtrNewLocationSetNodes(ctxt->context->here, NULL));
1727 * @ctxt: the XPointer Parser context
1734 xmlXPtrOriginFunction(xmlXPathParserContextPtr ctxt, int nargs) {
1737 if (ctxt->context->origin == NULL)
1740 valuePush(ctxt, xmlXPtrNewLocationSetNodes(ctxt->context->origin, NULL));
1745 * @ctxt: the XPointer Parser context
1767 xmlXPtrStartPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
1773 if ((ctxt->value == NULL) ||
1774 ((ctxt->value->type != XPATH_LOCATIONSET) &&
1775 (ctxt->value->type != XPATH_NODESET)))
1778 obj = valuePop(ctxt);
1834 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
1839 * @ctxt: the XPointer Parser context
1863 xmlXPtrEndPointFunction(xmlXPathParserContextPtr ctxt, int nargs) {
1869 if ((ctxt->value == NULL) ||
1870 ((ctxt->value->type != XPATH_LOCATIONSET) &&
1871 (ctxt->value->type != XPATH_NODESET)))
1874 obj = valuePop(ctxt);
1933 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
1939 * @ctxt: the XPointer Parser context
1949 xmlXPtrCoveringRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) {
1952 if ((ctxt == NULL) || (ctxt->context == NULL) ||
1953 (ctxt->context->doc == NULL))
1965 if (node == (xmlNodePtr) ctxt->context->doc) {
2002 * @ctxt: the XPointer Parser context
2014 xmlXPtrRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
2021 if ((ctxt->value == NULL) ||
2022 ((ctxt->value->type != XPATH_LOCATIONSET) &&
2023 (ctxt->value->type != XPATH_NODESET)))
2026 set = valuePop(ctxt);
2052 xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
2059 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
2065 * @ctxt: the XPointer Parser context
2073 xmlXPtrInsideRange(xmlXPathParserContextPtr ctxt, xmlXPathObjectPtr loc) {
2076 if ((ctxt == NULL) || (ctxt->context == NULL) ||
2077 (ctxt->context->doc == NULL))
2149 * @ctxt: the XPointer Parser context
2168 xmlXPtrRangeInsideFunction(xmlXPathParserContextPtr ctxt, int nargs) {
2175 if ((ctxt->value == NULL) ||
2176 ((ctxt->value->type != XPATH_LOCATIONSET) &&
2177 (ctxt->value->type != XPATH_NODESET)))
2180 set = valuePop(ctxt);
2205 xmlXPtrInsideRange(ctxt, oldset->locTab[i]));
2211 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
2217 * @ctxt: the XPointer Parser context
2226 xmlXPtrRangeToFunction(xmlXPathParserContextPtr ctxt,
2661 * @ctxt: the XPointer Parser context
2696 xmlXPtrStringRangeFunction(xmlXPathParserContextPtr ctxt, int nargs) {
2715 number = valuePop(ctxt);
2721 position = valuePop(ctxt);
2726 string = valuePop(ctxt);
2727 if ((ctxt->value == NULL) ||
2728 ((ctxt->value->type != XPATH_LOCATIONSET) &&
2729 (ctxt->value->type != XPATH_NODESET)))
2732 set = valuePop(ctxt);
2823 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));
2832 * @ctxt: the XPointer Parser context
2841 xmlXPtrEvalRangePredicate(xmlXPathParserContextPtr ctxt) {
2849 if (ctxt == NULL) return;
2864 obj = valuePop(ctxt);
2866 ctxt->context->node = NULL;
2869 ctxt->context->contextSize = 0;
2870 ctxt->context->proximityPosition = 0;
2871 xmlXPathEvalExpr(ctxt);
2872 res = valuePop(ctxt);
2875 valuePush(ctxt, obj);
2882 cur = ctxt->cur;
2886 ctxt->cur = cur;
2892 ctxt->context->node = oldset->locTab[i]->user;
2893 tmp = xmlXPathNewNodeSet(ctxt->context->node);
2894 valuePush(ctxt, tmp);
2895 ctxt->context->contextSize = oldset->locNr;
2896 ctxt->context->proximityPosition = i + 1;
2898 xmlXPathEvalExpr(ctxt);
2905 res = valuePop(ctxt);
2906 if (xmlXPathEvaluatePredicateResult(ctxt, res)) {
2916 if (ctxt->value == tmp) {
2917 res = valuePop(ctxt);
2921 ctxt->context->node = NULL;
2928 ctxt->context->node = NULL;
2929 ctxt->context->contextSize = -1;
2930 ctxt->context->proximityPosition = -1;
2931 valuePush(ctxt, xmlXPtrWrapLocationSet(newset));