00001
00067 #ifndef INC_MI32_UCREGEXP_H
00068 #define INC_MI32_UCREGEXP_H
00069
00070 #ifndef INC_MI32_STDDEFNS_H
00071 #include <mi32/stddefns.h>
00072 #endif
00073
00074 #ifdef MISYSTEMDLL
00075 #define CLASSLIBEXPORT MI_DLLCLASSEXPORT
00076 #else
00077 #define CLASSLIBEXPORT MI_DLLCLASSIMPORT
00078 #endif
00079
00080
00081
00082
00083 #define _URE_OK 0
00084 #define _URE_UNEXPECTED_EOS -1
00085 #define _URE_CCLASS_OPEN -2
00086 #define _URE_UNBALANCED_GROUP -3
00087 #define _URE_INVALID_PROPERTY -4
00088
00089
00090
00091
00092 #define URE_IGNORE_NONSPACING 0x00000001
00093 #define URE_DOT_MATCHES_SEPARATORS 0x00000002
00094
00095 struct UREBUFFER;
00096 struct URESYMTAB;
00097 struct UREDSTATE;
00098 struct URETRANS;
00099
00100
00101
00198 class CLASSLIBEXPORT UCREGEXP {
00199 public:
00200
00201 UCREGEXP();
00202
00203 ~UCREGEXP();
00204
00223 int Compile (
00224 const MIUNICODE* expr,
00225 bool bIgnoreCase
00226 );
00227
00228 #ifdef MISYSTEMDLL
00229 #ifndef GENERATING_DOXYGEN_OUTPUT
00234 int Exec (
00235 const MIUNICODE *text,
00236 UINT32 *pMatchStart = 0,
00237 UINT32 *pMatchEnd = 0,
00238 UINT32 textlen = ~0,
00239 int flags = 0
00240 );
00241 #endif
00242 #endif
00243
00244
00256 bool Exec (
00257 const MIUNICODE *text,
00258 UINT32 *pMatchStart = 0,
00259 UINT32 *pMatchEnd = 0,
00260 UINT32 textlen = ~0,
00261 int flags = 0
00262 ) const;
00263
00264 #if 0
00265 #ifndef GENERATING_DOXYGEN_OUTPUT
00267 void Write (
00268 FILE *out
00269 );
00270 #endif
00271 #endif
00272
00273 private:
00274 #ifndef GENERATING_DOXYGEN_OUTPUT
00275 UINT32 m_flags;
00276
00277 URESYMTAB *m_syms;
00278 MIUNICODE m_nsyms;
00279
00280 UREDSTATE *m_states;
00281 MIUNICODE m_nstates;
00282
00283 URETRANS *m_trans;
00284 MIUNICODE m_ntrans;
00285
00286 friend struct UREBUFFER;
00287 #endif // GENERATING_DOXYGEN_OUTPUT
00288 };
00289
00290 #undef CLASSLIBEXPORT
00291
00292
00293
00294 #endif