• Noam Postavsky's avatar
    Support (rx (and (regexp EXPR) (literal EXPR))) (Bug#36237) · b59ffd22
    Noam Postavsky authored
    * lisp/emacs-lisp/rx.el (rx-regexp): Allow non-string forms.
    (rx-constituents): Add literal constituent, which is like a plain
    STRING form, but allows arbitrary lisp expressions.
    (rx-literal): New function.
    (rx-compile-to-lisp): New variable.
    (rx--subforms): New helper function for handling subforms, including
    non-constant case.
    (rx-group-if, rx-and, rx-or, rx-=, rx->=, rx-repeat, rx-submatch)
    (rx-submatch-n, rx-kleene, rx-atomic-p): Use it to handle non-constant
    subforms.
    (rx): Document new form, wrap non-constant forms with concat call.
    * test/lisp/emacs-lisp/rx-tests.el (rx-tests--match): New macro.
    (rx-nonstring-expr, rx-nonstring-expr-non-greedy): New tests.
    * etc/NEWS: Announce changes.
    b59ffd22
rx-tests.el 6.56 KB