xmlregexp.h
1 /*
2 * regexp.h : describes the basic API for libxml regular expressions handling
3 *
4 * See Copyright for the status of this software.
5 *
6 * Daniel Veillard
7 */
8
9 #ifndef __XML_REGEXP_H__
10 #define __XML_REGEXP_H__
11
12 #include
13
14 #ifdef LIBXML_REGEXP_ENABLED
15
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19
20 /**
21 * xmlRegexpPtr:
22 *
23 * A libxml regular expression, they can actually be far more complex
24 * thank the POSIX regex expressions.
25 */
26 typedef struct _xmlRegexp xmlRegexp; <typedef:xmlRegexp>
27 typedef xmlRegexp *xmlRegexpPtr; <typedef:xmlRegexpPtr>
28
29 /**
30 * xmlRegExecCtxtPtr:
31 *
32 * A libxml progressive regular expression evaluation context
33 */
34 typedef struct _xmlRegExecCtxt xmlRegExecCtxt; <typedef:xmlRegExecCtxt>
35 typedef xmlRegExecCtxt *xmlRegExecCtxtPtr; <typedef:xmlRegExecCtxtPtr>
36
37 #ifdef __cplusplus
38 }
39 #endif
40 #include
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44
45 /*
46 * The POSIX like API
47 */
48 xmlRegexpPtr xmlRegexpCompile(const xmlChar *regexp);
49 void xmlRegFreeRegexp(xmlRegexpPtr regexp);
50 int xmlRegexpExec (xmlRegexpPtr comp,
51 const xmlChar *value);
52 void xmlRegexpPrint (FILE *output,
53 xmlRegexpPtr regexp);
54 int xmlRegexpIsDeterminist(xmlRegexpPtr comp);
55
56 /*
57 * Callback function when doing a transition in the automata
58 */
59 typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
60 const xmlChar *token,
61 void *transdata,
62 void *inputdata); <typedef:xmlRegExecCallbacks>
63
64 /*
65 * The progressive API
66 */
67 xmlRegExecCtxtPtr xmlRegNewExecCtxt (xmlRegexpPtr comp,
68 xmlRegExecCallbacks callback,
69 void *data);
70 void xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
71 int xmlRegExecPushString (xmlRegExecCtxtPtr exec,
72 const xmlChar *value,
73 void *data);
74
75 #ifdef __cplusplus
76 }
77 #endif
78
79 #endif /* LIBXML_REGEXP_ENABLED */
80
81 #endif /*__XML_REGEXP_H__ */