in reply to Parse::RecDescent question

<perl_quotelike> must be something from a new version of PRD - I've never seen it. I can guess what it does, but then I'm surprised it doesn't eat NoValDefaultsTo1.

I do understand why NoValDefaultsTo1 gets eaten as a 'val' if you use something like /.*?$/ or /\w+|"[^"]*"/. It's because you say that a "single" consists of a "key" followed by zero or more "val"s. There's no rule at all that says that NoValDefaultsTo1 can't be one of the vals. PRD will skip whitespace between tokens, and a newline is just the same as a space. PRD isn't saying "Heh, I say a newline. Let me see, the programmer wanted me to return from N levels of rule matching".

P.S. Could someone explain the difference between <leftop> and <rightop>
That's explained in the manual. But note that in many cases, it doesn't matter which one you use.

Abigail