// file : CCF/CodeGenerationKit/Regex.hpp // author : Boris Kolpackov // cvs-id : $Id$ #ifndef CCF_RUNTIME_REGEX_HPP #define CCF_RUNTIME_REGEX_HPP #include #include namespace regex { template std::basic_string perl_s (std::basic_string const& src, std::basic_string const& e) { typedef std::basic_string string; typedef typename string::size_type size; if (e.empty ()) return src; C delimiter (e[0]); size first = e.find (delimiter); size middle = e.find (delimiter, first + 1); size last = e.find (delimiter, middle + 1); string pattern (e, first + 1, middle - first - 1); string format (e, middle + 1, last - middle - 1); //std::cout << pattern << " " << format << std::endl; boost::basic_regex expr (pattern); return regex_merge ( src, expr, format, boost::match_default | boost::format_all ); } template std::basic_string perl_s (std::basic_string const& src, C const* e) { return perl_s (src, std::basic_string (e)); } } #endif // CCF_RUNTIME_REGEX_HPP