1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: regular expressions handling
3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: basic API for libxml regular expressions handling used
4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *              for XML Schemas and validation.
5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software.
7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard
9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_REGEXP_H__
12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_REGEXP_H__
13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h>
15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_REGEXP_ENABLED
17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlRegexpPtr:
24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A libxml regular expression, they can actually be far more complex
26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * thank the POSIX regex expressions.
27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlRegexp xmlRegexp;
29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlRegexp *xmlRegexpPtr;
30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlRegExecCtxtPtr:
33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A libxml progressive regular expression evaluation context
35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlRegExecCtxt xmlRegExecCtxt;
37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
4160a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott#endif
42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/tree.h>
43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/dict.h>
44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The POSIX like API
50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlRegexpPtr XMLCALL
52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegexpCompile	(const xmlChar *regexp);
53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL			 xmlRegFreeRegexp(xmlRegexpPtr regexp);
5460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL
55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegexpExec	(xmlRegexpPtr comp,
56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *value);
5760a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN void XMLCALL
5860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott		    xmlRegexpPrint	(FILE *output,
59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlRegexpPtr regexp);
6060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL
61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegexpIsDeterminist(xmlRegexpPtr comp);
62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
6360a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott/**
6460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * xmlRegExecCallbacks:
6560a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * @exec: the regular expression context
6660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * @token: the current token string
6760a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * @transdata: transition data
6860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * @inputdata: input data
6960a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott *
70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Callback function when doing a transition in the automata
71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project	                             const xmlChar *token,
74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				     void *transdata,
75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				     void *inputdata);
76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The progressive API
79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
8060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN xmlRegExecCtxtPtr XMLCALL
8160a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott		    xmlRegNewExecCtxt	(xmlRegexpPtr comp,
82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlRegExecCallbacks callback,
83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 void *data);
8460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN void XMLCALL
85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegFreeExecCtxt	(xmlRegExecCtxtPtr exec);
8660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL
8760a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott		    xmlRegExecPushString(xmlRegExecCtxtPtr exec,
88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *value,
89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 void *data);
9060a4c356ee9ce5e9ccb23347c0381f0436192691Patrick ScottXMLPUBFUN int XMLCALL
91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *value,
93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *value2,
94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 void *data);
95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
9860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott					 int *nbval,
9960a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott					 int *nbneg,
100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlChar **values,
101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int *terminal);
102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlRegExecErrInfo	(xmlRegExecCtxtPtr exec,
10460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott					 const xmlChar **string,
105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int *nbval,
10660a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott					 int *nbneg,
107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlChar **values,
108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int *terminal);
109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_EXPR_ENABLED
110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Formal regular expression handling
112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Its goal is to do some formal work on content models
113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
115ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* expressions are used within a context */
116ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlExpCtxt xmlExpCtxt;
117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlExpCtxt *xmlExpCtxtPtr;
118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
119ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpFreeCtxt	(xmlExpCtxtPtr ctxt);
121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpCtxtPtr XMLCALL
122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpNewCtxt	(int maxNodes,
123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlDictPtr dict);
124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
125ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* Expressions are trees but the tree is opaque */
131ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlExpNode xmlExpNode;
132ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlExpNode *xmlExpNodePtr;
133ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
134ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef enum {
135ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_EMPTY = 0,
136ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_FORBID = 1,
137ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_ATOM = 2,
138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_SEQ = 3,
139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_OR = 4,
140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    XML_EXP_COUNT = 5
141ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} xmlExpNodeType;
142ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
143ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
14460a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott * 2 core expressions shared by all for the empty language set
145ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * and for the set with just the empty token
146ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
147ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBVAR xmlExpNodePtr forbiddenExp;
148ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBVAR xmlExpNodePtr emptyExp;
149ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
150ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
151ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Expressions are reference counted internally
152ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
153ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
154ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpFree	(xmlExpCtxtPtr ctxt,
155ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr);
156ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
157ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpRef	(xmlExpNodePtr expr);
158ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
159ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
160ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * constructors can be either manual or from a string
161ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
162ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
163ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpParse	(xmlExpCtxtPtr ctxt,
164ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const char *expr);
165ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
166ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpNewAtom	(xmlExpCtxtPtr ctxt,
167ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *name,
168ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int len);
169ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
170ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpNewOr	(xmlExpCtxtPtr ctxt,
171ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr left,
172ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr right);
173ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
174ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpNewSeq	(xmlExpCtxtPtr ctxt,
175ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr left,
176ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr right);
177ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
178ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpNewRange	(xmlExpCtxtPtr ctxt,
179ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr subset,
180ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int min,
181ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int max);
182ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
183ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The really interesting APIs
184ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
185ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
186ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpIsNillable(xmlExpNodePtr expr);
187ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
188ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpMaxToken	(xmlExpNodePtr expr);
189ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
190ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
191ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr,
192ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar**langList,
193ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int len);
194ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
195ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpGetStart	(xmlExpCtxtPtr ctxt,
196ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr,
197ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar**tokList,
198ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int len);
199ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
200ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpStringDerive(xmlExpCtxtPtr ctxt,
201ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr,
202ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 const xmlChar *str,
203ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int len);
204ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlExpNodePtr XMLCALL
205ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpExpDerive	(xmlExpCtxtPtr ctxt,
206ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr,
207ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr sub);
208ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
209ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpSubsume	(xmlExpCtxtPtr ctxt,
210ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr,
211ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr sub);
212ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
213ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlExpDump	(xmlBufferPtr buf,
214ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlExpNodePtr expr);
215ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_EXPR_ENABLED */
216ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
217ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
21860a4c356ee9ce5e9ccb23347c0381f0436192691Patrick Scott#endif
219ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
220ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_REGEXP_ENABLED */
221ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
222ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /*__XML_REGEXP_H__ */
223