NCBI C++ ToolKit
Field_rule.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: Field_rule.cpp 44386 2010-01-11 13:19:36Z bollin $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Author: .......
27  *
28  * File Description:
29  * .......
30  *
31  * Remark:
32  * This code was originally generated by application DATATOOL
33  * using the following specifications:
34  * 'valid.asn'.
35  */
36 
37 // standard includes
38 #include <ncbi_pch.hpp>
39 
40 // generated includes
42 #include <util/xregexp/regexp.hpp>
43 
44 // generated classes
45 
47 
48 BEGIN_objects_SCOPE // namespace ncbi::objects::
49 
50 // destructor
52 {
53 }
54 
55 
57 {
58  if (!IsSetMatch_expression()) {
59  return true;
60  }
61 
62  // because C Toolkit pattern match needs to escape '|' but C++ Toolkit does not
63  string match = GetMatch_expression();
64  NStr::ReplaceInPlace(match, "\\|", "|");
65  NStr::ReplaceInPlace(match, "\\(", "(");
66  NStr::ReplaceInPlace(match, "\\)", ")");
67 
68  CRegexp r(match);
69 
70  if (r.IsMatch (str)) {
71  return true;
72  } else {
73  return false;
74  }
75 
76 }
77 
78 
79 END_objects_SCOPE // namespace ncbi::objects::
80 
82 
83 /* Original file checksum: lines: 57, chars: 1723, CRC32: 7dc89f12 */
User-defined methods of the data storage class.
~CField_rule(void)
Definition: Field_rule.cpp:51
bool DoesStringMatchRuleExpression(string str) const
Definition: Field_rule.cpp:56
CRegexp –.
Definition: regexp.hpp:70
static const char * str(char *buf, int n)
Definition: stats.c:84
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
Definition: ncbistr.cpp:3405
bool IsSetMatch_expression(void) const
Check if a value has been assigned to Match_expression data member.
const TMatch_expression & GetMatch_expression(void) const
Get the Match_expression member data.
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static int match(register const pcre_uchar *eptr, register const pcre_uchar *ecode, const pcre_uchar *mstart, int offset_top, match_data *md, eptrblock *eptrb, unsigned int rdepth)
Definition: pcre_exec.c:513
C++ wrappers for the Perl-compatible regular expression (PCRE) library.
Modified on Thu May 23 12:28:31 2024 by modify_doxy.py rev. 669887