xmlautomata.h 3.7 KB

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