[NTG-context] Off-topic: Struggles with LPEG grammar

Taco Hoekwater taco at elvenkind.com
Mon Dec 21 13:46:45 CET 2020



> On 21 Dec 2020, at 13:16, Mojca Miklavec <mojca.miklavec.lists at gmail.com> wrote:
> 
> My only explanation would be that perhaps "^1" is so greedy that the
> rest of the pattern doesn't get found. But I don't want to believe
> that explanation.

Which (of course) means that that is exactly what happens ;)

The ones that match are

ababbb (a (ba+bb) b) => r4 r1(r3(r5 r4) r2(r5 r5)) r5
abbbab (a (bb+ba) b) => r4 r1(r2(r5 r5) r3(r5 r4)) r5

With the ^1, in the “bb” cases the first “b” eats all three “b”s: 

ababbb fails the r5 at the end

abbbab fails the first r2 already (since the second r5 therein never happens)

Best wishes,
Taco



More information about the ntg-context mailing list