そもそも、BNF記法が再帰的だし、そのとおり実装しようとしたら再帰になるのが自然
ループだと不自然だろ?