#include <wvglob.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 | |
WvGlob () | |
Construct an empty glob object. | |
WvGlob (WvStringParm glob) | |
Construct an glob object for the given pattern. | |
bool | set (WvStringParm glob) |
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. | |
void | seterr (WvStringParm specialerr) |
void | seterr (WVSTRING_FORMAT_DECL) |
void | seterr (const WvErrorBase &err) |
bool | set (WvStringParm regex, int cflags=default_cflags) |
Replace the current regex to match with a new one. | |
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_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 | glob_to_regex (WvStringParm glob, WvString *errstr) |
Convert a glob string to its regex equvilent. | |
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 |
Definition at line 15 of file wvglob.h.
enum WvRegex::EFlags [inherited] |
Flags that affect matching of regex.
Used in match() and continuable_match()
WvGlob::WvGlob | ( | ) |
bool WvGlob::set | ( | WvStringParm | glob | ) |
Replace the current regex to match with a new one.
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 18 of file wvglob.cc.
References WvErrorBase::isok(), and WvErrorBase::seterr().
WvString WvGlob::glob_to_regex | ( | WvStringParm | glob, | |
WvString * | errstr | |||
) | [static] |
Convert a glob string to its regex equvilent.
All wildcards (*, ?, {x,y,z}) are wrapped in parens for capturing into registers
Definition at line 287 of file wvglob.cc.
References WvString::edit(), and WvFastString::isnull().
bool WvRegex::match | ( | WvStringParm | string, | |
WVREGEX_REGS_DECL | ||||
) | const [inline, inherited] |
Match a given string against the compiled regular expression.
string | The string to match | |
(remaining) | WvString registers to capture substring matches as specified in the RE |
bool WvRegex::match | ( | WvStringParm | string, | |
int | eflags, | |||
WVREGEX_REGS_DECL | ||||
) | const [inline, inherited] |
bool WvRegex::set | ( | WvStringParm | regex, | |
int | cflags = default_cflags | |||
) | [inherited] |
Replace the current regex to match with a new one.
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.
bool WvRegex::continuable_match | ( | WvStringParm | string, | |
int & | match_start, | |||
int & | match_end, | |||
WVREGEX_REGS_DECL | ||||
) | const [inline, inherited] |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
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, inherited] |
Match a given string against the compiled regular expression, capturing the start and end positions of the matching string.
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 |
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(), and 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] |