mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-26 10:03:34 +03:00
263 lines
12 KiB
Plaintext
263 lines
12 KiB
Plaintext
* 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__
|