fix lookbehind to handle `-` sign in substitution of dates in native statements
closes dynare#1708issue#70
parent
976e2ae17a
commit
a778ba4ab4
|
@ -54,8 +54,8 @@ NativeStatement::writeOutput(ostream &output, const string &basename, bool minim
|
|||
{
|
||||
using namespace boost::xpressive;
|
||||
string date_regex = R"((-?\d+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4])))";
|
||||
sregex regex_lookbehind = sregex::compile(R"((?<!\$|\d|[a-zA-Z_]|\'))" + date_regex);
|
||||
sregex regex_dollar = sregex::compile(R"((\$))"+date_regex);
|
||||
sregex regex_lookbehind = sregex::compile(R"((?<!\$|[a-zA-Z_]|-|'))" + date_regex);
|
||||
sregex regex_dollar = sregex::compile(R"((\$))" + date_regex);
|
||||
|
||||
string ns = regex_replace(native_statement, regex_lookbehind, "dates('$&')");
|
||||
ns = regex_replace(ns, regex_dollar, "$2"); //replace $DATE with DATE
|
||||
|
|
Loading…
Reference in New Issue