From: Andrew Johnson Date: 2006-03-22T01:43:50+09:00 Subject: Re: POLS violation? /\s*/ no match at StringScanner end On Tue, 21 Mar 2006 22:09:18 +0900, Robert Feldt wrote: > On 3/21/06, Carlos wrote: >> Robert Feldt wrote: [snip] >> > Is it a bug or a feature?! I can see arguments for both sides but for >> > me it violates POLS. Opinions? >> >> I think, if it matches /\s*/ at end of string, then it should scan it >> too; and then, #eos? would never be true (you could scan /\s*/ at the >> end infinitly). >> > My point is that my POLS is that eos? should be true *and* you should > be able to scan any regexp that can match empty string infinitely at > the end. If not the behavior at the end is different than from within > which means that users need to handle the situation differently > depending on when such regexps are used. While I can see your point, I don't see it as a POLS violation: irb(main):014:0> lex = StringScanner.new("") => # The termination condition for a scanner is eos, and I would expect that a terminated lexical scanner should consistently *not scan*, regardless of whether a given pattern (eg, /\s*/, /\z/, /$/, //) could match at eos. I do expect a different behaviour between a lexical scanner in the middle of its input, and one that reached its termination condition. However, the StringScanner docs aren't very explicit about this. > But my POLS might be "wrong". ditto :-) andrew -- Andrew L. Johnson http://www.siaris.net/ What have you done to the cat? It looks half-dead. -- Schroedinger's wife