346 |
#define PCRE_IS_SET(o) \ |
#define PCRE_IS_SET(o) \ |
347 |
(all_options_ & o) == o |
(all_options_ & o) == o |
348 |
|
|
|
// We convert user-passed pointers into special Arg objects |
|
|
PCRECPP_EXP_DECL Arg no_arg; |
|
|
|
|
349 |
/***** Compiling regular expressions: the RE class *****/ |
/***** Compiling regular expressions: the RE class *****/ |
350 |
|
|
351 |
// RE_Options allow you to set options to be passed along to pcre, |
// RE_Options allow you to set options to be passed along to pcre, |
400 |
return PCRE_IS_SET(PCRE_DOTALL); |
return PCRE_IS_SET(PCRE_DOTALL); |
401 |
} |
} |
402 |
RE_Options &set_dotall(bool x) { |
RE_Options &set_dotall(bool x) { |
403 |
PCRE_SET_OR_CLEAR(x,PCRE_DOTALL); |
PCRE_SET_OR_CLEAR(x, PCRE_DOTALL); |
404 |
} |
} |
405 |
|
|
406 |
bool extended() const { |
bool extended() const { |
407 |
return PCRE_IS_SET(PCRE_EXTENDED); |
return PCRE_IS_SET(PCRE_EXTENDED); |
408 |
} |
} |
409 |
RE_Options &set_extended(bool x) { |
RE_Options &set_extended(bool x) { |
410 |
PCRE_SET_OR_CLEAR(x,PCRE_EXTENDED); |
PCRE_SET_OR_CLEAR(x, PCRE_EXTENDED); |
411 |
} |
} |
412 |
|
|
413 |
bool dollar_endonly() const { |
bool dollar_endonly() const { |
414 |
return PCRE_IS_SET(PCRE_DOLLAR_ENDONLY); |
return PCRE_IS_SET(PCRE_DOLLAR_ENDONLY); |
415 |
} |
} |
416 |
RE_Options &set_dollar_endonly(bool x) { |
RE_Options &set_dollar_endonly(bool x) { |
417 |
PCRE_SET_OR_CLEAR(x,PCRE_DOLLAR_ENDONLY); |
PCRE_SET_OR_CLEAR(x, PCRE_DOLLAR_ENDONLY); |
418 |
} |
} |
419 |
|
|
420 |
bool extra() const { |
bool extra() const { |
421 |
return PCRE_IS_SET( PCRE_EXTRA); |
return PCRE_IS_SET(PCRE_EXTRA); |
422 |
} |
} |
423 |
RE_Options &set_extra(bool x) { |
RE_Options &set_extra(bool x) { |
424 |
PCRE_SET_OR_CLEAR(x, PCRE_EXTRA); |
PCRE_SET_OR_CLEAR(x, PCRE_EXTRA); |
643 |
// regexp wasn't valid on construction. |
// regexp wasn't valid on construction. |
644 |
int NumberOfCapturingGroups() const; |
int NumberOfCapturingGroups() const; |
645 |
|
|
646 |
|
// The default value for an argument, to indicate no arg was passed in |
647 |
|
static Arg no_arg; |
648 |
|
|
649 |
private: |
private: |
650 |
|
|
651 |
void Init(const string& pattern, const RE_Options* options); |
void Init(const string& pattern, const RE_Options* options); |