xmlautomata.h


    1 /*
    2  * automata.h : description of the API to build regexp automats
    3  *
    4  * See Copyright for the status of this software.
    5  *
    6  * Daniel Veillard 
    7  */
    8 
    9 #ifndef __XML_AUTOMATA_H__
    10 #define __XML_AUTOMATA_H__
    11 
    12 #include 
    13 #include 
    14 
    15 #ifdef LIBXML_AUTOMATA_ENABLED
    16 #include 
    17 
    18 #ifdef __cplusplus
    19 extern "C" {
    20 #endif
    21 
    22 /**
    23  * xmlAutomataPtr:
    24  *
    25  * A libxml automata description, It can be compiled into a regexp
    26  */
    27 typedef struct _xmlAutomata xmlAutomata;  <typedef:xmlAutomata>
    28 typedef xmlAutomata *xmlAutomataPtr;  <typedef:xmlAutomataPtr>
    29 
    30 /**
    31  * xmlAutomataStatePtr:
    32  *
    33  * A state int the automata description,
    34  */
    35 typedef struct _xmlAutomataState xmlAutomataState;  <typedef:xmlAutomataState>
    36 typedef xmlAutomataState *xmlAutomataStatePtr;  <typedef:xmlAutomataStatePtr>
    37 
    38 /*
    39  * Building API
    40  */
    41 xmlAutomataPtr		xmlNewAutomata		(void);
    42 void			xmlFreeAutomata		(xmlAutomataPtr am);
    43 
    44 xmlAutomataStatePtr	xmlAutomataGetInitState	(xmlAutomataPtr am);
    45 int			xmlAutomataSetFinalState(xmlAutomataPtr am,
    46 						 xmlAutomataStatePtr state);
    47 xmlAutomataStatePtr	xmlAutomataNewState	(xmlAutomataPtr am);
    48 xmlAutomataStatePtr	xmlAutomataNewTransition(xmlAutomataPtr am,
    49 						 xmlAutomataStatePtr from,
    50 						 xmlAutomataStatePtr to,
    51 						 const xmlChar *token,
    52 						 void *data);
    53 xmlAutomataStatePtr	xmlAutomataNewCountTrans(xmlAutomataPtr am,
    54 						 xmlAutomataStatePtr from,
    55 						 xmlAutomataStatePtr to,
    56 						 const xmlChar *token,
    57 						 int min,
    58 						 int max,
    59 						 void *data);
    60 xmlAutomataStatePtr	xmlAutomataNewOnceTrans	(xmlAutomataPtr am,
    61 						 xmlAutomataStatePtr from,
    62 						 xmlAutomataStatePtr to,
    63 						 const xmlChar *token,
    64 						 int min,
    65 						 int max,
    66 						 void *data);
    67 xmlAutomataStatePtr	xmlAutomataNewAllTrans	(xmlAutomataPtr am,
    68 						 xmlAutomataStatePtr from,
    69 						 xmlAutomataStatePtr to,
    70 						 int lax);
    71 xmlAutomataStatePtr	xmlAutomataNewEpsilon	(xmlAutomataPtr am,
    72 						 xmlAutomataStatePtr from,
    73 						 xmlAutomataStatePtr to);
    74 xmlAutomataStatePtr	xmlAutomataNewCountedTrans(xmlAutomataPtr am,
    75 						 xmlAutomataStatePtr from,
    76 						 xmlAutomataStatePtr to,
    77 						 int counter);
    78 xmlAutomataStatePtr	xmlAutomataNewCounterTrans(xmlAutomataPtr am,
    79 						 xmlAutomataStatePtr from,
    80 						 xmlAutomataStatePtr to,
    81 						 int counter);
    82 int			xmlAutomataNewCounter	(xmlAutomataPtr am,
    83 						 int min,
    84 						 int max);
    85 
    86 xmlRegexpPtr		xmlAutomataCompile	(xmlAutomataPtr am);
    87 int	    		xmlAutomataIsDeterminist(xmlAutomataPtr am);
    88 
    89 #ifdef __cplusplus
    90 }
    91 #endif 
    92 
    93 #endif /* LIBXML_AUTOMATA_ENABLED */
    94 #endif /* __XML_AUTOMATA_H__ */