/[pcre]/code/trunk/pcrecpp.h
ViewVC logotype

Diff of /code/trunk/pcrecpp.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 96 by nigel, Fri Mar 2 13:10:43 2007 UTC revision 326 by ph10, Sat Mar 8 17:24:02 2008 UTC
# Line 331  Line 331 
331    
332    
333  #include <string>  #include <string>
 #include <pcrecpparg.h>   // defines the Arg class  
 // These aren't technically needed here, but we include them  
 // anyway so folks who include pcrecpp.h don't have to include  
 // all these other header files as well.  
334  #include <pcre.h>  #include <pcre.h>
335    #include <pcrecpparg.h>   // defines the Arg class
336    // This isn't technically needed here, but we include it
337    // anyway so folks who include pcrecpp.h don't have to.
338  #include <pcre_stringpiece.h>  #include <pcre_stringpiece.h>
339    
340  namespace pcrecpp {  namespace pcrecpp {
# Line 347  namespace pcrecpp { Line 346  namespace pcrecpp {
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  
 extern 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,
352  // along with other options we put on top of pcre.  // along with other options we put on top of pcre.
353  // Only 9 modifiers, plus match_limit and match_limit_recursion,  // Only 9 modifiers, plus match_limit and match_limit_recursion,
354  // are supported now.  // are supported now.
355  class RE_Options {  class PCRECPP_EXP_DEFN RE_Options {
356   public:   public:
357    // constructor    // constructor
358    RE_Options() : match_limit_(0), match_limit_recursion_(0), all_options_(0) {}    RE_Options() : match_limit_(0), match_limit_recursion_(0), all_options_(0) {}
# Line 404  class RE_Options { Line 400  class RE_Options {
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);
# Line 488  static inline RE_Options EXTENDED() { Line 484  static inline RE_Options EXTENDED() {
484  // Interface for regular expression matching.  Also corresponds to a  // Interface for regular expression matching.  Also corresponds to a
485  // pre-compiled regular expression.  An "RE" object is safe for  // pre-compiled regular expression.  An "RE" object is safe for
486  // concurrent use by multiple threads.  // concurrent use by multiple threads.
487  class RE {  class PCRECPP_EXP_DEFN RE {
488   public:   public:
489    // We provide implicit conversions from strings so that users can    // We provide implicit conversions from strings so that users can
490    // pass in a string or a "const char*" wherever an "RE" is expected.    // pass in a string or a "const char*" wherever an "RE" is expected.
   RE(const char* pat) { Init(pat, NULL); }  
   RE(const char *pat, const RE_Options& option) { Init(pat, &option); }  
491    RE(const string& pat) { Init(pat, NULL); }    RE(const string& pat) { Init(pat, NULL); }
492    RE(const string& pat, const RE_Options& option) { Init(pat, &option); }    RE(const string& pat, const RE_Options& option) { Init(pat, &option); }
493      RE(const char* pat) { Init(pat, NULL); }
494      RE(const char* pat, const RE_Options& option) { Init(pat, &option); }
495      RE(const unsigned char* pat) {
496        Init(reinterpret_cast<const char*>(pat), NULL);
497      }
498      RE(const unsigned char* pat, const RE_Options& option) {
499        Init(reinterpret_cast<const char*>(pat), &option);
500      }
501    
502    // Copy constructor & assignment - note that these are expensive    // Copy constructor & assignment - note that these are expensive
503    // because they recompile the expression.    // because they recompile the expression.
# Line 618  class RE { Line 620  class RE {
620    //           1.5-2.0?    //           1.5-2.0?
621    // may become:    // may become:
622    //           1\.5\-2\.0\?    //           1\.5\-2\.0\?
623      // Note QuoteMeta behaves the same as perl's QuoteMeta function,
624      // *except* that it escapes the NUL character (\0) as backslash + 0,
625      // rather than backslash + NUL.
626    static string QuoteMeta(const StringPiece& unquoted);    static string QuoteMeta(const StringPiece& unquoted);
627    
628    
# Line 641  class RE { Line 646  class RE {
646    // regexp wasn't valid on construction.    // regexp wasn't valid on construction.
647    int NumberOfCapturingGroups() const;    int NumberOfCapturingGroups() const;
648    
649      // The default value for an argument, to indicate no arg was passed in
650      static Arg no_arg;
651    
652   private:   private:
653    
654    void Init(const string& pattern, const RE_Options* options);    void Init(const string& pattern, const RE_Options* options);

Legend:
Removed from v.96  
changed lines
  Added in v.326

  ViewVC Help
Powered by ViewVC 1.1.5