ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

xmlregexp.h
Go to the documentation of this file.
00001 /*
00002  * Summary: regular expressions handling
00003  * Description: basic API for libxml regular expressions handling used
00004  *              for XML Schemas and validation.
00005  *
00006  * Copy: See Copyright for the status of this software.
00007  *
00008  * Author: Daniel Veillard
00009  */
00010 
00011 #ifndef __XML_REGEXP_H__
00012 #define __XML_REGEXP_H__
00013 
00014 #include <libxml/xmlversion.h>
00015 
00016 #ifdef LIBXML_REGEXP_ENABLED
00017 
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021 
00028 typedef struct _xmlRegexp xmlRegexp;
00029 typedef xmlRegexp *xmlRegexpPtr;
00030 
00036 typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
00037 typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
00038 
00039 #ifdef __cplusplus
00040 }
00041 #endif
00042 #include <libxml/tree.h>
00043 #include <libxml/dict.h>
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047 
00048 /*
00049  * The POSIX like API
00050  */
00051 XMLPUBFUN xmlRegexpPtr XMLCALL
00052             xmlRegexpCompile    (const xmlChar *regexp);
00053 XMLPUBFUN void XMLCALL           xmlRegFreeRegexp(xmlRegexpPtr regexp);
00054 XMLPUBFUN int XMLCALL
00055             xmlRegexpExec   (xmlRegexpPtr comp,
00056                      const xmlChar *value);
00057 XMLPUBFUN void XMLCALL
00058             xmlRegexpPrint  (FILE *output,
00059                      xmlRegexpPtr regexp);
00060 XMLPUBFUN int XMLCALL
00061             xmlRegexpIsDeterminist(xmlRegexpPtr comp);
00062 
00072 typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
00073                                  const xmlChar *token,
00074                      void *transdata,
00075                      void *inputdata);
00076 
00077 /*
00078  * The progressive API
00079  */
00080 XMLPUBFUN xmlRegExecCtxtPtr XMLCALL
00081             xmlRegNewExecCtxt   (xmlRegexpPtr comp,
00082                      xmlRegExecCallbacks callback,
00083                      void *data);
00084 XMLPUBFUN void XMLCALL
00085             xmlRegFreeExecCtxt  (xmlRegExecCtxtPtr exec);
00086 XMLPUBFUN int XMLCALL
00087             xmlRegExecPushString(xmlRegExecCtxtPtr exec,
00088                      const xmlChar *value,
00089                      void *data);
00090 XMLPUBFUN int XMLCALL
00091             xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
00092                      const xmlChar *value,
00093                      const xmlChar *value2,
00094                      void *data);
00095 
00096 XMLPUBFUN int XMLCALL
00097             xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
00098                      int *nbval,
00099                      int *nbneg,
00100                      xmlChar **values,
00101                      int *terminal);
00102 XMLPUBFUN int XMLCALL
00103             xmlRegExecErrInfo   (xmlRegExecCtxtPtr exec,
00104                      const xmlChar **string,
00105                      int *nbval,
00106                      int *nbneg,
00107                      xmlChar **values,
00108                      int *terminal);
00109 #ifdef LIBXML_EXPR_ENABLED
00110 /*
00111  * Formal regular expression handling
00112  * Its goal is to do some formal work on content models
00113  */
00114 
00115 /* expressions are used within a context */
00116 typedef struct _xmlExpCtxt xmlExpCtxt;
00117 typedef xmlExpCtxt *xmlExpCtxtPtr;
00118 
00119 XMLPUBFUN void XMLCALL
00120             xmlExpFreeCtxt  (xmlExpCtxtPtr ctxt);
00121 XMLPUBFUN xmlExpCtxtPtr XMLCALL
00122             xmlExpNewCtxt   (int maxNodes,
00123                      xmlDictPtr dict);
00124 
00125 XMLPUBFUN int XMLCALL
00126             xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
00127 XMLPUBFUN int XMLCALL
00128             xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
00129 
00130 /* Expressions are trees but the tree is opaque */
00131 typedef struct _xmlExpNode xmlExpNode;
00132 typedef xmlExpNode *xmlExpNodePtr;
00133 
00134 typedef enum {
00135     XML_EXP_EMPTY = 0,
00136     XML_EXP_FORBID = 1,
00137     XML_EXP_ATOM = 2,
00138     XML_EXP_SEQ = 3,
00139     XML_EXP_OR = 4,
00140     XML_EXP_COUNT = 5
00141 } xmlExpNodeType;
00142 
00143 /*
00144  * 2 core expressions shared by all for the empty language set
00145  * and for the set with just the empty token
00146  */
00147 XMLPUBVAR xmlExpNodePtr forbiddenExp;
00148 XMLPUBVAR xmlExpNodePtr emptyExp;
00149 
00150 /*
00151  * Expressions are reference counted internally
00152  */
00153 XMLPUBFUN void XMLCALL
00154             xmlExpFree  (xmlExpCtxtPtr ctxt,
00155                      xmlExpNodePtr expr);
00156 XMLPUBFUN void XMLCALL
00157             xmlExpRef   (xmlExpNodePtr expr);
00158 
00159 /*
00160  * constructors can be either manual or from a string
00161  */
00162 XMLPUBFUN xmlExpNodePtr XMLCALL
00163             xmlExpParse (xmlExpCtxtPtr ctxt,
00164                      const char *expr);
00165 XMLPUBFUN xmlExpNodePtr XMLCALL
00166             xmlExpNewAtom   (xmlExpCtxtPtr ctxt,
00167                      const xmlChar *name,
00168                      int len);
00169 XMLPUBFUN xmlExpNodePtr XMLCALL
00170             xmlExpNewOr (xmlExpCtxtPtr ctxt,
00171                      xmlExpNodePtr left,
00172                      xmlExpNodePtr right);
00173 XMLPUBFUN xmlExpNodePtr XMLCALL
00174             xmlExpNewSeq    (xmlExpCtxtPtr ctxt,
00175                      xmlExpNodePtr left,
00176                      xmlExpNodePtr right);
00177 XMLPUBFUN xmlExpNodePtr XMLCALL
00178             xmlExpNewRange  (xmlExpCtxtPtr ctxt,
00179                      xmlExpNodePtr subset,
00180                      int min,
00181                      int max);
00182 /*
00183  * The really interesting APIs
00184  */
00185 XMLPUBFUN int XMLCALL
00186             xmlExpIsNillable(xmlExpNodePtr expr);
00187 XMLPUBFUN int XMLCALL
00188             xmlExpMaxToken  (xmlExpNodePtr expr);
00189 XMLPUBFUN int XMLCALL
00190             xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
00191                      xmlExpNodePtr expr,
00192                      const xmlChar**langList,
00193                      int len);
00194 XMLPUBFUN int XMLCALL
00195             xmlExpGetStart  (xmlExpCtxtPtr ctxt,
00196                      xmlExpNodePtr expr,
00197                      const xmlChar**tokList,
00198                      int len);
00199 XMLPUBFUN xmlExpNodePtr XMLCALL
00200             xmlExpStringDerive(xmlExpCtxtPtr ctxt,
00201                      xmlExpNodePtr expr,
00202                      const xmlChar *str,
00203                      int len);
00204 XMLPUBFUN xmlExpNodePtr XMLCALL
00205             xmlExpExpDerive (xmlExpCtxtPtr ctxt,
00206                      xmlExpNodePtr expr,
00207                      xmlExpNodePtr sub);
00208 XMLPUBFUN int XMLCALL
00209             xmlExpSubsume   (xmlExpCtxtPtr ctxt,
00210                      xmlExpNodePtr expr,
00211                      xmlExpNodePtr sub);
00212 XMLPUBFUN void XMLCALL
00213             xmlExpDump  (xmlBufferPtr buf,
00214                      xmlExpNodePtr expr);
00215 #endif /* LIBXML_EXPR_ENABLED */
00216 #ifdef __cplusplus
00217 }
00218 #endif
00219 
00220 #endif /* LIBXML_REGEXP_ENABLED */
00221 
00222 #endif /*__XML_REGEXP_H__ */

Generated on Sat May 26 2012 04:32:03 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.