xmlregexp.h
资源名称:Client.rar [点击查看]
上传用户:szjkjd
上传日期:2022-06-27
资源大小:8968k
文件大小:5k
源码类别:
浏览器
开发平台:
Visual C++
- /*
- * Summary: regular expressions handling
- * Description: basic API for libxml regular expressions handling used
- * for XML Schemas and validation.
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- */
- #ifndef __XML_REGEXP_H__
- #define __XML_REGEXP_H__
- #include <libxml/xmlversion.h>
- #ifdef LIBXML_REGEXP_ENABLED
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * xmlRegexpPtr:
- *
- * A libxml regular expression, they can actually be far more complex
- * thank the POSIX regex expressions.
- */
- typedef struct _xmlRegexp xmlRegexp;
- typedef xmlRegexp *xmlRegexpPtr;
- /**
- * xmlRegExecCtxtPtr:
- *
- * A libxml progressive regular expression evaluation context
- */
- typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
- typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
- #ifdef __cplusplus
- }
- #endif
- #include <libxml/tree.h>
- #include <libxml/dict.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * The POSIX like API
- */
- XMLPUBFUN xmlRegexpPtr XMLCALL
- xmlRegexpCompile (const xmlChar *regexp);
- XMLPUBFUN void XMLCALL xmlRegFreeRegexp(xmlRegexpPtr regexp);
- XMLPUBFUN int XMLCALL
- xmlRegexpExec (xmlRegexpPtr comp,
- const xmlChar *value);
- XMLPUBFUN void XMLCALL
- xmlRegexpPrint (FILE *output,
- xmlRegexpPtr regexp);
- XMLPUBFUN int XMLCALL
- xmlRegexpIsDeterminist(xmlRegexpPtr comp);
- /**
- * xmlRegExecCallbacks:
- * @exec: the regular expression context
- * @token: the current token string
- * @transdata: transition data
- * @inputdata: input data
- *
- * Callback function when doing a transition in the automata
- */
- typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
- const xmlChar *token,
- void *transdata,
- void *inputdata);
- /*
- * The progressive API
- */
- XMLPUBFUN xmlRegExecCtxtPtr XMLCALL
- xmlRegNewExecCtxt (xmlRegexpPtr comp,
- xmlRegExecCallbacks callback,
- void *data);
- XMLPUBFUN void XMLCALL
- xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
- XMLPUBFUN int XMLCALL
- xmlRegExecPushString(xmlRegExecCtxtPtr exec,
- const xmlChar *value,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
- const xmlChar *value,
- const xmlChar *value2,
- void *data);
- XMLPUBFUN int XMLCALL
- xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
- int *nbval,
- int *nbneg,
- xmlChar **values,
- int *terminal);
- XMLPUBFUN int XMLCALL
- xmlRegExecErrInfo (xmlRegExecCtxtPtr exec,
- const xmlChar **string,
- int *nbval,
- int *nbneg,
- xmlChar **values,
- int *terminal);
- #ifdef LIBXML_EXPR_ENABLED
- /*
- * Formal regular expression handling
- * Its goal is to do some formal work on content models
- */
- /* expressions are used within a context */
- typedef struct _xmlExpCtxt xmlExpCtxt;
- typedef xmlExpCtxt *xmlExpCtxtPtr;
- XMLPUBFUN void XMLCALL
- xmlExpFreeCtxt (xmlExpCtxtPtr ctxt);
- XMLPUBFUN xmlExpCtxtPtr XMLCALL
- xmlExpNewCtxt (int maxNodes,
- xmlDictPtr dict);
- XMLPUBFUN int XMLCALL
- xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
- XMLPUBFUN int XMLCALL
- xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
- /* Expressions are trees but the tree is opaque */
- typedef struct _xmlExpNode xmlExpNode;
- typedef xmlExpNode *xmlExpNodePtr;
- typedef enum {
- XML_EXP_EMPTY = 0,
- XML_EXP_FORBID = 1,
- XML_EXP_ATOM = 2,
- XML_EXP_SEQ = 3,
- XML_EXP_OR = 4,
- XML_EXP_COUNT = 5
- } xmlExpNodeType;
- /*
- * 2 core expressions shared by all for the empty language set
- * and for the set with just the empty token
- */
- XMLPUBVAR xmlExpNodePtr forbiddenExp;
- XMLPUBVAR xmlExpNodePtr emptyExp;
- /*
- * Expressions are reference counted internally
- */
- XMLPUBFUN void XMLCALL
- xmlExpFree (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr);
- XMLPUBFUN void XMLCALL
- xmlExpRef (xmlExpNodePtr expr);
- /*
- * constructors can be either manual or from a string
- */
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpParse (xmlExpCtxtPtr ctxt,
- const char *expr);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpNewAtom (xmlExpCtxtPtr ctxt,
- const xmlChar *name,
- int len);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpNewOr (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr left,
- xmlExpNodePtr right);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpNewSeq (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr left,
- xmlExpNodePtr right);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpNewRange (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr subset,
- int min,
- int max);
- /*
- * The really interesting APIs
- */
- XMLPUBFUN int XMLCALL
- xmlExpIsNillable(xmlExpNodePtr expr);
- XMLPUBFUN int XMLCALL
- xmlExpMaxToken (xmlExpNodePtr expr);
- XMLPUBFUN int XMLCALL
- xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr,
- const xmlChar**langList,
- int len);
- XMLPUBFUN int XMLCALL
- xmlExpGetStart (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr,
- const xmlChar**tokList,
- int len);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpStringDerive(xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr,
- const xmlChar *str,
- int len);
- XMLPUBFUN xmlExpNodePtr XMLCALL
- xmlExpExpDerive (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr,
- xmlExpNodePtr sub);
- XMLPUBFUN int XMLCALL
- xmlExpSubsume (xmlExpCtxtPtr ctxt,
- xmlExpNodePtr expr,
- xmlExpNodePtr sub);
- XMLPUBFUN void XMLCALL
- xmlExpDump (xmlBufferPtr buf,
- xmlExpNodePtr expr);
- #endif /* LIBXML_EXPR_ENABLED */
- #ifdef __cplusplus
- }
- #endif
- #endif /* LIBXML_REGEXP_ENABLED */
- #endif /*__XML_REGEXP_H__ */