Designing a good parser for adventure games is an interesting challenge,
as the input language to an adventure game lies partway between the pure
context-free grammar of programming languages and the complex ambiguous
semantics-dependant grammar of natural language.
However, I think most would-be IF authors realise that if they wait
until they have finished writing a good parser and run-time, then their
game itself will never be finished.
Exactly the same is true in many other disciplines: compiler-writers use
Lex and Yacc to write parsers, even though the results aren't as good as
their hand-coded parser would have been, because they want to finish
writing their compiler; people who do natural language processing use
large, clumsy, ready-made parsers like the Core Language Engine because
they want to get on with their research rather than spending several
years designing the right tools.
-- Gareth Rees