(root)/
libxml2-2.12.3/
include/
libxml/
xmlautomata.h
       1  /*
       2   * Summary: API to build regexp automata
       3   * Description: the API to build regexp automata
       4   *
       5   * Copy: See Copyright for the status of this software.
       6   *
       7   * Author: Daniel Veillard
       8   */
       9  
      10  #ifndef __XML_AUTOMATA_H__
      11  #define __XML_AUTOMATA_H__
      12  
      13  #include <libxml/xmlversion.h>
      14  
      15  #ifdef LIBXML_REGEXP_ENABLED
      16  #ifdef LIBXML_AUTOMATA_ENABLED
      17  
      18  #include <libxml/xmlstring.h>
      19  
      20  #ifdef __cplusplus
      21  extern "C" {
      22  #endif
      23  
      24  /**
      25   * xmlAutomataPtr:
      26   *
      27   * A libxml automata description, It can be compiled into a regexp
      28   */
      29  typedef struct _xmlAutomata xmlAutomata;
      30  typedef xmlAutomata *xmlAutomataPtr;
      31  
      32  /**
      33   * xmlAutomataStatePtr:
      34   *
      35   * A state int the automata description,
      36   */
      37  typedef struct _xmlAutomataState xmlAutomataState;
      38  typedef xmlAutomataState *xmlAutomataStatePtr;
      39  
      40  /*
      41   * Building API
      42   */
      43  XMLPUBFUN xmlAutomataPtr
      44  		    xmlNewAutomata		(void);
      45  XMLPUBFUN void
      46  		    xmlFreeAutomata		(xmlAutomataPtr am);
      47  
      48  XMLPUBFUN xmlAutomataStatePtr
      49  		    xmlAutomataGetInitState	(xmlAutomataPtr am);
      50  XMLPUBFUN int
      51  		    xmlAutomataSetFinalState	(xmlAutomataPtr am,
      52  						 xmlAutomataStatePtr state);
      53  XMLPUBFUN xmlAutomataStatePtr
      54  		    xmlAutomataNewState		(xmlAutomataPtr am);
      55  XMLPUBFUN xmlAutomataStatePtr
      56  		    xmlAutomataNewTransition	(xmlAutomataPtr am,
      57  						 xmlAutomataStatePtr from,
      58  						 xmlAutomataStatePtr to,
      59  						 const xmlChar *token,
      60  						 void *data);
      61  XMLPUBFUN xmlAutomataStatePtr
      62  		    xmlAutomataNewTransition2	(xmlAutomataPtr am,
      63  						 xmlAutomataStatePtr from,
      64  						 xmlAutomataStatePtr to,
      65  						 const xmlChar *token,
      66  						 const xmlChar *token2,
      67  						 void *data);
      68  XMLPUBFUN xmlAutomataStatePtr
      69                      xmlAutomataNewNegTrans	(xmlAutomataPtr am,
      70  						 xmlAutomataStatePtr from,
      71  						 xmlAutomataStatePtr to,
      72  						 const xmlChar *token,
      73  						 const xmlChar *token2,
      74  						 void *data);
      75  
      76  XMLPUBFUN xmlAutomataStatePtr
      77  		    xmlAutomataNewCountTrans	(xmlAutomataPtr am,
      78  						 xmlAutomataStatePtr from,
      79  						 xmlAutomataStatePtr to,
      80  						 const xmlChar *token,
      81  						 int min,
      82  						 int max,
      83  						 void *data);
      84  XMLPUBFUN xmlAutomataStatePtr
      85  		    xmlAutomataNewCountTrans2	(xmlAutomataPtr am,
      86  						 xmlAutomataStatePtr from,
      87  						 xmlAutomataStatePtr to,
      88  						 const xmlChar *token,
      89  						 const xmlChar *token2,
      90  						 int min,
      91  						 int max,
      92  						 void *data);
      93  XMLPUBFUN xmlAutomataStatePtr
      94  		    xmlAutomataNewOnceTrans	(xmlAutomataPtr am,
      95  						 xmlAutomataStatePtr from,
      96  						 xmlAutomataStatePtr to,
      97  						 const xmlChar *token,
      98  						 int min,
      99  						 int max,
     100  						 void *data);
     101  XMLPUBFUN xmlAutomataStatePtr
     102  		    xmlAutomataNewOnceTrans2	(xmlAutomataPtr am,
     103  						 xmlAutomataStatePtr from,
     104  						 xmlAutomataStatePtr to,
     105  						 const xmlChar *token,
     106  						 const xmlChar *token2,
     107  						 int min,
     108  						 int max,
     109  						 void *data);
     110  XMLPUBFUN xmlAutomataStatePtr
     111  		    xmlAutomataNewAllTrans	(xmlAutomataPtr am,
     112  						 xmlAutomataStatePtr from,
     113  						 xmlAutomataStatePtr to,
     114  						 int lax);
     115  XMLPUBFUN xmlAutomataStatePtr
     116  		    xmlAutomataNewEpsilon	(xmlAutomataPtr am,
     117  						 xmlAutomataStatePtr from,
     118  						 xmlAutomataStatePtr to);
     119  XMLPUBFUN xmlAutomataStatePtr
     120  		    xmlAutomataNewCountedTrans	(xmlAutomataPtr am,
     121  						 xmlAutomataStatePtr from,
     122  						 xmlAutomataStatePtr to,
     123  						 int counter);
     124  XMLPUBFUN xmlAutomataStatePtr
     125  		    xmlAutomataNewCounterTrans	(xmlAutomataPtr am,
     126  						 xmlAutomataStatePtr from,
     127  						 xmlAutomataStatePtr to,
     128  						 int counter);
     129  XMLPUBFUN int
     130  		    xmlAutomataNewCounter	(xmlAutomataPtr am,
     131  						 int min,
     132  						 int max);
     133  
     134  XMLPUBFUN struct _xmlRegexp *
     135  		    xmlAutomataCompile		(xmlAutomataPtr am);
     136  XMLPUBFUN int
     137  		    xmlAutomataIsDeterminist	(xmlAutomataPtr am);
     138  
     139  #ifdef __cplusplus
     140  }
     141  #endif
     142  
     143  #endif /* LIBXML_AUTOMATA_ENABLED */
     144  #endif /* LIBXML_REGEXP_ENABLED */
     145  
     146  #endif /* __XML_AUTOMATA_H__ */