(Inform 6) parse_name hates my guts

How exactly do I get parse_name to do what I want it to do? I have a can of soda (well, a class of soda cans, but that shouldn’t really matter). A can of soda can exist in three states: closed, open (but not drunk), or open (and empty). So far, no problems, and short_name happily obliges when I tell it to report on the can’s state. But how exactly do I make it so that the player can refer to a can as “can of coca-cola” or “coke can” all day long, but only “empty can” or “empty can of coca-cola” when it’s empty?

I think DM4 covers this, but only very briefly, and, well, sort of confusingly, so some help would be mighty neighborly of ya.

I wrote up this page, many years ago: eblong.com/zarf/inftricks/tip_parsename.html

Holy crap, Zarf helped me out. Thanks!