Factor out some duplication in parse(), and tweak some comments and docs.
Add pos kwarg to Grammar.parse as well.