ReactOS  0.4.14-dev-293-g2b39b42
xmlregexp.h
Go to the documentation of this file.
1 /*
2  * Summary: regular expressions handling
3  * Description: basic API for libxml regular expressions handling used
4  * for XML Schemas and validation.
5  *
6  * Copy: See Copyright for the status of this software.
7  *
8  * Author: Daniel Veillard
9  */
10 
11 #ifndef __XML_REGEXP_H__
12 #define __XML_REGEXP_H__
13 
14 #include <libxml/xmlversion.h>
15 
16 #ifdef LIBXML_REGEXP_ENABLED
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
28 typedef struct _xmlRegexp xmlRegexp;
29 typedef xmlRegexp *xmlRegexpPtr;
30 
36 typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
37 typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
38 
39 #ifdef __cplusplus
40 }
41 #endif
42 #include <libxml/tree.h>
43 #include <libxml/dict.h>
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 /*
49  * The POSIX like API
50  */
51 XMLPUBFUN xmlRegexpPtr XMLCALL
52  xmlRegexpCompile (const xmlChar *regexp);
53 XMLPUBFUN void XMLCALL xmlRegFreeRegexp(xmlRegexpPtr regexp);
55  xmlRegexpExec (xmlRegexpPtr comp,
56  const xmlChar *value);
57 XMLPUBFUN void XMLCALL
58  xmlRegexpPrint (FILE *output,
59  xmlRegexpPtr regexp);
61  xmlRegexpIsDeterminist(xmlRegexpPtr comp);
62 
72 typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
73  const xmlChar *token,
74  void *transdata,
75  void *inputdata);
76 
77 /*
78  * The progressive API
79  */
80 XMLPUBFUN xmlRegExecCtxtPtr XMLCALL
81  xmlRegNewExecCtxt (xmlRegexpPtr comp,
82  xmlRegExecCallbacks callback,
83  void *data);
84 XMLPUBFUN void XMLCALL
85  xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
87  xmlRegExecPushString(xmlRegExecCtxtPtr exec,
88  const xmlChar *value,
89  void *data);
91  xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
92  const xmlChar *value,
93  const xmlChar *value2,
94  void *data);
95 
97  xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
98  int *nbval,
99  int *nbneg,
100  xmlChar **values,
101  int *terminal);
102 XMLPUBFUN int XMLCALL
103  xmlRegExecErrInfo (xmlRegExecCtxtPtr exec,
104  const xmlChar **string,
105  int *nbval,
106  int *nbneg,
107  xmlChar **values,
108  int *terminal);
109 #ifdef LIBXML_EXPR_ENABLED
110 /*
111  * Formal regular expression handling
112  * Its goal is to do some formal work on content models
113  */
114 
115 /* expressions are used within a context */
116 typedef struct _xmlExpCtxt xmlExpCtxt;
117 typedef xmlExpCtxt *xmlExpCtxtPtr;
118 
119 XMLPUBFUN void XMLCALL
120  xmlExpFreeCtxt (xmlExpCtxtPtr ctxt);
121 XMLPUBFUN xmlExpCtxtPtr XMLCALL
122  xmlExpNewCtxt (int maxNodes,
123  xmlDictPtr dict);
124 
125 XMLPUBFUN int XMLCALL
126  xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
127 XMLPUBFUN int XMLCALL
128  xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
129 
130 /* Expressions are trees but the tree is opaque */
131 typedef struct _xmlExpNode xmlExpNode;
132 typedef xmlExpNode *xmlExpNodePtr;
133 
134 typedef enum {
135  XML_EXP_EMPTY = 0,
136  XML_EXP_FORBID = 1,
137  XML_EXP_ATOM = 2,
138  XML_EXP_SEQ = 3,
139  XML_EXP_OR = 4,
140  XML_EXP_COUNT = 5
141 } xmlExpNodeType;
142 
143 /*
144  * 2 core expressions shared by all for the empty language set
145  * and for the set with just the empty token
146  */
147 XMLPUBVAR xmlExpNodePtr forbiddenExp;
148 XMLPUBVAR xmlExpNodePtr emptyExp;
149 
150 /*
151  * Expressions are reference counted internally
152  */
153 XMLPUBFUN void XMLCALL
154  xmlExpFree (xmlExpCtxtPtr ctxt,
155  xmlExpNodePtr expr);
156 XMLPUBFUN void XMLCALL
157  xmlExpRef (xmlExpNodePtr expr);
158 
159 /*
160  * constructors can be either manual or from a string
161  */
162 XMLPUBFUN xmlExpNodePtr XMLCALL
163  xmlExpParse (xmlExpCtxtPtr ctxt,
164  const char *expr);
165 XMLPUBFUN xmlExpNodePtr XMLCALL
166  xmlExpNewAtom (xmlExpCtxtPtr ctxt,
167  const xmlChar *name,
168  int len);
169 XMLPUBFUN xmlExpNodePtr XMLCALL
170  xmlExpNewOr (xmlExpCtxtPtr ctxt,
171  xmlExpNodePtr left,
172  xmlExpNodePtr right);
173 XMLPUBFUN xmlExpNodePtr XMLCALL
174  xmlExpNewSeq (xmlExpCtxtPtr ctxt,
175  xmlExpNodePtr left,
176  xmlExpNodePtr right);
177 XMLPUBFUN xmlExpNodePtr XMLCALL
178  xmlExpNewRange (xmlExpCtxtPtr ctxt,
179  xmlExpNodePtr subset,
180  int min,
181  int max);
182 /*
183  * The really interesting APIs
184  */
185 XMLPUBFUN int XMLCALL
186  xmlExpIsNillable(xmlExpNodePtr expr);
187 XMLPUBFUN int XMLCALL
188  xmlExpMaxToken (xmlExpNodePtr expr);
189 XMLPUBFUN int XMLCALL
190  xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
191  xmlExpNodePtr expr,
192  const xmlChar**langList,
193  int len);
194 XMLPUBFUN int XMLCALL
195  xmlExpGetStart (xmlExpCtxtPtr ctxt,
196  xmlExpNodePtr expr,
197  const xmlChar**tokList,
198  int len);
199 XMLPUBFUN xmlExpNodePtr XMLCALL
200  xmlExpStringDerive(xmlExpCtxtPtr ctxt,
201  xmlExpNodePtr expr,
202  const xmlChar *str,
203  int len);
204 XMLPUBFUN xmlExpNodePtr XMLCALL
205  xmlExpExpDerive (xmlExpCtxtPtr ctxt,
206  xmlExpNodePtr expr,
207  xmlExpNodePtr sub);
208 XMLPUBFUN int XMLCALL
209  xmlExpSubsume (xmlExpCtxtPtr ctxt,
210  xmlExpNodePtr expr,
211  xmlExpNodePtr sub);
212 XMLPUBFUN void XMLCALL
213  xmlExpDump (xmlBufferPtr buf,
214  xmlExpNodePtr expr);
215 #endif /* LIBXML_EXPR_ENABLED */
216 #ifdef __cplusplus
217 }
218 #endif
219 
220 #endif /* LIBXML_REGEXP_ENABLED */
221 
222 #endif /*__XML_REGEXP_H__ */
#define max(a, b)
Definition: svc.c:63
static UCHAR ULONG UCHAR ULONG UCHAR * output
Definition: bcrypt.c:29
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666
#define XMLPUBFUN
Definition: xmlexports.h:30
Definition: query.h:86
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
Definition: glfuncs.h:210
const WCHAR * str
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
#define XMLPUBVAR
Definition: xmlexports.h:36
GLint left
Definition: glext.h:7726
GLdouble GLdouble right
Definition: glext.h:10859
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
unsigned char xmlChar
Definition: xmlstring.h:28
GLenum GLsizei len
Definition: glext.h:6722
__XML_EXTERNC typedef xmlDict * xmlDictPtr
Definition: dict.h:24
#define min(a, b)
Definition: monoChain.cc:55
#define XMLCALL
Definition: name.c:36