On Fri, Feb 11, 2022 at 09:30:29AM -0500, Wietse Venema <wie...@porcupine.org> wrote:
> raf: > > On Thu, Feb 10, 2022 at 11:21:07PM -0500, Viktor Dukhovni > > <postfix-us...@dukhovni.org> wrote: > > > > > > On 10 Feb 2022, at 11:17 pm, raf <post...@raf.org> wrote: > > > > > > > > But I still don't see why it was only the second > > > > replacement index that was out of range, and not the > > > > first as well. > > > > > > https://sciencing.com/what-is-a-counterexample-in-algebra-12750822.html > > > ... > > > One Counterexample Is Sufficient > > > > > > -- > > > Viktor. > > > > Sorry, I shouldn't have said "as well". > > Maybe I should have said "instead". > > > > I meant that I assume that the subject of an error > > message would be the first instance of an error. I'd > > expect a single error message, just not the one that > > was reported. I was assuming that things are processed > > left to right (patterns, input, FSAs etc.), and so I > > There are two parsers: one for the LHS and one for the RHS. Each > parser reports its highest substitution index, and if the highest > index from the RHS parser is larger, then Postfix reports an > out-of-range error for that specific index. > > You appear to think that the RHS parser "knows" details about the > LHS, but that is not the case*. Postfix in large part avoids tight > couplings. That makes code easier to reason about, so that even I > can understand how or why it works. > > Wietse > > *In fact it the other way around. If the RHS contains no $number. > then Postfix informs the LHS parser that the regex library does not > need to report the (begin, end) of matches, so it will be a little > smaller and will run a little faster. Thanks for that explanation. I knew there had to be a good reason. cheers, raf