#ifndef OPENFPGA_WILDCARD_STRING_H #define OPENFPGA_WILDCARD_STRING_H /******************************************************************** * Include header files that are required by data structure declaration *******************************************************************/ #include #include /* namespace openfpga begins */ namespace openfpga { /************************************************************************ * This file includes a object that can apply wildcard characters * By default it will replace any digital numbers with a '*' character * Users can set the wildcard character on their needs * * Example: * std::string orig_str; * WildCardString wc_str(orig_str); * std::string output = wc_str.data(); * ***********************************************************************/ class WildCardString { public: /* Constructors*/ WildCardString(const std::string& data); public: /* Public Accessors */ std::string data() const; public: /* Public Mutators */ /* Give a string to apply wildcards */ void set_data(const std::string& data); private: /* Private Mutators */ /* Use default wildcard character '*' */ void set_default_wildcard_char(); /* Use default sensitive words which are numbers */ void set_default_sensitive_chars(); /* Replace sensitive words with wildcard characters */ void apply_wildcard_char(); /* Remove redundant wildcard chars (which are next to each other) */ void compress(); private: /* Internal data */ std::string data_; /* Lines to be splited */ std::vector sensitive_chars_; char wildcard_char_; }; } // namespace openfpga #endif