Regex::Regex(const string &expr)
{
- n_groups = 0;
auto iter = expr.begin();
code = compile(expr, iter, n_groups, false);
++n_groups;
Count repeat_min = 1;
Count repeat_max = 1;
- parse_repeat(expr, i, repeat_min, repeat_max);
+ if(i!=end)
+ parse_repeat(expr, i, repeat_min, repeat_max);
for(unsigned j=0; j<repeat_min; ++j)
result += atom;
result += atom;
}
result += ND_JUMP;
- write_int<Offset>(-(atom.size()+jump_size), result);
+ write_int<Offset>(-static_cast<Offset>(atom.size()+jump_size), result);
}
else if(repeat_max>repeat_min)
{