When reaching a production which is the start production, reset parser state to the beginning to avoid needless production depth.
Refacter debug, progress and error methods. If validating, always output messages at level 0, if showing progress, always output messages at level <= 1.