Thanks for the help. I used it for a tab-completing CLI I developed to talk to the Cassandra database; see Net::Cassandra::Easy 0.07 or later on CPAN (cassidy.pl is the CLI).
I'm not happy with the verbosity of the resulting grammar but it works well. Maybe P::RD could have better built-in completion support, similar to the way <autotree> works: something you can access when a rule fails that tells you how far it got and what was successfully parsed. Basically the $expecting variable you suggested but set automatically. Ted