Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

regenerated fixed a compilation problem some cleanups and one bug fix

* elfgcchack.h testapi.c doc/*: regenerated
* schematron.c: fixed a compilation problem
* xmlregexp.c include/libxml/xmlregexp.h: some cleanups and one bug fix
* result/expr/base: slightly changes the number of Cons.
Daniel
  • Loading branch information...
commit ccb4d41c13bea3c81cf074ed43b84bd686c7d124 1 parent 5eee767
Daniel Veillard authored
View
7 ChangeLog
@@ -1,3 +1,10 @@
+Tue Aug 23 15:38:46 CEST 2005 Daniel Veillard <daniel@veillard.com>
+
+ * elfgcchack.h testapi.c doc/*: regenerated
+ * schematron.c: fixed a compilation problem
+ * xmlregexp.c include/libxml/xmlregexp.h: some cleanups and one bug fix
+ * result/expr/base: slightly changes the number of Cons.
+
Mon Aug 22 23:19:50 CEST 2005 Daniel Veillard <daniel@veillard.com>
* elfgcchack.h testapi.c doc/*: rescanned code and rebuilt
View
4 doc/APIchunk10.html
@@ -517,6 +517,10 @@
</dd><dt>assuming</dt><dd><a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
</dd><dt>assure</dt><dd><a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
+</dd><dt>atom</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
</dd><dt>atomic</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
</dd><dt>attached</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
View
1  doc/APIchunk11.html
@@ -187,6 +187,7 @@
<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
+</dd><dt>bound</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
</dd><dt>boundaries</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
</dd><dt>boundary</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
View
9 doc/APIchunk12.html
@@ -237,7 +237,8 @@
</dd><dt>childs</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
<a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
-</dd><dt>choice</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
+</dd><dt>choice</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
</dd><dt>choices</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementMixedContentDecl">xmlParseElementMixedContentDecl</a><br />
</dd><dt>choices:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNotationDecl">xmlParseNotationDecl</a><br />
@@ -598,6 +599,9 @@
<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferRead">xmlParserInputBufferRead</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaNewNOTATIONValue">xmlSchemaNewNOTATIONValue</a><br />
@@ -827,6 +831,9 @@
</dd><dt>cshema</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
</dd><dt>ctrio</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
+</dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
</dd><dt>ctxt-</dt><dd><a href="html/libxml-DOCBparser.html#docbFreeParserCtxt">docbFreeParserCtxt</a><br />
<a href="html/libxml-HTMLparser.html#htmlFreeParserCtxt">htmlFreeParserCtxt</a><br />
<a href="html/libxml-parser.html#xmlFreeParserCtxt">xmlFreeParserCtxt</a><br />
View
3  doc/APIchunk14.html
@@ -302,6 +302,9 @@
<a href="html/libxml-xpointer.html#xmlXPtrEval">xmlXPtrEval</a><br />
</dd><dt>evaulation</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegFreeExecCtxt">xmlRegFreeExecCtxt</a><br />
</dd><dt>even</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
View
1  doc/APIchunk17.html
@@ -247,6 +247,7 @@
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
</dd><dt>infinite</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
</dd><dt>infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
View
11 doc/APIchunk18.html
@@ -54,7 +54,10 @@
<a href="html/libxml-xpathInternals.html#xmlXPathNewParserContext">xmlXPathNewParserContext</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNextSelf">xmlXPathNextSelf</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
-</dd></dl><h2>Letter k:</h2><dl><dt>keep</dt><dd><a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
+</dd></dl><h2>Letter k:</h2><dl><dt>keep</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-uri.html#xmlParseURIRaw">xmlParseURIRaw</a><br />
<a href="html/libxml-parser.html#xmlParserInputGrow">xmlParserInputGrow</a><br />
<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
@@ -147,7 +150,9 @@
<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
</dd><dt>least</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
-</dd><dt>left</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
+</dd><dt>left</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
</dd><dt>legacy</dt><dd><a href="html/libxml-HTMLparser.html#htmlNodeStatus">htmlNodeStatus</a><br />
</dd><dt>len</dt><dd><a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
@@ -166,6 +171,7 @@
<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
</dd><dt>lenght</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGValidatePushCData">xmlRelaxNGValidatePushCData</a><br />
<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
<a href="html/libxml-valid.html#xmlValidatePushCData">xmlValidatePushCData</a><br />
@@ -384,6 +390,7 @@
</dd><dt>lossless</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputBufferWrite">xmlOutputBufferWrite</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteEscape">xmlOutputBufferWriteEscape</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
+</dd><dt>lower</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
</dd><dt>lowercase</dt><dd><a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
View
3  doc/APIchunk19.html
@@ -149,7 +149,8 @@
<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMaxDepth">xmlPatternMaxDepth</a><br />
-</dd><dt>means</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
+</dd><dt>means</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
View
3  doc/APIchunk21.html
@@ -190,6 +190,9 @@
<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
</dd><dt>operation</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
<a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderConstValue">xmlTextReaderConstValue</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathAddValues">xmlXPathAddValues</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
View
8 doc/APIchunk23.html
@@ -73,6 +73,7 @@
<a href="html/libxml-tree.html#xmlBufferAdd">xmlBufferAdd</a><br />
<a href="html/libxml-tree.html#xmlBufferAddHead">xmlBufferAddHead</a><br />
<a href="html/libxml-chvalid.html#xmlCharInRange">xmlCharInRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderNormalization">xmlTextReaderNormalization</a><br />
<a href="html/libxml-xpath.html#xmlXPathNodeSetItem">xmlXPathNodeSetItem</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
@@ -328,6 +329,9 @@
</dd><dt>release</dt><dd><a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
<a href="html/libxml-parser.html#xmlClearParserCtxt">xmlClearParserCtxt</a><br />
<a href="html/libxml-parserInternals.html#xmlDecodeEntities">xmlDecodeEntities</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
</dd><dt>releases</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderClose">xmlTextReaderClose</a><br />
</dd><dt>reliable</dt><dd><a href="html/libxml-xmlsave.html#xmlSaveToFilename">xmlSaveToFilename</a><br />
@@ -379,6 +383,8 @@
</dd><dt>removing</dt><dd><a href="html/libxml-catalog.html#xmlLoadSGMLSuperCatalog">xmlLoadSGMLSuperCatalog</a><br />
</dd><dt>rename</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
</dd><dt>repeat</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
+</dd><dt>repeated</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+</dd><dt>repetition</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
</dd><dt>replace</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a><br />
<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
@@ -564,6 +570,8 @@
</dd><dt>rewrite</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
</dd><dt>right</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCounterTrans">xmlAutomataNewCounterTrans</a><br />
<a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
<a href="html/libxml-tree.html#xmlSetListDoc">xmlSetListDoc</a><br />
<a href="html/libxml-tree.html#xmlSetTreeDoc">xmlSetTreeDoc</a><br />
View
1  doc/APIchunk24.html
@@ -192,6 +192,7 @@
<a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
<a href="html/libxml-parser.html#xmlClearNodeInfoSeq">xmlClearNodeInfoSeq</a><br />
<a href="html/libxml-parserInternals.html#xmlCurrentChar">xmlCurrentChar</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
View
2  doc/APIchunk25.html
@@ -139,6 +139,8 @@
<a href="html/libxml-xpathInternals.html#xmlXPathValueFlipSign">xmlXPathValueFlipSign</a><br />
</dd><dt>them</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a><br />
<a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
View
6 doc/APIchunk26.html
@@ -89,6 +89,9 @@
<a href="html/libxml-xmlunicode.html#xmlUCSIsCat">xmlUCSIsCat</a><br />
</dd><dt>unless</dt><dd><a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
<a href="html/libxml-HTMLparser.html#htmlSAXParseFile">htmlSAXParseFile</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
@@ -172,7 +175,8 @@
<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
</dd><dt>upon</dt><dd><a href="html/libxml-SAX.html#checkNamespace">checkNamespace</a><br />
<a href="html/libxml-xlink.html#xlinkNodeDetectFunc">xlinkNodeDetectFunc</a><br />
-</dd><dt>upper</dt><dd><a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
+</dd><dt>upper</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-valid.html#xmlIsRef">xmlIsRef</a><br />
</dd><dt>uri</dt><dd><a href="html/libxml-xmlIO.html#xmlNormalizeWindowsPath">xmlNormalizeWindowsPath</a><br />
</dd><dt>usage</dt><dd><a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
View
3  doc/APIchunk4.html
@@ -298,6 +298,9 @@
<a href="html/libxml-tree.html#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a><br />
<a href="html/libxml-tree.html#xmlDocDumpMemoryEnc">xmlDocDumpMemoryEnc</a><br />
<a href="html/libxml-tree.html#xmlDocFormatDump">xmlDocFormatDump</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
View
4 doc/APIconstructors.html
@@ -327,6 +327,10 @@
<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
</p><h2>Type xmlExpCtxtPtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
</p><h2>Type xmlExpNodePtr:</h2><p><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
</p><h2>Type xmlExternalEntityLoader:</h2><p><a href="html/libxml-parser.html#xmlGetExternalEntityLoader">xmlGetExternalEntityLoader</a><br />
View
4 doc/APIfiles.html
@@ -2673,7 +2673,11 @@
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
View
8 doc/APIfunctions.html
@@ -221,6 +221,7 @@
<a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
<a href="html/libxml-entities.html#xmlEncodeEntitiesReentrant">xmlEncodeEntitiesReentrant</a><br />
<a href="html/libxml-entities.html#xmlEncodeSpecialChars">xmlEncodeSpecialChars</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
<a href="html/libxml-entities.html#xmlGetDocEntity">xmlGetDocEntity</a><br />
<a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
@@ -1268,6 +1269,10 @@
<a href="html/libxml-xmlregexp.html#xmlExpFreeCtxt">xmlExpFreeCtxt</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpGetLanguage">xmlExpGetLanguage</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
@@ -1278,6 +1283,9 @@
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpRef">xmlExpRef</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpStringDerive">xmlExpStringDerive</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpSubsume">xmlExpSubsume</a><br />
View
4 doc/APIsymbols.html
@@ -1887,7 +1887,11 @@
<a href="html/libxml-xmlregexp.html#xmlExpGetStart">xmlExpGetStart</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpIsNillable">xmlExpIsNillable</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpMaxToken">xmlExpMaxToken</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewAtom">xmlExpNewAtom</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
+<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNode">xmlExpNode</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNodeType">xmlExpNodeType</a><br />
View
16 doc/html/libxml-xmlregexp.html
@@ -33,7 +33,11 @@
<pre class="programlisting">int <a href="#xmlExpGetStart">xmlExpGetStart</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** list, <br /> int len)</pre>
<pre class="programlisting">int <a href="#xmlExpIsNillable">xmlExpIsNillable</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
<pre class="programlisting">int <a href="#xmlExpMaxToken">xmlExpMaxToken</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewAtom">xmlExpNewAtom</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)</pre>
<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> <a href="#xmlExpNewCtxt">xmlExpNewCtxt</a> (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewOr">xmlExpNewOr</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewRange">xmlExpNewRange</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)</pre>
+<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpNewSeq">xmlExpNewSeq</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)</pre>
<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpParse">xmlExpParse</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const char * expr)</pre>
<pre class="programlisting">void <a href="#xmlExpRef">xmlExpRef</a> (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)</pre>
<pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> <a href="#xmlExpStringDerive">xmlExpStringDerive</a> (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> int len)</pre>
@@ -89,9 +93,17 @@
</pre><p>Finds if the expression is nillable, i.e. if it accepts the empty sequqnce</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>exp</tt></i>:</span></td><td>the expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if nillable, 0 if not and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpMaxToken" id="xmlExpMaxToken"></a>Function: xmlExpMaxToken</h3><pre class="programlisting">int xmlExpMaxToken (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> expr)<br />
</pre><p>Indicate the maximum number of input a expression can accept</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>a compiled expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the maximum length or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>a compiled expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the maximum length or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewAtom" id="xmlExpNewAtom"></a>Function: xmlExpNewAtom</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewAtom (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Get the atom associated to this name from that context</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name lenght in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpParse" id="xmlExpParse"></a>Function: xmlExpParse</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpParse (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const char * expr)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewRange (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)<br />
+</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>subset</tt></i>:</span></td><td>the expression to be repeated</td></tr><tr><td><span class="term"><i><tt>min</tt></i>:</span></td><td>the lower bound for the repetition</td></tr><tr><td><span class="term"><i><tt>max</tt></i>:</span></td><td>the upper bound for the repetition, -1 means infinite</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewSeq" id="xmlExpNewSeq"></a>Function: xmlExpNewSeq</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewSeq (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+</pre><p>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpParse" id="xmlExpParse"></a>Function: xmlExpParse</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpParse (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> const char * expr)<br />
</pre><p>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expressions context</td></tr><tr><td><span class="term"><i><tt>expr</tt></i>:</span></td><td>the 0 terminated string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new expression or NULL in case of failure</td></tr></tbody></table></div><h3><a name="xmlExpRef" id="xmlExpRef"></a>Function: xmlExpRef</h3><pre class="programlisting">void xmlExpRef (<a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> exp)<br />
</pre><p>Increase the <a href="libxml-SAX.html#reference">reference</a> count of the expression</p>
View
41 doc/libxml2-api.xml
@@ -2852,6 +2852,7 @@
<exports symbol='emptyExp' type='variable'/>
<exports symbol='xmlRegExecCallbacks' type='function'/>
<exports symbol='xmlRegNewExecCtxt' type='function'/>
+ <exports symbol='xmlExpNewOr' type='function'/>
<exports symbol='xmlRegFreeRegexp' type='function'/>
<exports symbol='xmlExpRef' type='function'/>
<exports symbol='xmlRegexpIsDeterminist' type='function'/>
@@ -2865,17 +2866,20 @@
<exports symbol='xmlExpIsNillable' type='function'/>
<exports symbol='xmlExpFreeCtxt' type='function'/>
<exports symbol='xmlExpDump' type='function'/>
+ <exports symbol='xmlExpNewSeq' type='function'/>
<exports symbol='xmlExpFree' type='function'/>
+ <exports symbol='xmlExpNewRange' type='function'/>
<exports symbol='xmlRegexpCompile' type='function'/>
+ <exports symbol='xmlExpNewAtom' type='function'/>
<exports symbol='xmlRegexpExec' type='function'/>
- <exports symbol='xmlExpMaxToken' type='function'/>
+ <exports symbol='xmlRegExecPushString' type='function'/>
<exports symbol='xmlExpGetStart' type='function'/>
<exports symbol='xmlExpParse' type='function'/>
<exports symbol='xmlExpNewCtxt' type='function'/>
<exports symbol='xmlExpGetLanguage' type='function'/>
<exports symbol='xmlExpStringDerive' type='function'/>
<exports symbol='xmlExpCtxtNbNodes' type='function'/>
- <exports symbol='xmlRegExecPushString' type='function'/>
+ <exports symbol='xmlExpMaxToken' type='function'/>
<exports symbol='xmlRegexpPrint' type='function'/>
</file>
<file name='xmlsave'>
@@ -9315,6 +9319,14 @@ actually an xmlCharEncoding'/>
<return type='int' info='the maximum length or -1 in case of error'/>
<arg name='expr' type='xmlExpNodePtr' info='a compiled expression'/>
</function>
+ <function name='xmlExpNewAtom' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to this name from that context</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='name' type='const xmlChar *' info='the atom name'/>
+ <arg name='len' type='int' info='the atom name lenght in byte (or -1);'/>
+ </function>
<function name='xmlExpNewCtxt' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
<info>Creates a new context for manipulating expressions</info>
@@ -9322,6 +9334,31 @@ actually an xmlCharEncoding'/>
<arg name='maxNodes' type='int' info='the maximum number of nodes'/>
<arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
</function>
+ <function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+ <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+ </function>
+ <function name='xmlExpNewRange' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='subset' type='xmlExpNodePtr' info='the expression to be repeated'/>
+ <arg name='min' type='int' info='the lower bound for the repetition'/>
+ <arg name='max' type='int' info='the upper bound for the repetition, -1 means infinite'/>
+ </function>
+ <function name='xmlExpNewSeq' file='xmlregexp' module='xmlregexp'>
+ <cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
+ <info>Get the atom associated to the sequence @left , @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</info>
+ <return type='xmlExpNodePtr' info='the node or NULL in case of error'/>
+ <arg name='ctxt' type='xmlExpCtxtPtr' info='the expression context'/>
+ <arg name='left' type='xmlExpNodePtr' info='left expression'/>
+ <arg name='right' type='xmlExpNodePtr' info='right expression'/>
+ </function>
<function name='xmlExpParse' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) &amp;&amp; defined(LIBXML_EXPR_ENABLED)</cond>
<info>Minimal parser for regexps, it understand the following constructs - string terminals - choice operator | - sequence operator , - subexpressions (...) - usual cardinality operators + * and ? - finite sequences { min, max } - infinite sequences { min, * } There is minimal checkings made especially no checking on strings values</info>
View
91 doc/libxml2-refs.xml
@@ -1881,7 +1881,11 @@
<reference name='xmlExpGetStart' href='html/libxml-xmlregexp.html#xmlExpGetStart'/>
<reference name='xmlExpIsNillable' href='html/libxml-xmlregexp.html#xmlExpIsNillable'/>
<reference name='xmlExpMaxToken' href='html/libxml-xmlregexp.html#xmlExpMaxToken'/>
+ <reference name='xmlExpNewAtom' href='html/libxml-xmlregexp.html#xmlExpNewAtom'/>
<reference name='xmlExpNewCtxt' href='html/libxml-xmlregexp.html#xmlExpNewCtxt'/>
+ <reference name='xmlExpNewOr' href='html/libxml-xmlregexp.html#xmlExpNewOr'/>
+ <reference name='xmlExpNewRange' href='html/libxml-xmlregexp.html#xmlExpNewRange'/>
+ <reference name='xmlExpNewSeq' href='html/libxml-xmlregexp.html#xmlExpNewSeq'/>
<reference name='xmlExpNode' href='html/libxml-xmlregexp.html#xmlExpNode'/>
<reference name='xmlExpNodePtr' href='html/libxml-xmlregexp.html#xmlExpNodePtr'/>
<reference name='xmlExpNodeType' href='html/libxml-xmlregexp.html#xmlExpNodeType'/>
@@ -5346,7 +5350,11 @@
<ref name='xmlExpGetStart'/>
<ref name='xmlExpIsNillable'/>
<ref name='xmlExpMaxToken'/>
+ <ref name='xmlExpNewAtom'/>
<ref name='xmlExpNewCtxt'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpNode'/>
<ref name='xmlExpNodePtr'/>
<ref name='xmlExpNodeType'/>
@@ -7280,6 +7288,10 @@
</type>
<type name='xmlExpNodePtr'>
<ref name='xmlExpExpDerive'/>
+ <ref name='xmlExpNewAtom'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpParse'/>
<ref name='xmlExpStringDerive'/>
</type>
@@ -7876,6 +7888,7 @@
<ref name='xmlEncodeEntities'/>
<ref name='xmlEncodeEntitiesReentrant'/>
<ref name='xmlEncodeSpecialChars'/>
+ <ref name='xmlExpNewAtom'/>
<ref name='xmlExpStringDerive'/>
<ref name='xmlGetDocEntity'/>
<ref name='xmlGetDtdAttrDesc'/>
@@ -9063,6 +9076,10 @@
<ref name='xmlExpFreeCtxt'/>
<ref name='xmlExpGetLanguage'/>
<ref name='xmlExpGetStart'/>
+ <ref name='xmlExpNewAtom'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpParse'/>
<ref name='xmlExpStringDerive'/>
<ref name='xmlExpSubsume'/>
@@ -9075,6 +9092,9 @@
<ref name='xmlExpGetStart'/>
<ref name='xmlExpIsNillable'/>
<ref name='xmlExpMaxToken'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpRef'/>
<ref name='xmlExpStringDerive'/>
<ref name='xmlExpSubsume'/>
@@ -13020,7 +13040,11 @@
<ref name='xmlExpGetStart'/>
<ref name='xmlExpIsNillable'/>
<ref name='xmlExpMaxToken'/>
+ <ref name='xmlExpNewAtom'/>
<ref name='xmlExpNewCtxt'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpNode'/>
<ref name='xmlExpNodePtr'/>
<ref name='xmlExpNodeType'/>
@@ -16193,6 +16217,9 @@
<ref name='xmlDocDumpFormatMemoryEnc'/>
<ref name='xmlDocDumpMemoryEnc'/>
<ref name='xmlDocFormatDump'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlHasNsProp'/>
<ref name='xmlNanoHTTPContentLength'/>
<ref name='xmlNodeDump'/>
@@ -18731,6 +18758,12 @@
<word name='assure'>
<ref name='xmlGetUTF8Char'/>
</word>
+ <word name='atom'>
+ <ref name='xmlExpNewAtom'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
+ </word>
<word name='atomic'>
<ref name='xmlGcMemGet'/>
<ref name='xmlGcMemSetup'/>
@@ -19018,6 +19051,9 @@
<ref name='xmlXPathCompareValues'/>
<ref name='xmlXPathIntersection'/>
</word>
+ <word name='bound'>
+ <ref name='xmlExpNewRange'/>
+ </word>
<word name='boundaries'>
<ref name='_xmlParserCtxt'/>
<ref name='xmlSearchNs'/>
@@ -19435,6 +19471,7 @@
<ref name='xmlValidGetValidElements'/>
</word>
<word name='choice'>
+ <ref name='xmlExpNewOr'/>
<ref name='xmlExpParse'/>
<ref name='xmlParseElementChildrenContentDecl'/>
</word>
@@ -19976,6 +20013,9 @@
<ref name='isolat1ToUTF8'/>
<ref name='xmlCharEncodingInputFunc'/>
<ref name='xmlCharEncodingOutputFunc'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlGetUTF8Char'/>
<ref name='xmlParserInputBufferRead'/>
<ref name='xmlSchemaNewNOTATIONValue'/>
@@ -20294,6 +20334,11 @@
<ref name='xmlXPathIsInf'/>
<ref name='xmlXPathIsNaN'/>
</word>
+ <word name='ctxt'>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
+ </word>
<word name='ctxt-'>
<ref name='docbFreeParserCtxt'/>
<ref name='htmlFreeParserCtxt'/>
@@ -21541,6 +21586,9 @@
</word>
<word name='even'>
<ref name='_xmlParserInput'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlNodeGetBase'/>
<ref name='xmlParseBalancedChunkMemoryRecover'/>
<ref name='xmlTextWriterFullEndElement'/>
@@ -23026,6 +23074,7 @@
</word>
<word name='infinite'>
<ref name='xmlExpExpDerive'/>
+ <ref name='xmlExpNewRange'/>
<ref name='xmlExpParse'/>
</word>
<word name='infinity'>
@@ -23459,6 +23508,9 @@
</letter>
<letter name='k'>
<word name='keep'>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlParseURIRaw'/>
<ref name='xmlParserInputGrow'/>
<ref name='xmlSubstituteEntitiesDefault'/>
@@ -23596,6 +23648,8 @@
<ref name='xmlXPathStringFunction'/>
</word>
<word name='left'>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlTextReaderGetRemainder'/>
</word>
<word name='legacy'>
@@ -23621,6 +23675,7 @@
<word name='lenght'>
<ref name='xmlExpGetLanguage'/>
<ref name='xmlExpGetStart'/>
+ <ref name='xmlExpNewAtom'/>
<ref name='xmlRelaxNGValidatePushCData'/>
<ref name='xmlSplitQName3'/>
<ref name='xmlValidatePushCData'/>
@@ -23938,6 +23993,9 @@
<ref name='xmlOutputBufferWriteEscape'/>
<ref name='xmlOutputBufferWriteString'/>
</word>
+ <word name='lower'>
+ <ref name='xmlExpNewRange'/>
+ </word>
<word name='lowercase'>
<ref name='htmlTagLookup'/>
<ref name='xmlIsRef'/>
@@ -24125,6 +24183,7 @@
<ref name='xmlPatternMaxDepth'/>
</word>
<word name='means'>
+ <ref name='xmlExpNewRange'/>
<ref name='xmlSetGenericErrorFunc'/>
<ref name='xmlSetStructuredErrorFunc'/>
<ref name='xmlStreamPush'/>
@@ -25022,6 +25081,9 @@
<word name='operation'>
<ref name='xmlBuildRelativeURI'/>
<ref name='xmlCatalogSetDebug'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlTextReaderConstValue'/>
<ref name='xmlXPathAddValues'/>
<ref name='xmlXPathCompareValues'/>
@@ -26054,6 +26116,7 @@
<ref name='xmlBufferAdd'/>
<ref name='xmlBufferAddHead'/>
<ref name='xmlCharInRange'/>
+ <ref name='xmlExpNewRange'/>
<ref name='xmlTextReaderNormalization'/>
<ref name='xmlXPathNodeSetItem'/>
<ref name='xmlXPtrLocationSetAdd'/>
@@ -26435,6 +26498,9 @@
<ref name='xmlClearNodeInfoSeq'/>
<ref name='xmlClearParserCtxt'/>
<ref name='xmlDecodeEntities'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlUnlockLibrary'/>
</word>
<word name='releases'>
@@ -26515,6 +26581,12 @@
<word name='repeat'>
<ref name='xmlXPathAxisFunc'/>
</word>
+ <word name='repeated'>
+ <ref name='xmlExpNewRange'/>
+ </word>
+ <word name='repetition'>
+ <ref name='xmlExpNewRange'/>
+ </word>
<word name='replace'>
<ref name='XML_SCHEMAS_FACET_REPLACE'/>
<ref name='XML_SCHEMAS_TYPE_WHITESPACE_REPLACE'/>
@@ -26793,6 +26865,8 @@
<word name='right'>
<ref name='xmlAutomataNewCounterTrans'/>
<ref name='xmlCheckFilename'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlParseCharData'/>
<ref name='xmlSetListDoc'/>
<ref name='xmlSetTreeDoc'/>
@@ -27095,6 +27169,7 @@
<ref name='xmlCharEncOutFunc'/>
<ref name='xmlClearNodeInfoSeq'/>
<ref name='xmlCurrentChar'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlExpParse'/>
<ref name='xmlGetUTF8Char'/>
<ref name='xmlInitNodeInfoSeq'/>
@@ -28256,6 +28331,8 @@
<word name='them'>
<ref name='xmlExpGetLanguage'/>
<ref name='xmlExpGetStart'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlNanoFTPRead'/>
<ref name='xmlNanoHTTPRead'/>
<ref name='xmlParseAttValue'/>
@@ -28727,6 +28804,9 @@
<word name='unless'>
<ref name='htmlSAXParseDoc'/>
<ref name='htmlSAXParseFile'/>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
<ref name='xmlGetNoNsProp'/>
<ref name='xmlGetNsProp'/>
<ref name='xmlGetProp'/>
@@ -28846,6 +28926,7 @@
<ref name='xlinkNodeDetectFunc'/>
</word>
<word name='upper'>
+ <ref name='xmlExpNewRange'/>
<ref name='xmlIsRef'/>
</word>
<word name='uri'>
@@ -29641,6 +29722,16 @@
<ref name='xmlCopyEnumeration'/>
<ref name='xmlCreateEnumeration'/>
</word>
+ <word name='xmlExpFree'>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
+ </word>
+ <word name='xmlExpRef'>
+ <ref name='xmlExpNewOr'/>
+ <ref name='xmlExpNewRange'/>
+ <ref name='xmlExpNewSeq'/>
+ </word>
<word name='xmlExternalEntityLoader'>
<ref name='xmlGetExternalEntityLoader'/>
</word>
View
48 elfgcchack.h
@@ -3229,6 +3229,18 @@ extern __typeof (xmlExpMaxToken) xmlExpMaxToken__internal_alias __attribute((vis
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
+#undef xmlExpNewAtom
+extern __typeof (xmlExpNewAtom) xmlExpNewAtom __attribute((alias("xmlExpNewAtom__internal_alias")));
+#else
+#ifndef xmlExpNewAtom
+extern __typeof (xmlExpNewAtom) xmlExpNewAtom__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewAtom xmlExpNewAtom__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
#undef xmlExpNewCtxt
extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt __attribute((alias("xmlExpNewCtxt__internal_alias")));
#else
@@ -3241,6 +3253,42 @@ extern __typeof (xmlExpNewCtxt) xmlExpNewCtxt__internal_alias __attribute((visib
#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
#ifdef bottom_xmlregexp
+#undef xmlExpNewOr
+extern __typeof (xmlExpNewOr) xmlExpNewOr __attribute((alias("xmlExpNewOr__internal_alias")));
+#else
+#ifndef xmlExpNewOr
+extern __typeof (xmlExpNewOr) xmlExpNewOr__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewOr xmlExpNewOr__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewRange
+extern __typeof (xmlExpNewRange) xmlExpNewRange __attribute((alias("xmlExpNewRange__internal_alias")));
+#else
+#ifndef xmlExpNewRange
+extern __typeof (xmlExpNewRange) xmlExpNewRange__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewRange xmlExpNewRange__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
+#undef xmlExpNewSeq
+extern __typeof (xmlExpNewSeq) xmlExpNewSeq __attribute((alias("xmlExpNewSeq__internal_alias")));
+#else
+#ifndef xmlExpNewSeq
+extern __typeof (xmlExpNewSeq) xmlExpNewSeq__internal_alias __attribute((visibility("hidden")));
+#define xmlExpNewSeq xmlExpNewSeq__internal_alias
+#endif
+#endif
+#endif
+
+#if defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)
+#ifdef bottom_xmlregexp
#undef xmlExpParse
extern __typeof (xmlExpParse) xmlExpParse __attribute((alias("xmlExpParse__internal_alias")));
#else
View
17 include/libxml/xmlregexp.h
@@ -156,6 +156,23 @@ XMLPUBFUN void XMLCALL
XMLPUBFUN xmlExpNodePtr XMLCALL
xmlExpParse (xmlExpCtxtPtr ctxt,
const char *expr);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewAtom (xmlExpCtxtPtr ctxt,
+ const xmlChar *name,
+ int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewOr (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewSeq (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewRange (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr subset,
+ int min,
+ int max);
/*
* The really interesting APIs
*/
View
2  result/expr/base
@@ -82,4 +82,4 @@ Subexp: a{0,100},(a|c) => accept, Ok
Subexp: a{0,101},(a|c) => reject, Ok
Expression: (a, ((b, c, d){0,5}, e{0,1}){0,4}, f)
Subexp: (a, b, (c, d, b){2,3}, c, d, e, f) => accept, Ok
-Ops: 0 nodes, 205 cons
+Ops: 0 nodes, 221 cons
View
2  schematron.c
@@ -1724,4 +1724,6 @@ main(void)
return (0);
}
#endif
+#define bottom_schematron
+#include "elfgcchack.h"
#endif /* LIBXML_SCHEMATRON_ENABLED */
View
46 testapi.c
@@ -32205,6 +32205,16 @@ test_xmlExpMaxToken(void) {
static int
+test_xmlExpNewAtom(void) {
+ int test_ret = 0;
+
+
+ /* missing type support */
+ return(test_ret);
+}
+
+
+static int
test_xmlExpNewCtxt(void) {
int test_ret = 0;
@@ -32215,6 +32225,36 @@ test_xmlExpNewCtxt(void) {
static int
+test_xmlExpNewOr(void) {
+ int test_ret = 0;
+
+
+ /* missing type support */
+ return(test_ret);
+}
+
+
+static int
+test_xmlExpNewRange(void) {
+ int test_ret = 0;
+
+
+ /* missing type support */
+ return(test_ret);
+}
+
+
+static int
+test_xmlExpNewSeq(void) {
+ int test_ret = 0;
+
+
+ /* missing type support */
+ return(test_ret);
+}
+
+
+static int
test_xmlExpParse(void) {
int test_ret = 0;
@@ -32705,7 +32745,7 @@ static int
test_xmlregexp(void) {
int test_ret = 0;
- if (quiet == 0) printf("Testing xmlregexp : 16 of 26 functions ...\n");
+ if (quiet == 0) printf("Testing xmlregexp : 16 of 30 functions ...\n");
test_ret += test_xmlExpCtxtNbCons();
test_ret += test_xmlExpCtxtNbNodes();
test_ret += test_xmlExpDump();
@@ -32714,7 +32754,11 @@ test_xmlregexp(void) {
test_ret += test_xmlExpGetStart();
test_ret += test_xmlExpIsNillable();
test_ret += test_xmlExpMaxToken();
+ test_ret += test_xmlExpNewAtom();
test_ret += test_xmlExpNewCtxt();
+ test_ret += test_xmlExpNewOr();
+ test_ret += test_xmlExpNewRange();
+ test_ret += test_xmlExpNewSeq();
test_ret += test_xmlExpParse();
test_ret += test_xmlExpRef();
test_ret += test_xmlExpStringDerive();
View
12 win32/libxml2.def.src
@@ -815,9 +815,21 @@ xmlExpIsNillable
xmlExpMaxToken
#endif
#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewAtom
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
xmlExpNewCtxt
#endif
#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewOr
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewRange
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
+xmlExpNewSeq
+#endif
+#ifdef LIBXML_REGEXP_ENABLED
xmlExpParse
#endif
#ifdef LIBXML_REGEXP_ENABLED
View
112 xmlregexp.c
@@ -5957,13 +5957,6 @@ xmlExpFree(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp) {
if ((exp == NULL) || (exp == forbiddenExp) || (exp == emptyExp))
return;
exp->ref--;
-#if 0
- if (exp->ref == 0) {
- printf("Freeing "); PRINT_EXP(exp)
- } else {
- printf("Dec to %d ", exp->ref); PRINT_EXP(exp)
- }
-#endif
if (exp->ref == 0) {
unsigned short key;
@@ -6007,6 +6000,97 @@ xmlExpRef(xmlExpNodePtr exp) {
exp->ref++;
}
+/**
+ * xmlExpNewAtom:
+ * @ctxt: the expression context
+ * @name: the atom name
+ * @len: the atom name lenght in byte (or -1);
+ *
+ * Get the atom associated to this name from that context
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewAtom(xmlExpCtxtPtr ctxt, const xmlChar *name, int len) {
+ if ((ctxt == NULL) || (name == NULL))
+ return(NULL);
+ name = xmlDictLookup(ctxt->dict, name, len);
+ if (name == NULL)
+ return(NULL);
+ return(xmlExpHashGetEntry(ctxt, XML_EXP_ATOM, NULL, NULL, name, 0, 0));
+}
+
+/**
+ * xmlExpNewOr:
+ * @ctxt: the expression context
+ * @left: left expression
+ * @right: right expression
+ *
+ * Get the atom associated to the choice @left | @right
+ * Note that @left and @right are consumed in the operation, to keep
+ * an handle on them use xmlExpRef() and use xmlExpFree() to release them,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewOr(xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right) {
+ if ((ctxt == NULL) || (left == NULL) || (right == NULL)) {
+ xmlExpFree(ctxt, left);
+ xmlExpFree(ctxt, right);
+ return(NULL);
+ }
+ return(xmlExpHashGetEntry(ctxt, XML_EXP_OR, left, right, NULL, 0, 0));
+}
+
+/**
+ * xmlExpNewSeq:
+ * @ctxt: the expression context
+ * @left: left expression
+ * @right: right expression
+ *
+ * Get the atom associated to the sequence @left , @right
+ * Note that @left and @right are consumed in the operation, to keep
+ * an handle on them use xmlExpRef() and use xmlExpFree() to release them,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewSeq(xmlExpCtxtPtr ctxt, xmlExpNodePtr left, xmlExpNodePtr right) {
+ if ((ctxt == NULL) || (left == NULL) || (right == NULL)) {
+ xmlExpFree(ctxt, left);
+ xmlExpFree(ctxt, right);
+ return(NULL);
+ }
+ return(xmlExpHashGetEntry(ctxt, XML_EXP_SEQ, left, right, NULL, 0, 0));
+}
+
+/**
+ * xmlExpNewRange:
+ * @ctxt: the expression context
+ * @subset: the expression to be repeated
+ * @min: the lower bound for the repetition
+ * @max: the upper bound for the repetition, -1 means infinite
+ *
+ * Get the atom associated to the range (@subset){@min, @max}
+ * Note that @subset is consumed in the operation, to keep
+ * an handle on it use xmlExpRef() and use xmlExpFree() to release it,
+ * this is true even in case of failure (unless ctxt == NULL).
+ *
+ * Returns the node or NULL in case of error
+ */
+xmlExpNodePtr
+xmlExpNewRange(xmlExpCtxtPtr ctxt, xmlExpNodePtr subset, int min, int max) {
+ if ((ctxt == NULL) || (subset == NULL) || (min < 0) || (max < -1) ||
+ ((max >= 0) && (min > max))) {
+ xmlExpFree(ctxt, subset);
+ return(NULL);
+ }
+ return(xmlExpHashGetEntry(ctxt, XML_EXP_COUNT, subset,
+ NULL, NULL, min, max));
+}
+
/************************************************************************
* *
* Public API for operations on expressions *
@@ -6748,6 +6832,16 @@ xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
}
}
+#ifdef DEBUG_DERIV
+ printf("Fallback to derivative\n");
+#endif
+ if (IS_NILLABLE(sub)) {
+ if (!(IS_NILLABLE(exp)))
+ return(forbiddenExp);
+ else
+ ret = emptyExp;
+ } else
+ ret = NULL;
/*
* here the structured derivation made no progress so
* we use the default token based derivation to force one more step
@@ -6761,9 +6855,6 @@ xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
return(NULL);
}
-#ifdef DEBUG_DERIV
- printf("Fallback to derivative\n");
-#endif
/*
* collect all the strings accepted by the subexpression on input
*/
@@ -6780,7 +6871,6 @@ xmlExpExpDeriveInt(xmlExpCtxtPtr ctxt, xmlExpNodePtr exp, xmlExpNodePtr sub) {
ctxt->tabSize *= 2;
len = xmlExpGetStartInt(ctxt, sub, tab, ctxt->tabSize, 0);
}
- ret = NULL;
for (i = 0;i < len;i++) {
tmp = xmlExpStringDeriveInt(ctxt, exp, tab[i]);
if ((tmp == NULL) || (tmp == forbiddenExp)) {
Please sign in to comment.
Something went wrong with that request. Please try again.