On Thu, Apr 20, 2006 at 09:19:48AM -0700, Larry Wall wrote: > : > +Any other value causes the match to fail. In particular, shorter keys > : > +are not tried if a longer one matches and fails. > : > : Is there a way to say to continue with the next shortest key? > > Yeah, use <@rules> rather than <%tokens>. :) > > Actually, how about we say that '' just succeeds, and a number says to > retry ignoring keys longer than the number?
s/retry/continue trying/, perhaps? Using '' (instead of 1) as the success value sounds Good, since null string always matches following a key. Taking "ignoring keys longer than the number" literally, would we also read this then that returning 0 tries the (remaining) empty keys of each hash, and returning -1 fails the matching of <%tokens>? > [ discussion of unbalanced <( ... )> > I'm inclined to say that the conservative thing is to require balance. > We could relax it later, I suppose. Works for me. > : > +Just as C<rx> has variants, so does the C<rule> declarator. > : > +In particular, there are two special variants for use in grammars: > : > +C<token> and C<parse>. > : > : I agree with Audrey that C<parse> is probably too useful in other > : contexts. C<token:w> works fine for me. > > Aesthetically, I hate :w, actually...and the whole point of naming "token" > is that it is *not* a normal parser rule, but a lexer rule. > > But I agree that "parse" is probably the wrong word. Earlier versions > had "prod" (short for "production") or "words". Two other ideas (from a short walk)... how about something along the lines of "phrase" or "sequence"? Pm