@ -2374,6 +2374,9 @@ inline void DetectLeftRecursion::visit(Reference& ope) {
refs_.insert(ope.name_);
if (ope.rule_) {
ope.rule_->accept(*this);
if (done_ == false) {
return;
}
done_ = true;
@ -1032,6 +1032,17 @@ TEST_CASE("Left recursive with zom test", "[left recursive]")
REQUIRE(!parser);
TEST_CASE("Left recursive with a ZOM content rule", "[left recursive]")
{
parser parser(R"(
A <- B
B <- _ A
_ <- ' '* # Zero or more
)");
TEST_CASE("Left recursive with empty string test", "[left recursive]")
parser parser(