feat(parser): Do not use exceptions for control flow.

Closes #17