* Summary: regular expressions handling | |
* Description: basic API for libxml regular expressions handling used | |
* for XML Schemas and validation. | |
* | |
* Copy: See Copyright for the status of this software. | |
* | |
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. | |
/if not defined(XML_REGEXP_H__) | |
/define XML_REGEXP_H__ | |
/include "libxmlrpg/xmlversion" | |
/if defined(LIBXML_REGEXP_ENABLED) | |
/include "libxmlrpg/xmlTypesC" | |
* xmlRegexpPtr: | |
* | |
* A libxml regular expression, they can actually be far more complex | |
* thank the POSIX regex expressions. | |
d xmlRegexpPtr s * based(######typedef######) | |
* xmlRegExecCtxtPtr: | |
* | |
* A libxml progressive regular expression evaluation context | |
d xmlRegExecCtxtPtr... | |
d s * based(######typedef######) | |
/include "libxmlrpg/tree" | |
/include "libxmlrpg/dict" | |
* The POSIX like API | |
d xmlRegexpCompile... | |
d pr extproc('xmlRegexpCompile') | |
d like(xmlRegexpPtr) | |
d regexp * value options(*string) const xmlChar * | |
d xmlRegFreeRegexp... | |
d pr extproc('xmlRegFreeRegexp') | |
d regexp value like(xmlRegexpPtr) | |
d xmlRegexpExec pr extproc('xmlRegexpExec') | |
d like(xmlCint) | |
d comp value like(xmlRegexpPtr) | |
d value * value options(*string) const xmlChar * | |
d xmlRegexpPrint pr extproc('xmlRegexpPrint') | |
d output * value FILE * | |
d regexp value like(xmlRegexpPtr) | |
d xmlRegexpIsDeterminist... | |
d pr extproc('xmlRegexpIsDeterminist') | |
d like(xmlCint) | |
d comp value like(xmlRegexpPtr) | |
* xmlRegExecCallbacks: | |
* @exec: the regular expression context | |
* @token: the current token string | |
* @transdata: transition data | |
* @inputdata: input data | |
* | |
* Callback function when doing a transition in the automata | |
d xmlRegExecCallbacks... | |
d s * based(######typedef######) | |
d procptr | |
* The progressive API | |
d xmlRegNewExecCtxt... | |
d pr extproc('xmlRegNewExecCtxt') | |
d like(xmlRegExecCtxtPtr) | |
d comp value like(xmlRegexpPtr) | |
d callback value like(xmlRegExecCallbacks) | |
d data * value void * | |
d xmlRegFreeExecCtxt... | |
d pr extproc('xmlRegFreeExecCtxt') | |
d exec value like(xmlRegExecCtxtPtr) | |
d xmlRegExecPushString... | |
d pr extproc('xmlRegExecPushString') | |
d like(xmlCint) | |
d exec value like(xmlRegExecCtxtPtr) | |
d value * value options(*string) const xmlChar * | |
d data * value void * | |
d xmlRegExecPushString2... | |
d pr extproc('xmlRegExecPushString2') | |
d like(xmlCint) | |
d exec value like(xmlRegExecCtxtPtr) | |
d value * value options(*string) const xmlChar * | |
d value2 * value options(*string) const xmlChar * | |
d data * value void * | |
d xmlRegExecNextValues... | |
d pr extproc('xmlRegExecNextValues') | |
d like(xmlCint) | |
d exec value like(xmlRegExecCtxtPtr) | |
d nbval like(xmlCint) | |
d nbneg like(xmlCint) | |
d values * xmlChar * (*) | |
d terminal like(xmlCint) | |
d xmlRegExecErrInfo... | |
d pr extproc('xmlRegExecErrInfo') | |
d like(xmlCint) | |
d exec value like(xmlRegExecCtxtPtr) | |
d string * const xmlChar * (*) | |
d nbval like(xmlCint) | |
d nbneg like(xmlCint) | |
d values * xmlChar * (*) | |
d terminal like(xmlCint) | |
/if defined(LIBXML_EXPR_ENABLED) | |
* Formal regular expression handling | |
* Its goal is to do some formal work on content models | |
* expressions are used within a context | |
d xmlExpCtxtPtr s * based(######typedef######) | |
d xmlExpFreeCtxt pr extproc('xmlExpFreeCtxt') | |
d ctxt value like(xmlExpCtxtPtr) | |
d xmlExpNewCtxt pr extproc('xmlExpNewCtxt') | |
d like(xmlExpCtxtPtr) | |
d maxNodes value like(xmlCint) | |
d dict value like(xmlDictPtr) | |
d xmlExpCtxtNbNodes... | |
d pr extproc('xmlExpCtxtNbNodes') | |
d like(xmlCint) | |
d ctxt value like(xmlExpCtxtPtr) | |
d xmlExpCtxtNbCons... | |
d pr extproc('xmlExpCtxtNbCons') | |
d like(xmlCint) | |
d ctxt value like(xmlExpCtxtPtr) | |
* Expressions are trees but the tree is opaque | |
d xmlExpNodePtr s * based(######typedef######) | |
d xmlExpNodeType s based(######typedef######) | |
d like(xmlCenum) | |
d XML_EXP_EMPTY c 0 | |
d XML_EXP_FORBID... | |
d c 1 | |
d XML_EXP_ATOM c 2 | |
d XML_EXP_SEQ c 3 | |
d XML_EXP_OR c 4 | |
d XML_EXP_COUNT c 5 | |
* 2 core expressions shared by all for the empty language set | |
* and for the set with just the empty token | |
d forbiddenExp s import('forbiddenExp') | |
d like(xmlExpNodePtr) | |
d emptyExp s import('emptyExp') | |
d like(xmlExpNodePtr) | |
* Expressions are reference counted internally | |
d xmlExpFree pr extproc('xmlExpFree') | |
d expr value like(xmlExpNodePtr) | |
d xmlExpRef pr extproc('xmlExpRef') | |
d expr value like(xmlExpNodePtr) | |
* constructors can be either manual or from a string | |
d xmlExpParse pr extproc('xmlExpParse') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr * value options(*string) const char * | |
d xmlExpNewAtom pr extproc('xmlExpNewAtom') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d name * value options(*string) const xmlChar * | |
d len value like(xmlCint) | |
d xmlExpNewOr pr extproc('xmlExpNewOr') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d left value like(xmlExpNodePtr) | |
d right value like(xmlExpNodePtr) | |
d xmlExpNewSeq pr extproc('xmlExpNewSeq') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d left value like(xmlExpNodePtr) | |
d right value like(xmlExpNodePtr) | |
d xmlExpNewRange pr extproc('xmlExpNewRange') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d subset value like(xmlExpNodePtr) | |
d min value like(xmlCint) | |
d max value like(xmlCint) | |
* The really interesting APIs | |
d xmlExpIsNillable... | |
d pr extproc('xmlExpIsNillable') | |
d like(xmlCint) | |
d expr value like(xmlExpNodePtr) | |
d xmlExpMaxToken pr extproc('xmlExpMaxToken') | |
d like(xmlCint) | |
d expr value like(xmlExpNodePtr) | |
d xmlExpGetLanguage... | |
d pr extproc('xmlExpGetLanguage') | |
d like(xmlCint) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr value like(xmlExpNodePtr) | |
d langList * const xmlChar *(*) | |
d len value like(xmlCint) | |
d xmlExpGetStart pr extproc('xmlExpGetStart') | |
d like(xmlCint) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr value like(xmlExpNodePtr) | |
d tokList * const xmlChar *(*) | |
d len value like(xmlCint) | |
d xmlExpStringDerive... | |
d pr extproc('xmlExpStringDerive') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr value like(xmlExpNodePtr) | |
d str * value options(*string) const xmlChar * | |
d len value like(xmlCint) | |
d xmlExpExpDerive... | |
d pr extproc('xmlExpExpDerive') | |
d like(xmlExpNodePtr) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr value like(xmlExpNodePtr) | |
d sub value like(xmlExpNodePtr) | |
d xmlExpSubsume pr extproc('xmlExpSubsume') | |
d like(xmlCint) | |
d ctxt value like(xmlExpCtxtPtr) | |
d expr value like(xmlExpNodePtr) | |
d sub value like(xmlExpNodePtr) | |
d xmlExpDump pr extproc('xmlExpDump') | |
d buf value like(xmlBufferPtr) | |
d expr value like(xmlExpNodePtr) | |
/endif LIBXML_EXPR_ENABLED | |
/endif LIBXML_REGEXP_ENABLD | |
/endif XML_REGEXP_H__ |