namespace GL {
namespace SL {
-SourceMap::SourceMap():
- base_index(0)
-{ }
-
-void SourceMap::set_name(unsigned i, const std::string &n)
+void SourceMap::set_name(unsigned i, const string &n)
{
if(source_names.empty())
base_index = i;
source_names[i] = n;
}
+const string &SourceMap::get_name(unsigned i) const
+{
+ i -= base_index;
+ if(i<source_names.size())
+ return source_names[i];
+
+ static string empty;
+ return empty;
+}
+
void SourceMap::merge_from(const SourceMap &other)
{
if(other.base_index<base_index)
static const Regex r_message("^(([0-9]+)\\(([0-9]+)\\) :|ERROR: ([0-9]+):([0-9]+):) (.*)$");
vector<string> lines = split(errors, '\n');
string translated;
- for(vector<string>::const_iterator i=lines.begin(); i!=lines.end(); ++i)
+ for(const string &l: lines)
{
- RegMatch m = r_message.match(*i);
+ RegMatch m = r_message.match(l);
if(m)
{
unsigned index = 0;
translated += format("%s:%d: %s", src, line, m[6].str);
}
else
- translated += *i;
+ translated += l;
translated += '\n';
}