Early preview of s-expression based query parser

Subject: Early preview of s-expression based query parser

Date: Tue, 13 Jul 2021 21:02:28 -0300

To: notmuch@notmuchmail.org


From: David Bremner

I have no plans to replace or deprecate the Xapian query parser based
syntax. On the other hand, having full control over the parser makes
it easier to support certain features. As an example, once the basic
parser is in place, the last patch in the series adds prefixed
wildcards with about 10 lines of code.

S-expressions are also hand for constructing queries from other
queries, which is not really well supported by the Xapian query
parser. So it should also make it possible to fix a few bugs resulting
from gluing strings together and hoping the result is a valid query.

There are quite a few missing features here, and a couple known bugs
(the treatment of body: queries is probably mostly broken in the new
parser). Finally, when I next re-roll the series I will probably push
the error handling earlier in the series.

Feedback of any kind is welcome, but particularly on UI / UX
issues. You can get a pretty good idea of the supported syntax by
looking at the tests.

It does add a dependency on sfsexp, a C s-expression parsing
library. It's not heavyweight, but it's also not available very many
places yet (other than on github).  Upstream has been great about
merging a few changes for me. One question mark is UTF8 support; it
seems to work OK, but upstream is in the process of documenting the
support status.

notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org