1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-10 08:10:21 -08:00
emacs/test/lisp/emacs-lisp
Mattias Engdegård de6c1c4d5c rx: Better translation of char-matching patterns
Translate or-patterns that (even partially) match single characters
into character alternatives which are more efficient in matching,
sometimes algorithmically so.  Example:

  (or "%" (in "a-z") space)

was previously translated to

  "%\\|[a-z]\\|[[:space:]]"

but now becomes

  "[%a-z[:space:]]"

Single-char patterns include `nonl` and `anychar`, which now can also
be used in set operations (union, complement and intersection), and
character classes.  For example, `(or nonl "\n")` is now equivalent to
`anychar`.

* lisp/emacs-lisp/rx.el (rx--expand-def): Remove, split into...
(rx--expand-def-form, rx--expand-def-symbol): ...these.
(rx--translate-compat-symbol-entry)
(rx--translate-compat-form-entry): New functions for handling the
legacy extension mechanism.
(rx--normalise-or-arg): Renamed to...
(rx--normalise-char-pattern): ...this, and rewrite.
(rx--all-string-or-args): Remove, split into...
(rx--all-string-branches-p, rx--collect-or-strings): ...these.
(rx--char-alt-union, rx--intersection-intervals)
(rx--reduce-to-char-alt, rx--optimise-or-args)
(rx--translate-char-alt, rx--human-readable): New.
(rx--translate-or, rx--translate-not, rx--translate-intersection):
Rewrite.
(rx--charset-p, rx--intervals-to-alt, rx--charset-intervals)
(rx--charset-union, rx--charset-intersection, rx--charset-all)
(rx--translate-union): Remove.
(rx--generate-alt): Decide whether to generate a negated character
alternative.
(rx--complement-intervals, rx--intersect-intervals)
(rx--union-intervals): Rename to...
(rx--interval-set-complement, rx--interval-set-intersection)
(rx--interval-set-union): ...these.
(rx--translate-symbol, rx--translate-form): Refactor extension
processing.  Handle synthetic `rx--char-alt` form.
* test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-char-any-raw-byte)
(rx-any, rx-charset-or): Adapt to changes and extend.
* test/lisp/emacs-lisp/rx-tests.el (rx--complement-intervals)
(rx--union-intervals, rx--intersect-intervals): Rename to...
(rx--interval-set-complement, rx--interval-set-union)
(rx--interval-set-intersection): ...these.
2023-08-12 17:40:36 +02:00
..
bytecomp-resources Check keyword args of make-process 2023-08-08 18:23:00 +02:00
edebug-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
eieio-tests ; eieio-test-persist.el: namespace hygiene 2023-05-25 16:06:07 +02:00
faceup-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
faceup-tests ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
macroexp-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
pp-resources Fix pp-emacs-lisp-code printing of cons cells 2022-05-17 19:45:20 +02:00
shadow-resources Use lexical-binding in most remaining emacs-lisp tests 2020-04-30 12:09:51 +02:00
testcover-resources ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backquote-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
backtrace-tests.el pp-fill: Fix tests breakage 2023-06-17 18:05:33 -04:00
benchmark-tests.el Skip failing tests on Cygwin with native compilation (bug#62450) 2023-03-26 10:04:59 -04:00
bindat-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
bytecomp-tests.el Check keyword args of make-process 2023-08-08 18:23:00 +02:00
cconv-tests.el Don't modify interactive closures destructively (Bug#60974). 2023-03-06 20:28:20 +05:30
check-declare-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
checkdoc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-extra-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-generic-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-lib-tests.el Make old-struct test more robust 2023-05-05 22:00:28 +02:00
cl-macs-tests.el cl-macs-tests.el (cl-&key-arguments): Fix regression 2023-06-27 16:14:32 -04:00
cl-preloaded-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
cl-print-tests.el cl-print: Put buttons on ellipses 2023-07-13 19:00:51 -04:00
cl-seq-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
comp-cstr-tests.el ; Update my mail address 2023-06-08 11:04:10 +02:00
comp-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
copyright-tests.el ; * test/lisp/emacs-lisp/copyright-tests.el: Fix and future-safe. 2023-01-01 13:18:50 +01:00
derived-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
easy-mmode-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
edebug-tests.el Prefix syntax for ,@ in elisp-mode (bug#44418) 2023-06-21 18:00:26 +02:00
ert-tests.el Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
ert-x-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
find-func-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
float-sup-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
generator-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
gv-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
hierarchy-tests.el Fix failing test for package Hierarchy 2022-10-28 10:33:18 +03:00
icons-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
let-alist-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lisp-mnt-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
lisp-mode-tests.el Add 'define-error' to font lock keywords for emacs-lisp-mode 2023-07-26 17:22:05 +03:00
lisp-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
macroexp-tests.el macroexp.el: Fix missing warning for intermediate expansions 2023-07-21 11:48:42 -04:00
map-tests.el Allow default values in 'map-let' and the pcase 'map' form 2023-07-30 15:20:27 +02:00
memory-report-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
multisession-tests.el Merge from origin/emacs-29 2023-01-01 05:47:47 -05:00
nadvice-tests.el ; Pacify new nadvice-tests byte-compiler warnings. 2023-08-06 20:10:16 +02:00
oclosure-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
package-tests.el package-tests.el: Add test for last change 2023-05-26 12:23:59 -04:00
pcase-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
pp-tests.el pp-fill: Fix tests breakage 2023-06-17 18:05:33 -04:00
range-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
regexp-opt-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
ring-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rmc-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
rx-tests.el rx: Better translation of char-matching patterns 2023-08-12 17:40:36 +02:00
seq-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shadow-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
shortdoc-tests.el Fix shortdoc-tests when Unicode arrows can be displayed 2023-03-25 17:43:43 +01:00
subr-x-tests.el Don't mutate constants in tests 2023-05-13 14:31:00 +02:00
syntax-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
tabulated-list-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
testcover-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
text-property-search-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
thunk-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
timer-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
unsafep-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
vtable-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
warnings-tests.el ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00