[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Make peg.el a built-in library?
From: |
Adam Porter |
Subject: |
Re: Make peg.el a built-in library? |
Date: |
Sat, 2 Oct 2021 10:13:24 -0500 |
On Sat, Oct 2, 2021 at 9:45 AM Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>
> >> PS: BTW, regarding your comment:
> >>
> >> ;; Sort the keywords longest-first to work around what seems to be
> >> an
> >> ;; obscure bug in `peg': when one keyword is a substring of
> >> another,
> >> ;; and the shorter one is listed first, the shorter one fails to
> >> match.
> >>
> >> The behavior you describe indeed seems like a bug, but maybe what you
> >> see is slightly different (and not a bug): if you have a PEX like
> >> (and (or "foo" "foobar") "X")
> >> the "foo" will match when faced with "foobarX" and the parser won't
> >> backtrack to try and match the "foobar" when the "X" fails to match.
> >
> > Hmm, thanks. I think an example of the problem is that a predicate in
> > org-ql might have a shorter alias, e.g. "heading" is has the alias
> > "h", and predicates are followed by arguments, like "heading:foo", so
> > IIRC, without sorting them there, "heading:foo" would work, while
> > "h:foo" wouldn't.
>
> Odd. If you have (or "h" "header") in the grammar then I'd expect
> "h:foo" to be recognized but "heading:foo" to be rejected (IOW, that
> would be a bug in the grammar rather than in `peg.el`).
>
> But you describe the exact opposite for which I don't have
> an explanation. So maybe it's a bug in `peg.el`. Could you try and
> distill it into a bug report?
Frankly, probably not. :) I worked on that code a long time ago and
haven't touched it since, so my recollection might not even be
accurate. For me, it Just Works(TM), and I have other Emacs-related
projects that are higher priority, so I don't expect to be able to
work on that part of org-ql or peg.el anytime soon. Sorry. :(
(e.g. I'd really like to make progress on this bug report, so I could
reasonably submit plz.el to ELPA (though I might do that anyway, since
it mostly works fine):
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50166 But it's stumped
me so far. Maybe someone else would have some ideas sometime...)
Re: Make peg.el a built-in library?, Stefan Monnier, 2021/10/09