So, after sleeping on it, I finally resolved just to rewrite the darn code.
Took me the better part of a day, but here I have it, a straight-forward iterative command-line interpreter. What it lacks in object-oriented abstraction, it makes up in simplicity: a couple hundred lines later, I was able to remove a dozen extra classes. And it works.
