xmlregexp

xmlregexp —

Synopsis




struct      xmlRegexp;
typedef     xmlRegexpPtr;
struct      xmlRegExecCtxt;
typedef     xmlRegExecCtxtPtr;
xmlRegexpPtr xmlRegexpCompile               (const xmlChar *regexp);
void        xmlRegFreeRegexp                (xmlRegexpPtr regexp);
int         xmlRegexpExec                   (xmlRegexpPtr comp,
                                             const xmlChar *value);
void        xmlRegexpPrint                  (FILE *output,
                                             xmlRegexpPtr regexp);
int         xmlRegexpIsDeterminist          (xmlRegexpPtr comp);
void        (*xmlRegExecCallbacks)          (xmlRegExecCtxtPtr exec,
                                             const xmlChar *token,
                                             void *transdata,
                                             void *inputdata);
xmlRegExecCtxtPtr xmlRegNewExecCtxt         (xmlRegexpPtr comp,
                                             xmlRegExecCallbacks callback,
                                             void *data);
void        xmlRegFreeExecCtxt              (xmlRegExecCtxtPtr exec);
int         xmlRegExecPushString            (xmlRegExecCtxtPtr exec,
                                             const xmlChar *value,
                                             void *data);
int         xmlRegExecPushString2           (xmlRegExecCtxtPtr exec,
                                             const xmlChar *value,
                                             const xmlChar *value2,
                                             void *data);

Description

Details

struct xmlRegexp

struct xmlRegexp;


xmlRegexpPtr

typedef xmlRegexp *xmlRegexpPtr;

A libxml regular expression, they can actually be far more complex thank the POSIX regex expressions.


struct xmlRegExecCtxt

struct xmlRegExecCtxt;


xmlRegExecCtxtPtr

typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;

A libxml progressive regular expression evaluation context


xmlRegexpCompile ()

xmlRegexpPtr xmlRegexpCompile               (const xmlChar *regexp);

Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and build an automata suitable for testing strings against that regular expression

regexp : a regular expression string
Returns :the compiled expression or NULL in case of error

xmlRegFreeRegexp ()

void        xmlRegFreeRegexp                (xmlRegexpPtr regexp);

Free a regexp

regexp : the regexp

xmlRegexpExec ()

int         xmlRegexpExec                   (xmlRegexpPtr comp,
                                             const xmlChar *value);

Check if the regular expression generate the value

comp : the compiled regular expression
value :
Returns :1 if it matches, 0 if not and a negativa value in case of error

xmlRegexpPrint ()

void        xmlRegexpPrint                  (FILE *output,
                                             xmlRegexpPtr regexp);

Print the content of the compiled regular expression

output : the file for the output debug
regexp : the compiled regexp

xmlRegexpIsDeterminist ()

int         xmlRegexpIsDeterminist          (xmlRegexpPtr comp);

Check if the regular expression is determinist

comp : the compiled regular expression
Returns :1 if it yes, 0 if not and a negativa value in case of error

xmlRegExecCallbacks ()

void        (*xmlRegExecCallbacks)          (xmlRegExecCtxtPtr exec,
                                             const xmlChar *token,
                                             void *transdata,
                                             void *inputdata);

exec :
token :
transdata :
inputdata :

xmlRegNewExecCtxt ()

xmlRegExecCtxtPtr xmlRegNewExecCtxt         (xmlRegexpPtr comp,
                                             xmlRegExecCallbacks callback,
                                             void *data);

Build a context used for progressive evaluation of a regexp.

comp : a precompiled regular expression
callback : a callback function used for handling progresses in the automata matching phase
data : the context data associated to the callback in this context
Returns :the new context

xmlRegFreeExecCtxt ()

void        xmlRegFreeExecCtxt              (xmlRegExecCtxtPtr exec);

Free the structures associated to a regular expression evaulation context.

exec : a regular expression evaulation context

xmlRegExecPushString ()

int         xmlRegExecPushString            (xmlRegExecCtxtPtr exec,
                                             const xmlChar *value,
                                             void *data);

Push one input token in the execution context

exec : a regexp execution context or NULL to indicate the end
value : a string token input
data : data associated to the token to reuse in callbacks
Returns : 1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.

xmlRegExecPushString2 ()

int         xmlRegExecPushString2           (xmlRegExecCtxtPtr exec,
                                             const xmlChar *value,
                                             const xmlChar *value2,
                                             void *data);

Push one input token in the execution context

exec : a regexp execution context or NULL to indicate the end
value : the first string token input
value2 : the second string token input
data : data associated to the token to reuse in callbacks
Returns : 1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.