00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024
00025
00026
#ifndef _MNRegex_h
00027
#ifdef __GNUG__
00028
#pragma interface
00029
#endif
00030
#define _MNRegex_h 1
00031
00032
#undef OK
00033
00034
#if defined(SHORT_NAMES) || defined(VMS)
00035
#define re_compile_pattern recmppat
00036
#define re_pattern_buffer repatbuf
00037
#define re_registers reregs
00038
#endif
00039
00040
struct re_pattern_buffer;
00041
struct re_registers;
00042
00043 class MNRegex
00044 {
00045
private:
00046
00047
MNRegex(
const MNRegex&) {}
00048
void operator = (
const MNRegex&) {}
00049
00050
protected:
00051 re_pattern_buffer*
buf;
00052 re_registers*
reg;
00053
00054
public:
00055
MNRegex(
const char* t,
00056
int fast = 0,
00057
int bufsize = 40,
00058
const char* transtable = 0);
00059
00060
~MNRegex();
00061
00062
int match(
const char* s,
int len,
int pos = 0)
const;
00063
int search(
const char* s,
int len,
00064
int& matchlen,
int startpos = 0)
const;
00065
int match_info(
int& start,
int& length,
int nth = 0)
const;
00066
00067
int OK() const;
00068 };
00069
00070
00071
00072 extern const
MNRegex RXwhite;
00073 extern const
MNRegex RXint;
00074 extern const
MNRegex RXdouble;
00075
00076
00077 extern const
MNRegex RXalpha;
00078 extern const
MNRegex RXlowercase;
00079 extern const
MNRegex RXuppercase;
00080 extern const
MNRegex RXalphanum;
00081 extern const
MNRegex RXidentifier;
00082
00083
00084 #endif