#ifndef _MODULE_StringSearch_RegexpDFA_
#define _MODULE_StringSearch_RegexpDFA_

#include <__typemap.h>
#include <RT0.oh>
#include <Object.oh>
#include <StringSearch.oh>
#include <StringSearch/SubstringBM.oh>
#include <StringSearch/RegexpParser.oh>
#include <RT0.oh>
#include <Object.oh>
#include <Exception.oh>
#define StringSearch_RegexpDFA__ignoreCase 0
#define StringSearch_RegexpDFA__copyString 1
typedef OOC_INT8 StringSearch_RegexpDFA__GroupId;
typedef struct StringSearch_RegexpDFA__NodeDesc *StringSearch_RegexpDFA__Node;
typedef struct StringSearch_RegexpDFA__NodeDesc {
  StringSearch_RegexpDFA__Node suc;
  StringSearch_RegexpDFA__Node alt;
  OOC_INT8 type;
  OOC_CHAR8 ch;
  OOC_CHAR8 notMinimized;
  OOC_INT8 groupId;
  StringSearch_RegexpParser__CharSet set;
  OOC_INT32 pushedMark;
} StringSearch_RegexpDFA__NodeDesc;
typedef struct StringSearch_RegexpDFA__FactoryDesc *StringSearch_RegexpDFA__Factory;
typedef struct StringSearch_RegexpDFA__FactoryDesc {
  char __dummy;
} StringSearch_RegexpDFA__FactoryDesc;
typedef struct StringSearch_RegexpDFA__MatcherDesc *StringSearch_RegexpDFA__Matcher;
typedef struct StringSearch_RegexpDFA__MatcherDesc {
  Object__String8 pattern;
  OOC_UINT32 flags;
  OOC_INT32 groups;
  StringSearch_RegexpDFA__Node initialState;
  StringSearch_SubstringBM__Matcher prefixMatcher;
} StringSearch_RegexpDFA__MatcherDesc;
typedef struct StringSearch_RegexpDFA__MatchObjectDesc *StringSearch_RegexpDFA__MatchObject;
typedef struct StringSearch_RegexpDFA__MatchObjectDesc {
  OOC_INT32 pos;
  OOC_INT32 endpos;
  StringSearch__Matcher matcher;
  Object__String8 string;
  OOC_INT32 start;
  OOC_INT32 end;
} StringSearch_RegexpDFA__MatchObjectDesc;
extern StringSearch_RegexpDFA__Factory StringSearch_RegexpDFA__factory;
extern OOC_INT32 StringSearch_RegexpDFA__MatchObjectDesc_Start(StringSearch_RegexpDFA__MatchObject m, OOC_INT32 group);
#define _TBN_StringSearch_RegexpDFA__MatchObjectDesc_Start 5
typedef OOC_INT32 (*_TBP_StringSearch_RegexpDFA__MatchObjectDesc_Start)(StringSearch_RegexpDFA__MatchObject m, OOC_INT32 group);
extern OOC_INT32 StringSearch_RegexpDFA__MatchObjectDesc_End(StringSearch_RegexpDFA__MatchObject m, OOC_INT32 group);
#define _TBN_StringSearch_RegexpDFA__MatchObjectDesc_End 4
typedef OOC_INT32 (*_TBP_StringSearch_RegexpDFA__MatchObjectDesc_End)(StringSearch_RegexpDFA__MatchObject m, OOC_INT32 group);
extern StringSearch_RegexpDFA__MatchObject StringSearch_RegexpDFA__MatcherDesc_MatchChars(StringSearch_RegexpDFA__Matcher matcher, const OOC_CHAR8 string[], OOC_LEN string_0d, OOC_INT32 pos, OOC_INT32 endpos);
#define _TBN_StringSearch_RegexpDFA__MatcherDesc_MatchChars 5
typedef StringSearch_RegexpDFA__MatchObject (*_TBP_StringSearch_RegexpDFA__MatcherDesc_MatchChars)(StringSearch_RegexpDFA__Matcher matcher, const OOC_CHAR8 string[], OOC_LEN string_0d, OOC_INT32 pos, OOC_INT32 endpos);
extern StringSearch_RegexpDFA__MatchObject StringSearch_RegexpDFA__MatcherDesc_Match(StringSearch_RegexpDFA__Matcher matcher, Object__String8 string, OOC_INT32 pos, OOC_INT32 endpos);
#define _TBN_StringSearch_RegexpDFA__MatcherDesc_Match 4
typedef StringSearch_RegexpDFA__MatchObject (*_TBP_StringSearch_RegexpDFA__MatcherDesc_Match)(StringSearch_RegexpDFA__Matcher matcher, Object__String8 string, OOC_INT32 pos, OOC_INT32 endpos);
extern StringSearch_RegexpDFA__MatchObject StringSearch_RegexpDFA__MatcherDesc_SearchChars(StringSearch_RegexpDFA__Matcher matcher, const OOC_CHAR8 string[], OOC_LEN string_0d, OOC_INT32 pos, OOC_INT32 endpos);
#define _TBN_StringSearch_RegexpDFA__MatcherDesc_SearchChars 7
typedef StringSearch_RegexpDFA__MatchObject (*_TBP_StringSearch_RegexpDFA__MatcherDesc_SearchChars)(StringSearch_RegexpDFA__Matcher matcher, const OOC_CHAR8 string[], OOC_LEN string_0d, OOC_INT32 pos, OOC_INT32 endpos);
extern StringSearch_RegexpDFA__MatchObject StringSearch_RegexpDFA__MatcherDesc_Search(StringSearch_RegexpDFA__Matcher matcher, Object__String8 string, OOC_INT32 pos, OOC_INT32 endpos);
#define _TBN_StringSearch_RegexpDFA__MatcherDesc_Search 6
typedef StringSearch_RegexpDFA__MatchObject (*_TBP_StringSearch_RegexpDFA__MatcherDesc_Search)(StringSearch_RegexpDFA__Matcher matcher, Object__String8 string, OOC_INT32 pos, OOC_INT32 endpos);
extern void StringSearch_RegexpDFA__InitFactory(StringSearch_RegexpDFA__Factory f);
extern StringSearch_RegexpDFA__Matcher StringSearch_RegexpDFA__FactoryDesc_Compile(StringSearch_RegexpDFA__Factory f, Object__String8 pattern, OOC_UINT32 flags);
#define _TBN_StringSearch_RegexpDFA__FactoryDesc_Compile 3
typedef StringSearch_RegexpDFA__Matcher (*_TBP_StringSearch_RegexpDFA__FactoryDesc_Compile)(StringSearch_RegexpDFA__Factory f, Object__String8 pattern, OOC_UINT32 flags);
extern void OOC_StringSearch_RegexpDFA_init(void);
extern void OOC_StringSearch_RegexpDFA_init0(void);

/* run-time meta data */
extern RT0__StructDesc _td_StringSearch_RegexpDFA__Node;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__NodeDesc;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__Factory;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__FactoryDesc;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__Matcher;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__MatcherDesc;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__MatchObject;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__MatchObjectDesc;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__13872;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__15353;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__Match_DequeEntry;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__Match_DequeEntryDesc;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__20435;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__21083;
extern RT0__StructDesc _td_StringSearch_RegexpDFA__22281;
#endif /* _MODULE_StringSearch_RegexpDFA_ */

/* --- */
