And that's not even the part of code that generates runtime tokens. It's just the code to make a type definition for a method declaration. I'd been meaning to clean it up, and now's a good a time as any. This should also allow type parameterization in phrases (which was missing) and phrase yield methods too. I broke the 'simple' case of non-phrase method into about a half dozen smaller methods. It's still not quite readable, but a lot better.
That leaves the other three parts of the big method: the first part of a phrase, the last part of a phrase, and the stuff in between. Then some added cleanup (or perhaps a second iteration of refactoring).
Ideally it'll get done for next weekend, leaving debugging the new features.