9 #include <boost/regex.hpp>
11 using namespace boost;
14 #include "../Exceptions.hpp"
15 #include "../CompiledStrings.hpp"
23 ifstream ifs(filename.c_str());
26 throw FileException(
"String table failed to open \"" + filename +
"\".");
34 string_table = regex_replace(string_table,
48 regex string_regexp(
string(
49 "^[[:space:]]*(\\w+)[[:space:]]*=")
50 +
"[[:space:]]*\"(.+)\"[[:space:]]*");
59 bool valid = regex_search(line,string_regexp);
69 regex_match(line.c_str(), what, string_regexp);
70 strings[what[1]] = decodeString(what[2]);
77 if(strings.count(string_name))
79 return strings[string_name].c_str();
88 string StringTable::decodeString(
string str)
92 ret = regex_replace(str,
93 regex(
"\\\\[n]"),
"\n");
94 ret = regex_replace(ret,
95 regex(
"\\\\[t]"),
"\t");
96 ret = regex_replace(ret,
97 regex(
"\\\\[\"]"),
"\\\"");