Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 10:41:51

0001 /*
0002  * Summary: API to build regexp automata
0003  * Description: the API to build regexp automata
0004  *
0005  * Copy: See Copyright for the status of this software.
0006  *
0007  * Author: Daniel Veillard
0008  */
0009 
0010 #ifndef __XML_AUTOMATA_H__
0011 #define __XML_AUTOMATA_H__
0012 
0013 #include <libxml/xmlversion.h>
0014 
0015 #ifdef LIBXML_REGEXP_ENABLED
0016 #ifdef LIBXML_AUTOMATA_ENABLED
0017 
0018 #include <libxml/xmlstring.h>
0019 
0020 #ifdef __cplusplus
0021 extern "C" {
0022 #endif
0023 
0024 /**
0025  * xmlAutomataPtr:
0026  *
0027  * A libxml automata description, It can be compiled into a regexp
0028  */
0029 typedef struct _xmlAutomata xmlAutomata;
0030 typedef xmlAutomata *xmlAutomataPtr;
0031 
0032 /**
0033  * xmlAutomataStatePtr:
0034  *
0035  * A state int the automata description,
0036  */
0037 typedef struct _xmlAutomataState xmlAutomataState;
0038 typedef xmlAutomataState *xmlAutomataStatePtr;
0039 
0040 /*
0041  * Building API
0042  */
0043 XMLPUBFUN xmlAutomataPtr
0044             xmlNewAutomata      (void);
0045 XMLPUBFUN void
0046             xmlFreeAutomata     (xmlAutomataPtr am);
0047 
0048 XMLPUBFUN xmlAutomataStatePtr
0049             xmlAutomataGetInitState (xmlAutomataPtr am);
0050 XMLPUBFUN int
0051             xmlAutomataSetFinalState    (xmlAutomataPtr am,
0052                          xmlAutomataStatePtr state);
0053 XMLPUBFUN xmlAutomataStatePtr
0054             xmlAutomataNewState     (xmlAutomataPtr am);
0055 XMLPUBFUN xmlAutomataStatePtr
0056             xmlAutomataNewTransition    (xmlAutomataPtr am,
0057                          xmlAutomataStatePtr from,
0058                          xmlAutomataStatePtr to,
0059                          const xmlChar *token,
0060                          void *data);
0061 XMLPUBFUN xmlAutomataStatePtr
0062             xmlAutomataNewTransition2   (xmlAutomataPtr am,
0063                          xmlAutomataStatePtr from,
0064                          xmlAutomataStatePtr to,
0065                          const xmlChar *token,
0066                          const xmlChar *token2,
0067                          void *data);
0068 XMLPUBFUN xmlAutomataStatePtr
0069                     xmlAutomataNewNegTrans  (xmlAutomataPtr am,
0070                          xmlAutomataStatePtr from,
0071                          xmlAutomataStatePtr to,
0072                          const xmlChar *token,
0073                          const xmlChar *token2,
0074                          void *data);
0075 
0076 XMLPUBFUN xmlAutomataStatePtr
0077             xmlAutomataNewCountTrans    (xmlAutomataPtr am,
0078                          xmlAutomataStatePtr from,
0079                          xmlAutomataStatePtr to,
0080                          const xmlChar *token,
0081                          int min,
0082                          int max,
0083                          void *data);
0084 XMLPUBFUN xmlAutomataStatePtr
0085             xmlAutomataNewCountTrans2   (xmlAutomataPtr am,
0086                          xmlAutomataStatePtr from,
0087                          xmlAutomataStatePtr to,
0088                          const xmlChar *token,
0089                          const xmlChar *token2,
0090                          int min,
0091                          int max,
0092                          void *data);
0093 XMLPUBFUN xmlAutomataStatePtr
0094             xmlAutomataNewOnceTrans (xmlAutomataPtr am,
0095                          xmlAutomataStatePtr from,
0096                          xmlAutomataStatePtr to,
0097                          const xmlChar *token,
0098                          int min,
0099                          int max,
0100                          void *data);
0101 XMLPUBFUN xmlAutomataStatePtr
0102             xmlAutomataNewOnceTrans2    (xmlAutomataPtr am,
0103                          xmlAutomataStatePtr from,
0104                          xmlAutomataStatePtr to,
0105                          const xmlChar *token,
0106                          const xmlChar *token2,
0107                          int min,
0108                          int max,
0109                          void *data);
0110 XMLPUBFUN xmlAutomataStatePtr
0111             xmlAutomataNewAllTrans  (xmlAutomataPtr am,
0112                          xmlAutomataStatePtr from,
0113                          xmlAutomataStatePtr to,
0114                          int lax);
0115 XMLPUBFUN xmlAutomataStatePtr
0116             xmlAutomataNewEpsilon   (xmlAutomataPtr am,
0117                          xmlAutomataStatePtr from,
0118                          xmlAutomataStatePtr to);
0119 XMLPUBFUN xmlAutomataStatePtr
0120             xmlAutomataNewCountedTrans  (xmlAutomataPtr am,
0121                          xmlAutomataStatePtr from,
0122                          xmlAutomataStatePtr to,
0123                          int counter);
0124 XMLPUBFUN xmlAutomataStatePtr
0125             xmlAutomataNewCounterTrans  (xmlAutomataPtr am,
0126                          xmlAutomataStatePtr from,
0127                          xmlAutomataStatePtr to,
0128                          int counter);
0129 XMLPUBFUN int
0130             xmlAutomataNewCounter   (xmlAutomataPtr am,
0131                          int min,
0132                          int max);
0133 
0134 XMLPUBFUN struct _xmlRegexp *
0135             xmlAutomataCompile      (xmlAutomataPtr am);
0136 XMLPUBFUN int
0137             xmlAutomataIsDeterminist    (xmlAutomataPtr am);
0138 
0139 #ifdef __cplusplus
0140 }
0141 #endif
0142 
0143 #endif /* LIBXML_AUTOMATA_ENABLED */
0144 #endif /* LIBXML_REGEXP_ENABLED */
0145 
0146 #endif /* __XML_AUTOMATA_H__ */