aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/yaml-cpp/src/regex_yaml.cpp
blob: 2933a012dd0b4189a58efca235d1130546084e77 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "regex_yaml.h" 
 
namespace YAML { 
// constructors 
RegEx::RegEx() : m_op(REGEX_EMPTY) {} 
 
RegEx::RegEx(REGEX_OP op) : m_op(op) {} 
 
RegEx::RegEx(char ch) : m_op(REGEX_MATCH), m_a(ch) {} 
 
RegEx::RegEx(char a, char z) : m_op(REGEX_RANGE), m_a(a), m_z(z) {} 
 
RegEx::RegEx(const std::string& str, REGEX_OP op) : m_op(op) { 
  for (std::size_t i = 0; i < str.size(); i++) 
    m_params.push_back(RegEx(str[i])); 
} 
 
// combination constructors 
RegEx operator!(const RegEx& ex) { 
  RegEx ret(REGEX_NOT); 
  ret.m_params.push_back(ex); 
  return ret; 
} 
 
RegEx operator||(const RegEx& ex1, const RegEx& ex2) { 
  RegEx ret(REGEX_OR); 
  ret.m_params.push_back(ex1); 
  ret.m_params.push_back(ex2); 
  return ret; 
} 
 
RegEx operator&&(const RegEx& ex1, const RegEx& ex2) { 
  RegEx ret(REGEX_AND); 
  ret.m_params.push_back(ex1); 
  ret.m_params.push_back(ex2); 
  return ret; 
} 
 
RegEx operator+(const RegEx& ex1, const RegEx& ex2) { 
  RegEx ret(REGEX_SEQ); 
  ret.m_params.push_back(ex1); 
  ret.m_params.push_back(ex2); 
  return ret; 
} 
}