#pragma once #include "types.hh" #include <sys/types.h> #include <regex.h> #include <map> namespace nix { MakeError(RegexError, Error) class Regex { public: Regex(const string & pattern, bool subs = false); ~Regex(); bool matches(const string & s); typedef std::map<unsigned int, string> Subs; bool matches(const string & s, Subs & subs); private: unsigned nrParens; regex_t preg; string showError(int err); }; }