Subject: Re: bug#74963: Ambiguous treesit named and anonymous nodes in ruby-ts-mode

From: Juri Linkov <[email-masked]>
Date: Tue, 14 Jan 2025 09:52:13 +0200

>>    (sentence
>>     ,(rx (or (and bos (or "declaration"
>>                           "enum_specifier"
>>                           "union_specifier")
>>                   eos)
>>              (or "preproc"
>>                  "statement"))))
>
> Looks good. I’ve always used rx, it has the additional benefit of being macro expanded at compile time.
>
> Also, I finally added support for ‘and’, ‘named’ and ‘anonymous’. I haven’t test it yet (sorry).

Thanks!  Does it make sense also to add predicates to define
whether the node names should be matched completely?
Then maybe add two separate predicates for strict and lax matching,
e.g. for the same thing as above:

  (sentence
   (or (strict ,(rx (or "declaration"
                        "enum_specifier"
                        "union_specifier")))
       (lax ,(rx (or "preproc"
                     "statement")))))