/*
* 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.
*/
/**
* xmlRegExecCtxtPtr:
*
* A libxml progressive regular expression evaluation context
*/
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*
* The POSIX like API
*/
/*
* Callback function when doing a transition in the automata
*/
void *transdata,
void *inputdata);
/*
* The progressive API
*/
void *data);
void *data);
void *data);
int *nbval,
int *nbneg,
int *terminal);
int *nbval,
int *nbneg,
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 */
xmlExpNewCtxt (int maxNodes,
/* Expressions are trees but the tree is opaque */
typedef enum {
XML_EXP_EMPTY = 0,
/*
* 2 core expressions shared by all for the empty language set
* and for the set with just the empty token
*/
/*
* Expressions are reference counted internally
*/
/*
* constructors can be either manual or from a string
*/
const char *expr);
int len);
int min,
int max);
/*
* The really interesting APIs
*/
int len);
int len);
int len);
#endif /* LIBXML_EXPR_ENABLED */
#ifdef __cplusplus
}
#endif
#endif /* LIBXML_REGEXP_ENABLED */
#endif /*__XML_REGEXP_H__ */