ccls/src/match.h

28 lines
644 B
C
Raw Normal View History

#pragma once
2018-03-31 03:16:33 +00:00
#include <optional>
2017-05-21 21:00:48 +00:00
#include <regex>
2017-05-21 21:00:48 +00:00
#include <string>
#include <vector>
struct Matcher {
2018-03-31 03:16:33 +00:00
static std::optional<Matcher> Create(const std::string& search);
bool IsMatch(const std::string& value) const;
std::string regex_string;
std::regex regex;
};
// Check multiple |Matcher| instances at the same time.
struct GroupMatch {
GroupMatch(const std::vector<std::string>& whitelist,
const std::vector<std::string>& blacklist);
2017-09-22 01:14:57 +00:00
bool IsMatch(const std::string& value,
std::string* match_failure_reason = nullptr) const;
std::vector<Matcher> whitelist;
std::vector<Matcher> blacklist;
};