[latex3-commits] [git/LaTeX3-latex3-latex3] gh590: l3regex: tests for \u and \ur escapes and quantifiers (2aefd281a)
Bruno Le Floch
blflatex at gmail.com
Mon Apr 26 22:41:40 CEST 2021
Repository : https://github.com/latex3/latex3
On branch : gh590
Link : https://github.com/latex3/latex3/commit/2aefd281a1caaf4551815ead7bb6e05af7feb579
>---------------------------------------------------------------
commit 2aefd281a1caaf4551815ead7bb6e05af7feb579
Author: Bruno Le Floch <blflatex at gmail.com>
Date: Mon Apr 26 22:41:40 2021 +0200
l3regex: tests for \u and \ur escapes and quantifiers
>---------------------------------------------------------------
2aefd281a1caaf4551815ead7bb6e05af7feb579
l3kernel/testfiles/m3regex005.luatex.tlg | 57 ++++++++++++++++++++++++++++++++
l3kernel/testfiles/m3regex005.lvt | 26 +++++++++++++++
l3kernel/testfiles/m3regex005.tlg | 57 ++++++++++++++++++++++++++++++++
l3kernel/testfiles/m3regex005.xetex.tlg | 57 ++++++++++++++++++++++++++++++++
l3kernel/testfiles/m3regex007.lvt | 2 +-
l3kernel/testfiles/m3regex007.tlg | 6 ++--
6 files changed, 202 insertions(+), 3 deletions(-)
diff --git a/l3kernel/testfiles/m3regex005.luatex.tlg b/l3kernel/testfiles/m3regex005.luatex.tlg
index 0e3cf39a3..d29fd1503 100644
--- a/l3kernel/testfiles/m3regex005.luatex.tlg
+++ b/l3kernel/testfiles/m3regex005.luatex.tlg
@@ -347,3 +347,60 @@ l. ... }
There were 2 missing right parentheses.
> \l_tmpb_tl=.
============================================================
+============================================================
+TEST 15: Repetitions on \u escape
+============================================================
+The token list \l_tmpa_tl contains the tokens:
+> / (the character /)
+> \foobaz (control sequence=undefined)
+> \foobaz (control sequence=undefined)
+> y (the letter y)
+> / (the character /)
+> y (the letter y).
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated 0 or more times, greedy
+ char code 66 (B)
+ char code 97 (a)
+ ,-group begin
+ | char code 65 (A)
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=(aAaAaABaAC,A,A,)aABC(BaAC,,A,)BBC.
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated between 0 and 2 times, greedy
+ char code 66 (B)
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=aAaA(aABAC,A,A,)aABC(BaC,,,)BBaAC.
+<recently read> }
+l. ... }
+============================================================
diff --git a/l3kernel/testfiles/m3regex005.lvt b/l3kernel/testfiles/m3regex005.lvt
index 9dd59873b..1458e8200 100644
--- a/l3kernel/testfiles/m3regex005.lvt
+++ b/l3kernel/testfiles/m3regex005.lvt
@@ -188,5 +188,31 @@
\tl_log:N \l_tmpb_tl
}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\TEST { Repetitions~on~\u~escape }
+ {
+ \tl_set:Nn \l_tmpa_tl { \foobaz \foobaz y y }
+ \tl_set:Nn \l_tmpb_tl { \foobaz }
+ \regex_replace_once:nnN { \u{l_tmpb_tl}*? . y } { / \0 / } \l_tmpa_tl
+ \tl_analysis_show:N \l_tmpa_tl
+ %
+ \SEPARATOR
+ \regex_set:Nn \l_tmpa_regex { a(A) }
+ \regex_set:Nn \l_tmpb_regex { \ur{l_tmpa_regex}* B \ur{l_tmpa_regex} C }
+ \regex_show:N \l_tmpb_regex
+ \tl_set:Nn \l_tmpa_tl { aAaAaABaAC aABC BaAC BBC }
+ \regex_replace_all:NnN \l_tmpb_regex { (\0,\1,\2,\3) } \l_tmpa_tl
+ \tl_show:N \l_tmpa_tl
+ %
+ \SEPARATOR
+ \regex_set:Nn \l_tmpa_regex { a|(A) }
+ \regex_set:Nn \l_tmpb_regex { \ur{l_tmpa_regex}{0,2} B \ur{l_tmpa_regex} C }
+ \regex_show:N \l_tmpb_regex
+ \tl_set:Nn \l_tmpa_tl { aAaAaABAC aABC BaC BBaAC }
+ \regex_replace_all:NnN \l_tmpb_regex { (\0,\1,\2,\3) } \l_tmpa_tl
+ \tl_show:N \l_tmpa_tl
+ }
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\END
diff --git a/l3kernel/testfiles/m3regex005.tlg b/l3kernel/testfiles/m3regex005.tlg
index 29d78f86a..783bba26b 100644
--- a/l3kernel/testfiles/m3regex005.tlg
+++ b/l3kernel/testfiles/m3regex005.tlg
@@ -347,3 +347,60 @@ l. ... }
There were 2 missing right parentheses.
> \l_tmpb_tl=.
============================================================
+============================================================
+TEST 15: Repetitions on \u escape
+============================================================
+The token list \l_tmpa_tl contains the tokens:
+> / (the character /)
+> \foobaz (control sequence=undefined)
+> \foobaz (control sequence=undefined)
+> y (the letter y)
+> / (the character /)
+> y (the letter y).
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated 0 or more times, greedy
+ char code 66 (B)
+ char code 97 (a)
+ ,-group begin
+ | char code 65 (A)
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=(aAaAaABaAC,A,A,)aABC(BaAC,,A,)BBC.
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated between 0 and 2 times, greedy
+ char code 66 (B)
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=aAaA(aABAC,A,A,)aABC(BaC,,,)BBaAC.
+<recently read> }
+l. ... }
+============================================================
diff --git a/l3kernel/testfiles/m3regex005.xetex.tlg b/l3kernel/testfiles/m3regex005.xetex.tlg
index 0e3cf39a3..d29fd1503 100644
--- a/l3kernel/testfiles/m3regex005.xetex.tlg
+++ b/l3kernel/testfiles/m3regex005.xetex.tlg
@@ -347,3 +347,60 @@ l. ... }
There were 2 missing right parentheses.
> \l_tmpb_tl=.
============================================================
+============================================================
+TEST 15: Repetitions on \u escape
+============================================================
+The token list \l_tmpa_tl contains the tokens:
+> / (the character /)
+> \foobaz (control sequence=undefined)
+> \foobaz (control sequence=undefined)
+> y (the letter y)
+> / (the character /)
+> y (the letter y).
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated 0 or more times, greedy
+ char code 66 (B)
+ char code 97 (a)
+ ,-group begin
+ | char code 65 (A)
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=(aAaAaABaAC,A,A,)aABC(BaAC,,A,)BBC.
+<recently read> }
+l. ... }
+============================================================
+> Compiled regex variable \l_tmpb_regex:
++-branch
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end, repeated between 0 and 2 times, greedy
+ char code 66 (B)
+ ,-group begin (no capture)
+ | char code 97 (a)
+ +-branch
+ | ,-group begin
+ | | char code 65 (A)
+ | `-group end
+ `-group end
+ char code 67 (C).
+<recently read> }
+l. ... }
+> \l_tmpa_tl=aAaA(aABAC,A,A,)aABC(BaC,,,)BBaAC.
+<recently read> }
+l. ... }
+============================================================
diff --git a/l3kernel/testfiles/m3regex007.lvt b/l3kernel/testfiles/m3regex007.lvt
index 627ac02cb..b3e40a615 100644
--- a/l3kernel/testfiles/m3regex007.lvt
+++ b/l3kernel/testfiles/m3regex007.lvt
@@ -24,7 +24,7 @@
\regex_set:Nn \l_foo_regex { \A a|b| }
\regex_show:N \l_foo_regex
\regex_show:n { a \ur{l_foo_regex} b \c{\ur{l_foo_regex}{2,7}?|D} }
- \regex_show:n { a\c{bc}\u{c_space_tl}\c{\u{c_space_tl}|} }
+ \regex_show:n { a\c{bc}\u{c_space_tl}+\c{\u{c_space_tl}|} }
\tl_set:Nn \l_tmpa_tl { \abc }
\int_set:Nn \l_tmpa_int { 7 }
\regex_show:n { \u{l_tmpa_tl}* \c{\u{l_tmpa_tl}|(?:\u{l_tmpa_int})?}{3}|y* }
diff --git a/l3kernel/testfiles/m3regex007.tlg b/l3kernel/testfiles/m3regex007.tlg
index d889779b6..1d6e96754 100644
--- a/l3kernel/testfiles/m3regex007.tlg
+++ b/l3kernel/testfiles/m3regex007.tlg
@@ -64,11 +64,13 @@ l. ... }
char code 68 (D).
<recently read> }
l. ... }
-> Compiled regex {a\c {bc}\u {c_space_tl}\c {\u {c_space_tl}|}}:
+> Compiled regex {a\c {bc}\u {c_space_tl}+\c {\u {c_space_tl}|}}:
+-branch
char code 97 (a)
control sequence \bc
- char 32 ( ), catcode 10
+ ,-group begin (no capture)
+ | char 32 ( ), catcode 10
+ `-group end, repeated 1 or more times, greedy
control sequence \ or \.
<recently read> }
l. ... }
More information about the latex3-commits
mailing list.