xmlregexp.h

00001 /*
00002 
00003  * Summary: regular expressions handling
00004 
00005  * Description: basic API for libxml regular expressions handling used
00006 
00007  *              for XML Schemas and validation.
00008 
00009  *
00010 
00011  * Copy: See Copyright for the status of this software.
00012 
00013  *
00014 
00015  * Author: Daniel Veillard
00016 
00017  */
00018 
00019 
00020 
00021 #ifndef __XML_REGEXP_H__
00022 
00023 #define __XML_REGEXP_H__
00024 
00025 
00026 
00027 #include <libxml/xmlversion.h>
00028 
00029 
00030 
00031 #ifdef LIBXML_REGEXP_ENABLED
00032 
00033 
00034 
00035 #ifdef __cplusplus
00036 
00037 extern "C" {
00038 
00039 #endif
00040 
00041 
00042 
00055 typedef struct _xmlRegexp xmlRegexp;
00056 
00057 typedef xmlRegexp *xmlRegexpPtr;
00058 
00059 
00060 
00071 typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
00072 
00073 typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
00074 
00075 
00076 
00077 #ifdef __cplusplus
00078 
00079 }
00080 
00081 #endif 
00082 
00083 #include <libxml/tree.h>
00084 
00085 #ifdef __cplusplus
00086 
00087 extern "C" {
00088 
00089 #endif
00090 
00091 
00092 
00093 /*
00094 
00095  * The POSIX like API
00096 
00097  */
00098 
00099 XMLPUBFUN xmlRegexpPtr XMLCALL
00100 
00101                     xmlRegexpCompile    (const xmlChar *regexp);
00102 
00103 XMLPUBFUN void XMLCALL                   xmlRegFreeRegexp(xmlRegexpPtr regexp);
00104 
00105 XMLPUBFUN int XMLCALL                   
00106 
00107                     xmlRegexpExec       (xmlRegexpPtr comp,
00108 
00109                                          const xmlChar *value);
00110 
00111 XMLPUBFUN void XMLCALL                  
00112 
00113                     xmlRegexpPrint      (FILE *output,
00114 
00115                                          xmlRegexpPtr regexp);
00116 
00117 XMLPUBFUN int XMLCALL                   
00118 
00119                     xmlRegexpIsDeterminist(xmlRegexpPtr comp);
00120 
00121 
00122 
00123 /*
00124 
00125  * Callback function when doing a transition in the automata
00126 
00127  */
00128 
00129 typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
00130 
00131                                      const xmlChar *token,
00132 
00133                                      void *transdata,
00134 
00135                                      void *inputdata);
00136 
00137 
00138 
00139 /*
00140 
00141  * The progressive API
00142 
00143  */
00144 
00145 XMLPUBFUN xmlRegExecCtxtPtr XMLCALL     
00146 
00147                     xmlRegNewExecCtxt   (xmlRegexpPtr comp,
00148 
00149                                          xmlRegExecCallbacks callback,
00150 
00151                                          void *data);
00152 
00153 XMLPUBFUN void XMLCALL                  
00154 
00155                     xmlRegFreeExecCtxt  (xmlRegExecCtxtPtr exec);
00156 
00157 XMLPUBFUN int XMLCALL                   
00158 
00159                     xmlRegExecPushString(xmlRegExecCtxtPtr exec,
00160 
00161                                          const xmlChar *value,
00162 
00163                                          void *data);
00164 
00165 XMLPUBFUN int XMLCALL                   
00166 
00167                     xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
00168 
00169                                          const xmlChar *value,
00170 
00171                                          const xmlChar *value2,
00172 
00173                                          void *data);
00174 
00175 
00176 
00177 XMLPUBFUN int XMLCALL
00178 
00179                     xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
00180 
00181                                          int *nbval,
00182 
00183                                          int *nbneg,
00184 
00185                                          xmlChar **values,
00186 
00187                                          int *terminal);
00188 
00189 XMLPUBFUN int XMLCALL
00190 
00191                     xmlRegExecErrInfo   (xmlRegExecCtxtPtr exec,
00192 
00193                                          const xmlChar **string,
00194 
00195                                          int *nbval,
00196 
00197                                          int *nbneg,
00198 
00199                                          xmlChar **values,
00200 
00201                                          int *terminal);
00202 
00203 #ifdef __cplusplus
00204 
00205 }
00206 
00207 #endif 
00208 
00209 
00210 
00211 #endif /* LIBXML_REGEXP_ENABLED */
00212 
00213 
00214 
00215 #endif /*__XML_REGEXP_H__ */
00216 

Generated on Wed Jul 26 13:30:46 2006 for XSB by  doxygen 1.4.5