handle inline comments
parent
1b527aa004
commit
dea0cdbdf3
39
Statement.cc
39
Statement.cc
|
@ -101,10 +101,11 @@ NativeStatement::computingPass()
|
||||||
|
|
||||||
bool skip = false;
|
bool skip = false;
|
||||||
string newstr = "";
|
string newstr = "";
|
||||||
int lastidx = 0;
|
|
||||||
sregex date_expr = sregex::compile( "-?[0-9]+[Mm](1[0-2]|[1-9])|-?[0-9]+[Qq][1-4]|-?[0-9]+[Ww]([1-4][0-9]|5[0-2]|[1-9])" );
|
sregex date_expr = sregex::compile( "-?[0-9]+[Mm](1[0-2]|[1-9])|-?[0-9]+[Qq][1-4]|-?[0-9]+[Ww]([1-4][0-9]|5[0-2]|[1-9])" );
|
||||||
string format( "dynDate('$&')" );
|
string format( "dynDate('$&')" );
|
||||||
for (size_t i = 0; i < apostrophes.size(); i++)
|
size_t length, i, lastidx, commentidx;
|
||||||
|
length = lastidx = 0;
|
||||||
|
for (i = 0; i < apostrophes.size(); i++)
|
||||||
if (apostrophes[i] == 0)
|
if (apostrophes[i] == 0)
|
||||||
skip = true;
|
skip = true;
|
||||||
else
|
else
|
||||||
|
@ -116,14 +117,40 @@ NativeStatement::computingPass()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
length = apostrophes[i] - lastidx;
|
||||||
|
commentidx = native_statement.substr(lastidx, length).find("%", 0);
|
||||||
|
if (commentidx != string::npos)
|
||||||
|
length = commentidx;
|
||||||
|
|
||||||
|
newstr.append(regex_replace(native_statement.substr(lastidx, length), date_expr, format));
|
||||||
|
if (commentidx != string::npos)
|
||||||
|
{
|
||||||
|
lastidx += commentidx;
|
||||||
|
while (i++ < apostrophes.size())
|
||||||
|
{
|
||||||
|
newstr.append(native_statement.substr(lastidx, apostrophes[i] - lastidx));
|
||||||
|
lastidx = apostrophes[i];
|
||||||
|
}
|
||||||
|
native_statement = newstr;
|
||||||
|
return;
|
||||||
|
}
|
||||||
skip = true;
|
skip = true;
|
||||||
newstr.append(regex_replace(native_statement.substr(lastidx, apostrophes[i] - lastidx),
|
|
||||||
date_expr, format));
|
|
||||||
}
|
}
|
||||||
lastidx = apostrophes[i];
|
lastidx = apostrophes[i];
|
||||||
}
|
}
|
||||||
newstr.append(regex_replace(native_statement.substr(lastidx, native_statement.size() - lastidx),
|
length = native_statement.length() - lastidx;
|
||||||
date_expr, format));
|
commentidx = native_statement.substr(lastidx, length).find("%", 0);
|
||||||
|
if (commentidx != string::npos)
|
||||||
|
length = commentidx;
|
||||||
|
|
||||||
|
newstr.append(regex_replace(native_statement.substr(lastidx, length), date_expr, format));
|
||||||
|
|
||||||
|
if (commentidx != string::npos)
|
||||||
|
{
|
||||||
|
lastidx += commentidx;
|
||||||
|
newstr.append(native_statement.substr(lastidx, native_statement.length() - lastidx));
|
||||||
|
}
|
||||||
|
|
||||||
native_statement = newstr;
|
native_statement = newstr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue