Rewrite.

We'll be able to fold back through the contexts when it changes
unexpectedly this way. For example, when a DATA list ends implicitly
with a new keyword, or handling errors when a parameter is missing or of
the wrong type.