WvRegex Class Reference

#include <wvregex.h>

Inheritance diagram for WvRegex:

Inheritance graph
[legend]

List of all members.


Detailed Description

WvRegex -- Unified support for regular expressions.

Supports matching compiled regular expressions and capturing substrings in registers. !

Definition at line 47 of file wvregex.h.


Public Types

enum  CFlags {
  BASIC = 0, EXTENDED = REG_EXTENDED, ICASE = REG_ICASE, NOSUB = REG_NOSUB,
  NEWLINE = REG_NEWLINE
}
 Flags that affect interpretation of the regex; used in Regex() and set().
enum  EFlags { NOTBOL = REG_NOTBOL, NOTEOL = REG_NOTEOL }
 Flags that affect matching of regex. More...

Public Member Functions

 WvRegex ()
 Construct an empty regex object.
 WvRegex (WvStringParm regex, int cflags=default_cflags)
 Construct a regex object, compiling the given regex.
bool set (WvStringParm regex, int cflags=default_cflags)
 Replace the current regex to match with a new one.
bool match (WvStringParm string, WVREGEX_REGS_DECL) const
 Match a given string against the compiled regular expression.
bool match (WvStringParm string, int eflags, WVREGEX_REGS_DECL) const
 Match a given string against the compiled regular expression.
bool continuable_match (WvStringParm string, int &match_start, int &match_end, WVREGEX_REGS_DECL) const
 Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
bool continuable_match (WvStringParm string, int eflags, int &match_start, int &match_end, WVREGEX_REGS_DECL) const
 Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
virtual bool isok () const
 By default, returns true if geterr() == 0.
virtual int geterr () const
 If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file.
virtual WvString errstr () const
void seterr (WvStringParm specialerr)
void seterr (WVSTRING_FORMAT_DECL)
void seterr (const WvErrorBase &err)
void seterr_both (int _errnum, WvStringParm specialerr)
void seterr_both (int _errnum, WVSTRING_FORMAT_DECL)
void noerr ()
 Reset our error state - there's no error condition anymore.

Static Public Member Functions

static WvString strerror (int errnum)
 A replacement for the operating system strerror() function that can map more kinds of error strings (especially in win32).

Static Public Attributes

static const int default_cflags = WvRegex::EXTENDED
static const int default_eflags = 0
static WvString __wvre_null_reg
 Internal use only.

Protected Attributes

int errnum
WvString errstring

Member Enumeration Documentation

Flags that affect matching of regex.

Used in match() and continuable_match()

Definition at line 130 of file wvregex.h.


Constructor & Destructor Documentation

WvRegex::WvRegex (  )  [inline]

Construct an empty regex object.

Matches will always fail until set() is called with a valid regex.

Definition at line 148 of file wvregex.h.

WvRegex::WvRegex ( WvStringParm  regex,
int  cflags = default_cflags 
) [inline]

Construct a regex object, compiling the given regex.

Parameters:
regex The new regular expression to match
cflags CFlags used to compile the regular expression; the defaults are case sensitive, extended RE.

Definition at line 156 of file wvregex.h.


Member Function Documentation

bool WvRegex::set ( WvStringParm  regex,
int  cflags = default_cflags 
)

Replace the current regex to match with a new one.

Parameters:
regex The new regular expression to match
cflags CFlags used to compile the regular expression; the defaults are case sensitive, extended RE.

Definition at line 27 of file wvregex.cc.

Referenced by WvGlob::set().

bool WvRegex::match ( WvStringParm  string,
WVREGEX_REGS_DECL   
) const [inline]

Match a given string against the compiled regular expression.

Parameters:
string The string to match
(remaining) WvString registers to capture substring matches as specified in the RE
 extern WvString line;
 WvString match;
 if (re.match(line, match))
            wvout->print("Matching substring is '%s'\n", match);

Definition at line 183 of file wvregex.h.

bool WvRegex::match ( WvStringParm  string,
int  eflags,
WVREGEX_REGS_DECL   
) const [inline]

Match a given string against the compiled regular expression.

Parameters:
string The string to match
eflags EFlags that affect matching
(remaining) WvString registers to capture substring matches as specified in the RE

Definition at line 197 of file wvregex.h.

bool WvRegex::continuable_match ( WvStringParm  string,
int &  match_start,
int &  match_end,
WVREGEX_REGS_DECL   
) const [inline]

Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.

Parameters:
string The string to match
match_start If the match succeeds, the starting index of the match in string
match_end If the match succeeds, the index of the character in string following the last character of the match
(remaining) WvString registers to capture substring matches as specified in the RE
 extern WvString line;
 int start = 0;
 WvString match;
 int match_start, match_end;
 while (re.continuable_match(&line[start],
                match_start, match_end, match))
 {
            wvout->print("Matching substring is '%s'@[%s,%s)\n",
                    match, match_start, match_end);
            start += match_end;
 }

Definition at line 230 of file wvregex.h.

Referenced by strcoll_split().

bool WvRegex::continuable_match ( WvStringParm  string,
int  eflags,
int &  match_start,
int &  match_end,
WVREGEX_REGS_DECL   
) const [inline]

Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.

Parameters:
string The string to match
eflags EFlags that affect matching
match_start If the match succeeds, the starting index of the match in string
match_end If the match succeeds, the index of the character in string following the last character of the match
(remaining) WvString registers to capture substring matches as specified in the RE

Definition at line 250 of file wvregex.h.

virtual bool WvErrorBase::isok (  )  const [inline, virtual, inherited]

By default, returns true if geterr() == 0.

Might be overridden so that isok() == false even though no error code has been specified.

Reimplemented in WvBufStream, WvDSAKey, WvEncoderStream, WvFdStream, WvIStreamList, WvNullListener, WvLog, WvSSLStream, WvStream, WvStreamClone, WvTCPConn, WvTimeoutStream, and WvTimeStream.

Definition at line 39 of file wverror.h.

Referenced by WvUnixListener::accept(), WvTCPListener::accept(), WvStream::isok(), and WvGlob::set().

virtual int WvErrorBase::geterr (  )  const [inline, virtual, inherited]

If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file.

If isok() is true, returns an undefined number.

Reimplemented in WvStreamClone.

Definition at line 48 of file wverror.h.

Referenced by UniIniGen::commit(), UniFileSystemGen::get(), WvStreamClone::geterr(), UniIniGen::refresh(), WvStream::seterr(), and WvMagicCircle::WvMagicCircle().

void WvErrorBase::noerr (  )  [inline, inherited]

Reset our error state - there's no error condition anymore.

Definition at line 78 of file wverror.h.


The documentation for this class was generated from the following files:

Generated on Wed May 13 00:34:59 2009 for WvStreams by  doxygen 1.5.5