| /** |
| * @file |
| * |
| * @brief Regular expressions |
| * |
| * A regular expression engine used for DTD and XML Schema |
| * validation. |
| * |
| * @copyright See Copyright for the status of this software. |
| * |
| * @author Daniel Veillard |
| */ |
| |
| #ifndef __XML_REGEXP_H__ |
| #define __XML_REGEXP_H__ |
| |
| #include <stdio.h> |
| #include <libxml/xmlversion.h> |
| #include <libxml/xmlstring.h> |
| |
| #ifdef LIBXML_REGEXP_ENABLED |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * A libxml regular expression |
| */ |
| typedef struct _xmlRegexp xmlRegexp; |
| typedef xmlRegexp *xmlRegexpPtr; |
| |
| /** |
| * A libxml progressive regular expression evaluation context |
| */ |
| typedef struct _xmlRegExecCtxt xmlRegExecCtxt; |
| typedef xmlRegExecCtxt *xmlRegExecCtxtPtr; |
| |
| /* |
| * The POSIX like API |
| */ |
| XMLPUBFUN xmlRegexp * |
| xmlRegexpCompile (const xmlChar *regexp); |
| XMLPUBFUN void xmlRegFreeRegexp(xmlRegexp *regexp); |
| XMLPUBFUN int |
| xmlRegexpExec (xmlRegexp *comp, |
| const xmlChar *value); |
| XML_DEPRECATED |
| XMLPUBFUN void |
| xmlRegexpPrint (FILE *output, |
| xmlRegexp *regexp); |
| XMLPUBFUN int |
| xmlRegexpIsDeterminist(xmlRegexp *comp); |
| |
| /** |
| * Callback function when doing a transition in the automata |
| * |
| * @param exec the regular expression context |
| * @param token the current token string |
| * @param transdata transition data |
| * @param inputdata input data |
| */ |
| typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxt *exec, |
| const xmlChar *token, |
| void *transdata, |
| void *inputdata); |
| |
| /* |
| * The progressive API |
| */ |
| XML_DEPRECATED |
| XMLPUBFUN xmlRegExecCtxt * |
| xmlRegNewExecCtxt (xmlRegexp *comp, |
| xmlRegExecCallbacks callback, |
| void *data); |
| XML_DEPRECATED |
| XMLPUBFUN void |
| xmlRegFreeExecCtxt (xmlRegExecCtxt *exec); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlRegExecPushString(xmlRegExecCtxt *exec, |
| const xmlChar *value, |
| void *data); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlRegExecPushString2(xmlRegExecCtxt *exec, |
| const xmlChar *value, |
| const xmlChar *value2, |
| void *data); |
| |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlRegExecNextValues(xmlRegExecCtxt *exec, |
| int *nbval, |
| int *nbneg, |
| xmlChar **values, |
| int *terminal); |
| XML_DEPRECATED |
| XMLPUBFUN int |
| xmlRegExecErrInfo (xmlRegExecCtxt *exec, |
| const xmlChar **string, |
| int *nbval, |
| int *nbneg, |
| xmlChar **values, |
| int *terminal); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* LIBXML_REGEXP_ENABLED */ |
| |
| #endif /*__XML_REGEXP_H__ */ |