/* * 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: Daniel Veillard */ #ifndef __XML_REGEXP_H__ #define __XML_REGEXP_H__ #include <libxml/xmlversion.h> #ifdef LIBXML_REGEXP_ENABLED #ifdef __cplusplus extern "C" { #endif /** * xmlRegexpPtr: * * A libxml regular expression, they can actually be far more complex * thank the POSIX regex expressions. */ typedef struct _xmlRegexp xmlRegexp; typedef xmlRegexp *xmlRegexpPtr; /** * xmlRegExecCtxtPtr: * * A libxml progressive regular expression evaluation context */ typedef struct _xmlRegExecCtxt xmlRegExecCtxt; typedef xmlRegExecCtxt *xmlRegExecCtxtPtr; #ifdef __cplusplus } #endif #include <libxml/tree.h> #include <libxml/dict.h> #ifdef __cplusplus extern "C" { #endif /* * The POSIX like API */ XMLPUBFUN xmlRegexpPtr XMLCALL xmlRegexpCompile (const xmlChar *regexp); XMLPUBFUN void XMLCALL xmlRegFreeRegexp(xmlRegexpPtr regexp); XMLPUBFUN int XMLCALL xmlRegexpExec (xmlRegexpPtr comp, const xmlChar *value); XMLPUBFUN void XMLCALL xmlRegexpPrint (FILE *output, xmlRegexpPtr regexp); XMLPUBFUN int XMLCALL xmlRegexpIsDeterminist(xmlRegexpPtr comp); /** * 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 */ typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec, const xmlChar *token, void *transdata, void *inputdata); /* * The progressive API */ XMLPUBFUN xmlRegExecCtxtPtr XMLCALL xmlRegNewExecCtxt (xmlRegexpPtr comp, xmlRegExecCallbacks callback, void *data); XMLPUBFUN void XMLCALL xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec); XMLPUBFUN int XMLCALL xmlRegExecPushString(xmlRegExecCtxtPtr exec, const xmlChar *value, void *data); XMLPUBFUN int XMLCALL xmlRegExecPushString2(xmlRegExecCtxtPtr exec, const xmlChar *value, const xmlChar *value2, void *data); XMLPUBFUN int XMLCALL xmlRegExecNextValues(xmlRegExecCtxtPtr exec, int *nbval, int *nbneg, xmlChar **values, int *terminal); XMLPUBFUN int XMLCALL xmlRegExecErrInfo (xmlRegExecCtxtPtr exec, const xmlChar **string, int *nbval, int *nbneg, xmlChar **values, int *terminal); #ifdef LIBXML_EXPR_ENABLED /* * Formal regular expression handling * Its goal is to do some formal work on content models */ /* expressions are used within a context */ typedef struct _xmlExpCtxt xmlExpCtxt; typedef xmlExpCtxt *xmlExpCtxtPtr; XMLPUBFUN void XMLCALL xmlExpFreeCtxt (xmlExpCtxtPtr ctxt); XMLPUBFUN xmlExpCtxtPtr XMLCALL xmlExpNewCtxt (int maxNodes, xmlDictPtr dict); XMLPUBFUN int XMLCALL xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt); XMLPUBFUN int XMLCALL xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt); /* Expressions are trees but the tree is opaque */ typedef struct _xmlExpNode xmlExpNode; typedef xmlExpNode *xmlExpNodePtr; typedef enum { XML_EXP_EMPTY = 0, XML_EXP_FORBID = 1, XML_EXP_ATOM = 2, XML_EXP_SEQ = 3, XML_EXP_OR = 4, XML_EXP_COUNT = 5 } xmlExpNodeType; /* * 2 core expressions shared by all for the empty language set * and for the set with just the empty token */ XMLPUBVAR xmlExpNodePtr forbiddenExp; XMLPUBVAR xmlExpNodePtr emptyExp; /* * Expressions are reference counted internally */ XMLPUBFUN void XMLCALL xmlExpFree (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr); XMLPUBFUN void XMLCALL xmlExpRef (xmlExpNodePtr expr); /* * constructors can be either manual or from a string */ 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 */ XMLPUBFUN int XMLCALL xmlExpIsNillable(xmlExpNodePtr expr); XMLPUBFUN int XMLCALL xmlExpMaxToken (xmlExpNodePtr expr); XMLPUBFUN int XMLCALL xmlExpGetLanguage(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const xmlChar**langList, int len); XMLPUBFUN int XMLCALL xmlExpGetStart (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const xmlChar**tokList, int len); XMLPUBFUN xmlExpNodePtr XMLCALL xmlExpStringDerive(xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, const xmlChar *str, int len); XMLPUBFUN xmlExpNodePtr XMLCALL xmlExpExpDerive (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, xmlExpNodePtr sub); XMLPUBFUN int XMLCALL xmlExpSubsume (xmlExpCtxtPtr ctxt, xmlExpNodePtr expr, xmlExpNodePtr sub); XMLPUBFUN void XMLCALL xmlExpDump (xmlBufferPtr buf, xmlExpNodePtr expr); #endif /* LIBXML_EXPR_ENABLED */ #ifdef __cplusplus } #endif #endif /* LIBXML_REGEXP_ENABLED */ #endif /*__XML_REGEXP_H__ */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
DOCBparser.h | File | 3.08 KB | 0644 |
|
HTMLparser.h | File | 9.18 KB | 0644 |
|
HTMLtree.h | File | 3.56 KB | 0644 |
|
SAX.h | File | 4.24 KB | 0644 |
|
SAX2.h | File | 4.76 KB | 0644 |
|
c14n.h | File | 3.04 KB | 0644 |
|
catalog.h | File | 4.79 KB | 0644 |
|
chvalid.h | File | 5.04 KB | 0644 |
|
debugXML.h | File | 5.03 KB | 0644 |
|
dict.h | File | 1.8 KB | 0644 |
|
encoding.h | File | 8.11 KB | 0644 |
|
entities.h | File | 4.59 KB | 0644 |
|
globals.h | File | 14.31 KB | 0644 |
|
hash.h | File | 6.34 KB | 0644 |
|
list.h | File | 3.29 KB | 0644 |
|
nanoftp.h | File | 3.67 KB | 0644 |
|
nanohttp.h | File | 1.96 KB | 0644 |
|
parser.h | File | 38.79 KB | 0644 |
|
parserInternals.h | File | 17.01 KB | 0644 |
|
pattern.h | File | 2.53 KB | 0644 |
|
relaxng.h | File | 5.82 KB | 0644 |
|
schemasInternals.h | File | 25.41 KB | 0644 |
|
schematron.h | File | 4.27 KB | 0644 |
|
threads.h | File | 1.81 KB | 0644 |
|
tree.h | File | 37.03 KB | 0644 |
|
uri.h | File | 2.6 KB | 0644 |
|
valid.h | File | 13.3 KB | 0644 |
|
xinclude.h | File | 2.9 KB | 0644 |
|
xlink.h | File | 4.92 KB | 0644 |
|
xmlIO.h | File | 10.37 KB | 0644 |
|
xmlautomata.h | File | 3.86 KB | 0644 |
|
xmlerror.h | File | 35.96 KB | 0644 |
|
xmlexports.h | File | 3.83 KB | 0644 |
|
xmlmemory.h | File | 5.81 KB | 0644 |
|
xmlmodule.h | File | 1.14 KB | 0644 |
|
xmlreader.h | File | 12.31 KB | 0644 |
|
xmlregexp.h | File | 5.33 KB | 0644 |
|
xmlsave.h | File | 2.28 KB | 0644 |
|
xmlschemas.h | File | 6.9 KB | 0644 |
|
xmlschemastypes.h | File | 4.73 KB | 0644 |
|
xmlstring.h | File | 5.38 KB | 0644 |
|
xmlunicode.h | File | 9.76 KB | 0644 |
|
xmlversion.h | File | 7.93 KB | 0644 |
|
xmlwriter.h | File | 20.77 KB | 0644 |
|
xpath.h | File | 16.01 KB | 0644 |
|
xpathInternals.h | File | 18.9 KB | 0644 |
|
xpointer.h | File | 3.28 KB | 0644 |
|