es. For relatively complex
  parsing tasks, the same way we write robust C++ programs, it is advisable to
  develop a grammar iteratively on a per-module basis where each module is a small
  subset of the complete grammar. That way, we can stress-test individual modules
  piecemeal until we reach the top-most module. For instance, when developing
  a scripting language, we can start with expressions, then move on to statements,
  then functions, upwards until we have a complete grammar. </p>
<p> At some poi