string const Variables::get(string const & var) const
{
- Vars::const_iterator cit = vars_.find(var);
- if (cit != vars_.end())
- return (*cit).second;
- else
- return string();
+ Vars::const_iterator cit = vars_.find(var);
+ if (cit != vars_.end())
+ return (*cit).second;
+ else
+ return string();
}
-bool Variables::set(string const & var) const
+bool Variables::isSet(string const & var) const
{
- Vars::const_iterator cit = vars_.find(var);
- return (cit != vars_.end());
+ Vars::const_iterator cit = vars_.find(var);
+ return (cit != vars_.end());
}
string const Variables::expand(string const & s) const
{
- string str(s);
- LRegex reg("\\$\\{\\(.*\\)\\}");
-
- if (!reg.exact_match(str))
- return str;
-
- LRegex::MatchPair match;
- string var;
-
- do {
- match = reg.first_match(str);
- var = str.substr(match.first,match.second);
- // we correct the match to take ${} in account.
- str.replace(match.first - 2, match.second + 3, get(var));
- } while (reg.exact_match(str));
-
- return str;
+ string str(s);
+ LRegex reg("\\$\\{\\(.*\\)\\}");
+
+ if (!reg.exact_match(str))
+ return str;
+
+ LRegex::MatchPair match;
+ string var;
+
+ do {
+ match = reg.first_match(str);
+ var = str.substr(match.first,match.second);
+ // we correct the match to take ${} in account.
+ str.replace(match.first - 2, match.second + 3, get(var));
+ } while (reg.exact_match(str));
+
+ return str;
}
#ifdef TEST
using std::cout;
int main() {
- Variables vars;
- vars.set("x", "hello");
- vars.set("y", "world");
- cout << vars.expand("${x}") << endl;
+ Variables vars;
+ vars.set("x", "hello");
+ vars.set("y", "world");
+ cout << vars.expand("${x}") << endl;
}
#endif
///
class Variables {
public:
- ///
- void set(string const &, string const &);
- ///
- string const get(string const &) const;
- ///
- bool set(string const & var) const;
- ///
- string const expand(string const &) const;
+ ///
+ void set(string const &, string const &);
+ ///
+ string const get(string const &) const;
+ ///
+ bool isSet(string const & var) const;
+ ///
+ string const expand(string const &) const;
private:
- ///
- typedef std::map<string, string> Vars;
- ///
- Vars vars_;
+ ///
+ typedef std::map<string, string> Vars;
+ ///
+ Vars vars_;
};
#endif