[latex3-commits] [git/LaTeX3-latex3-latex3] gh433-regex-case: Name as 'match_case'/'replace_case' (552afd09b)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Jan 10 17:09:58 CET 2022


Repository : https://github.com/latex3/latex3
On branch  : gh433-regex-case
Link       : https://github.com/latex3/latex3/commit/552afd09bb825f9a5e27e5b22a3a015bd0ed8342

>---------------------------------------------------------------

commit 552afd09bb825f9a5e27e5b22a3a015bd0ed8342
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Jan 10 16:09:58 2022 +0000

    Name as 'match_case'/'replace_case'


>---------------------------------------------------------------

552afd09bb825f9a5e27e5b22a3a015bd0ed8342
 l3kernel/l3regex.dtx              | 86 +++++++++++++++++++--------------------
 l3kernel/testfiles/m3regex012.lvt | 32 +++++++--------
 l3kernel/testfiles/m3regex012.tlg | 34 ++++++++++------
 3 files changed, 81 insertions(+), 71 deletions(-)

diff --git a/l3kernel/l3regex.dtx b/l3kernel/l3regex.dtx
index acb7a8a12..e74da9c31 100644
--- a/l3kernel/l3regex.dtx
+++ b/l3kernel/l3regex.dtx
@@ -620,9 +620,9 @@
 %   results in \cs[no-index]{l_foo_int} taking the value $5$.
 % \end{function}
 %
-% \begin{function}[noTF, added = 2021-05-15]{\regex_case_match:nn}
+% \begin{function}[noTF, added = 2022-10-01]{\regex_match_case:nn}
 %   \begin{syntax}
-%     \cs{regex_case_match:nnTF}
+%     \cs{regex_match_case:nnTF}
 %     ~~|{| \\
 %     ~~~~\Arg{regex_1} \Arg{code case_1} \\
 %     ~~~~\Arg{regex_2} \Arg{code case_2} \\
@@ -766,9 +766,9 @@
 %   locally to \meta{tl~var}.
 % \end{function}
 %
-% \begin{function}[noTF, added = 2021-05-15]{\regex_case_replace_once:nN}
+% \begin{function}[noTF, added = 2022-01-10]{\regex_replace_case_once:nN}
 %   \begin{syntax}
-%     \cs{regex_case_replace_once:nNTF}
+%     \cs{regex_replace_case_once:nNTF}
 %     ~~|{| \\
 %     ~~~~\Arg{regex_1} \Arg{replacement_1} \\
 %     ~~~~\Arg{regex_2} \Arg{replacement_2} \\
@@ -790,13 +790,13 @@
 %   of the \meta{regex} is searched in turn.  If one of them matches
 %   then it is replaced by the corresponding \meta{replacement} as
 %   described for \cs{regex_replace_once:nnN}.  This is equivalent to
-%   checking with \cs{regex_case_match:nn} which \meta{regex} matches,
+%   checking with \cs{regex_match_case:nn} which \meta{regex} matches,
 %   then performing the replacement with \cs{regex_replace_once:nnN}.
 % \end{function}
 %
-% \begin{function}[noTF, added = 2021-05-15]{\regex_case_replace_all:nN}
+% \begin{function}[noTF, added = 2022-01-10]{\regex_replace_case_all:nN}
 %   \begin{syntax}
-%     \cs{regex_case_replace_all:nNTF}
+%     \cs{regex_replace_case_all:nNTF}
 %     ~~|{| \\
 %     ~~~~\Arg{regex_1} \Arg{replacement_1} \\
 %     ~~~~\Arg{regex_2} \Arg{replacement_2} \\
@@ -819,7 +819,7 @@
 %   replacement).  For instance
 % \begin{verbatim}
 % \tl_set:Nn \l_tmpa_tl { Hello,~world! }
-% \regex_case_replace_all:nN
+% \regex_replace_case_all:nN
 %   {
 %     { [A-Za-z]+ } { ``\0'' }
 %     { \b } { --- }
@@ -831,7 +831,7 @@
 %   the word-boundary assertion |\b| did not match at the start of words
 %   because the case |[A-Za-z]+| matched at these positions.  To change
 %   this, one could simply swap the order of the two cases in the
-%   argument of \cs{regex_case_replace_all:nN}.
+%   argument of \cs{regex_replace_case_all:nN}.
 % \end{function}
 %
 % \section{Scratch regular expressions}
@@ -2468,7 +2468,7 @@
 % \begin{macro}{\@@_compile_use:n}
 %   Use a regex, regardless of whether it is given as a string (in which
 %   case we need to compile) or as a regex variable.  This is used for
-%   \cs{regex_case_match:nn} and related functions to allow a mixture of
+%   \cs{regex_match_case:nn} and related functions to allow a mixture of
 %   explicit regex and regex variables.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_compile_use:n #1
@@ -4301,7 +4301,7 @@
 %
 % \begin{variable}{\g_@@_case_int}
 %   Case number that was successfully matched in
-%   \cs{regex_case_match:nn} and related functions.
+%   \cs{regex_match_case:nn} and related functions.
 %    \begin{macrocode}
 \int_new:N \g_@@_case_int
 %    \end{macrocode}
@@ -4309,7 +4309,7 @@
 %
 % \begin{variable}{\l_@@_case_max_group_int}
 %   The largest group number appearing in any of the \meta{regex} in the
-%   argument of \cs{regex_case_match:nn} and related functions.
+%   argument of \cs{regex_match_case:nn} and related functions.
 %    \begin{macrocode}
 \int_new:N \l_@@_case_max_group_int
 %    \end{macrocode}
@@ -6520,26 +6520,26 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[noTF]{\regex_case_match:nn}
+% \begin{macro}[noTF]{\regex_match_case:nn}
 %   The auxiliary errors if |#1| has an odd number of items, and
 %   otherwise it sets \cs{g_@@_case_int} according to which case was
 %   found (zero if not found).  The \texttt{true} branch leaves the
 %   corresponding code in the input stream.
 %    \begin{macrocode}
-\cs_new_protected:Npn \regex_case_match:nnTF #1#2#3
+\cs_new_protected:Npn \regex_match_case:nnTF #1#2#3
   {
-    \@@_case_match:nnTF {#1} {#2}
+    \@@_match_case:nnTF {#1} {#2}
       {
         \tl_item:nn {#1} { 2 * \g_@@_case_int }
         #3
       }
   }
-\cs_new_protected:Npn \regex_case_match:nn #1#2
-  { \regex_case_match:nnTF {#1} {#2} { } { } }
-\cs_new_protected:Npn \regex_case_match:nnT #1#2#3
-  { \regex_case_match:nnTF {#1} {#2} {#3} { } }
-\cs_new_protected:Npn \regex_case_match:nnF #1#2
-  { \regex_case_match:nnTF {#1} {#2} { } }
+\cs_new_protected:Npn \regex_match_case:nn #1#2
+  { \regex_match_case:nnTF {#1} {#2} { } { } }
+\cs_new_protected:Npn \regex_match_case:nnT #1#2#3
+  { \regex_match_case:nnTF {#1} {#2} {#3} { } }
+\cs_new_protected:Npn \regex_match_case:nnF #1#2
+  { \regex_match_case:nnTF {#1} {#2} { } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -6580,7 +6580,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[noTF]{\regex_case_replace_once:nN}
+% \begin{macro}[noTF]{\regex_replace_case_once:nN}
 %   If the input is bad (odd number of items) then take the false
 %   branch.  Otherwise, use the same auxiliary as
 %   \cs{regex_replace_once:nnN}, but with more complicated code to build
@@ -6588,12 +6588,12 @@
 %   \cs{tl_item:nn} is only expanded once we know the value of
 %   \cs{g_@@_case_int}, namely which case matched.
 %    \begin{macrocode}
-\cs_new_protected:Npn \regex_case_replace_once:nNTF #1#2
+\cs_new_protected:Npn \regex_replace_case_once:nNTF #1#2
   {
     \int_if_odd:nTF { \tl_count:n {#1} }
       {
         \msg_error:nnxxxx { regex } { case-odd }
-          { \token_to_str:N \regex_case_replace_once:nN(TF) } { code }
+          { \token_to_str:N \regex_replace_case_once:nN(TF) } { code }
           { \tl_count:n {#1} } { \tl_to_str:n {#1} }
         \use_ii:nn
       }
@@ -6605,12 +6605,12 @@
         \bool_if:NTF \g_@@_success_bool
       }
   }
-\cs_new_protected:Npn \regex_case_replace_once:nN #1#2
-  { \regex_case_replace_once:nNTF {#1} {#2} { } { } }
-\cs_new_protected:Npn \regex_case_replace_once:nNT #1#2#3
-  { \regex_case_replace_once:nNTF {#1} {#2} {#3} { } }
-\cs_new_protected:Npn \regex_case_replace_once:nNF #1#2
-  { \regex_case_replace_once:nNTF {#1} {#2} { } }
+\cs_new_protected:Npn \regex_replace_case_once:nN #1#2
+  { \regex_replace_case_once:nNTF {#1} {#2} { } { } }
+\cs_new_protected:Npn \regex_replace_case_once:nNT #1#2#3
+  { \regex_replace_case_once:nNTF {#1} {#2} {#3} { } }
+\cs_new_protected:Npn \regex_replace_case_once:nNF #1#2
+  { \regex_replace_case_once:nNTF {#1} {#2} { } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -6620,12 +6620,12 @@
 %   \cs{regex_replace_all:nnN}, but with more complicated code to build
 %   the automaton, and to find what replacement text to use.
 %    \begin{macrocode}
-\cs_new_protected:Npn \regex_case_replace_all:nNTF #1#2
+\cs_new_protected:Npn \regex_replace_case_all:nNTF #1#2
   {
     \int_if_odd:nTF { \tl_count:n {#1} }
       {
         \msg_error:nnxxxx { regex } { case-odd }
-          { \token_to_str:N \regex_case_replace_all:nN(TF) } { code }
+          { \token_to_str:N \regex_replace_case_all:nN(TF) } { code }
           { \tl_count:n {#1} } { \tl_to_str:n {#1} }
         \use_ii:nn
       }
@@ -6637,12 +6637,12 @@
         \bool_if:NTF \g_@@_success_bool
       }
   }
-\cs_new_protected:Npn \regex_case_replace_all:nN #1#2
-  { \regex_case_replace_all:nNTF {#1} {#2} { } { } }
-\cs_new_protected:Npn \regex_case_replace_all:nNT #1#2#3
-  { \regex_case_replace_all:nNTF {#1} {#2} {#3} { } }
-\cs_new_protected:Npn \regex_case_replace_all:nNF #1#2
-  { \regex_case_replace_all:nNTF {#1} {#2} { } }
+\cs_new_protected:Npn \regex_replace_case_all:nN #1#2
+  { \regex_replace_case_all:nNTF {#1} {#2} { } { } }
+\cs_new_protected:Npn \regex_replace_case_all:nNT #1#2#3
+  { \regex_replace_case_all:nNTF {#1} {#2} {#3} { } }
+\cs_new_protected:Npn \regex_replace_case_all:nNF #1#2
+  { \regex_replace_case_all:nNTF {#1} {#2} { } }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -6775,19 +6775,19 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\@@_case_match:nnTF}
-% \begin{macro}[EXP]{\@@_case_match_aux:nn}
+% \begin{macro}{\@@_match_case:nnTF}
+% \begin{macro}[EXP]{\@@_match_case_aux:nn}
 %   The code would get badly messed up if the number of items in |#1|
 %   were not even, so we catch this case, then follow the same code as
 %   \cs{regex_match:nnTF} but using \cs{@@_case_build:n} and without
 %   returning a result.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_case_match:nnTF #1#2
+\cs_new_protected:Npn \@@_match_case:nnTF #1#2
   {
     \int_if_odd:nTF { \tl_count:n {#1} }
       {
         \msg_error:nnxxxx { regex } { case-odd }
-          { \token_to_str:N \regex_case_match:nn(TF) } { code }
+          { \token_to_str:N \regex_match_case:nn(TF) } { code }
           { \tl_count:n {#1} } { \tl_to_str:n {#1} }
         \use_ii:nn
       }
@@ -6798,7 +6798,7 @@
         \bool_if:NTF \g_@@_success_bool
       }
   }
-\cs_new:Npn \@@_case_match_aux:nn #1#2 { \exp_not:n { {#1} } }
+\cs_new:Npn \@@_match_case_aux:nn #1#2 { \exp_not:n { {#1} } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
diff --git a/l3kernel/testfiles/m3regex012.lvt b/l3kernel/testfiles/m3regex012.lvt
index bb6a4e4f5..3cef40239 100644
--- a/l3kernel/testfiles/m3regex012.lvt
+++ b/l3kernel/testfiles/m3regex012.lvt
@@ -16,13 +16,13 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\TEST { regex_case_match:nn }
+\TEST { regex_match_case:nn }
   {
     \regex_set:Nn \l_tmpa_regex { [a-z]bc }
     \cs_set_protected:Npn \test:n #1
       {
         \TYPE{#1:}
-        \regex_case_match:nnTF
+        \regex_match_case:nnTF
           {
             \l_tmpa_regex { \TYPE{abc} }
             { (?i) Y \w } { \TYPE{Y} }
@@ -41,13 +41,13 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\TEST { regex_case_replace_once:nN }
+\TEST { regex_replace_case_once:nN }
   {
     \regex_set:Nn \l_tmpa_regex { [a-z]bc }
     \cs_set_protected:Npn \test:n #1
       {
         \tl_set:Nn \l_tmpa_tl {#1}
-        \regex_case_replace_once:nNTF
+        \regex_replace_case_once:nNTF
           {
             \l_tmpa_regex { (abc,\0,\1) } % should complain about \1 but doesn't
             { (?i) Y (\w) } { [Y,\0,\1] }
@@ -68,13 +68,13 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\TEST { regex_case_replace_all:nN }
+\TEST { regex_replace_case_all:nN }
   {
     \regex_set:Nn \l_tmpa_regex { [a-z]bc }
     \cs_set_protected:Npn \test:n #1
       {
         \tl_set:Nn \l_tmpa_tl {#1}
-        \regex_case_replace_all:nNTF
+        \regex_replace_case_all:nNTF
           {
             \l_tmpa_regex { (abc,\0,\1) }
             { (?i) Y (\w) } { [Y,\0,\1] }
@@ -92,7 +92,7 @@
     \test:n { Y abc YYYz }
     \test:n { y abcbc }
     \tl_set:Nn \l_tmpa_tl { Hello,~world! }
-    \regex_case_replace_all:nNTF
+    \regex_replace_case_all:nNTF
       {
         { [A-Za-z]+ } { ``\0'' }
         { \b } { --- }
@@ -100,7 +100,7 @@
       } \l_tmpa_tl
       { \TYPE { \l_tmpa_tl } } { \ERROR }
     \tl_set:Nn \l_tmpa_tl { Hello,~world! }
-    \regex_case_replace_all:nNTF
+    \regex_replace_case_all:nNTF
       {
         { \b } { --- }
         { [A-Za-z]+ } { ``\0'' }
@@ -108,7 +108,7 @@
       } \l_tmpa_tl
       { \TYPE { \l_tmpa_tl } } { \ERROR }
     \tl_set:Nn \l_tmpa_tl { a ( b ( c ) d ( ) ) e }
-    \regex_case_replace_all:nN
+    \regex_replace_case_all:nN
       {
         { \( } { \{ }
         { \) } { \} }
@@ -116,7 +116,7 @@
       \l_tmpa_tl
     \tl_analysis_log:N \l_tmpa_tl
     \tl_set:Nn \l_tmpa_tl { a { } b | { | | } | | e }
-    \regex_case_replace_all:nN
+    \regex_replace_case_all:nN
       {
         { \| } { \} }
         { . (.) } { \0\1 }
@@ -124,7 +124,7 @@
       \l_tmpa_tl
     \tl_analysis_log:N \l_tmpa_tl
     \tl_clear:N \l_tmpa_tl
-    \regex_case_replace_all:nN
+    \regex_replace_case_all:nN
       {
         { \A } { A }
         \Z { Z }
@@ -137,11 +137,11 @@
 
 \TEST { regex_case ~ errors }
   {
-    \regex_case_match:nnTF { Something ~ odd. } { .. } { \ERROR } { \FALSE }
-    \regex_case_match:nn { * } { .. }
-    \regex_case_replace_once:nNTF { Something ~ odd. } \l_tmpa_tl { \ERROR } { \FALSE }
-    \regex_case_replace_once:nN { * } { .. }
-    \regex_case_replace_all:nNTF { Something ~ odd. } \l_tmpa_tl { \ERROR } { \FALSE }
+    \regex_match_case:nnTF { Something ~ odd. } { .. } { \ERROR } { \FALSE }
+    \regex_match_case:nn { * } { .. }
+    \regex_replace_case_once:nNTF { Something ~ odd. } \l_tmpa_tl { \ERROR } { \FALSE }
+    \regex_replace_case_once:nN { * } { .. }
+    \regex_replace_case_all:nNTF { Something ~ odd. } \l_tmpa_tl { \ERROR } { \FALSE }
     \regex_case_replace_all:nN { * } { .. }
   }
 
diff --git a/l3kernel/testfiles/m3regex012.tlg b/l3kernel/testfiles/m3regex012.tlg
index 47c49cede..968b037c3 100644
--- a/l3kernel/testfiles/m3regex012.tlg
+++ b/l3kernel/testfiles/m3regex012.tlg
@@ -2,7 +2,7 @@ This is a generated file for the LaTeX (2e + expl3) validation system.
 Don't change this file in any respect.
 Author: Bruno Le Floch
 ============================================================
-TEST 1: regex_case_match:nn
+TEST 1: regex_match_case:nn
 ============================================================
 :
 FALSE
@@ -25,7 +25,7 @@ Z
 TRUE
 ============================================================
 ============================================================
-TEST 2: regex_case_replace_once:nN
+TEST 2: regex_replace_case_once:nN
 ============================================================
 : FALSE
 abc => (abc,abc,)
@@ -36,7 +36,7 @@ y;bc: FALSE
 y;bcz => y;bc<z,zZ>
 ============================================================
 ============================================================
-TEST 3: regex_case_replace_all:nN
+TEST 3: regex_replace_case_all:nN
 ============================================================
 : FALSE
 ybc => (abc,ybc,)
@@ -90,43 +90,53 @@ A
 ============================================================
 TEST 4: regex_case errors
 ============================================================
-! LaTeX3 Error: \regex_case_match:nn(TF) with odd number of items
+! LaTeX3 Error: \regex_match_case:nn(TF) with odd number of items
 For immediate help type H <return>.
  ...                                              
 l. ...  }
 There must be a code part for each regex: found odd number of items (13) in
     Something odd.
 FALSE
-! LaTeX3 Error: \regex_case_match:nn(TF) with odd number of items
+! LaTeX3 Error: \regex_match_case:nn(TF) with odd number of items
 For immediate help type H <return>.
  ...                                              
 l. ...  }
 There must be a code part for each regex: found odd number of items (1) in
     *
-! LaTeX3 Error: \regex_case_replace_once:nN(TF) with odd number of items
+! LaTeX3 Error: \regex_replace_case_once:nN(TF) with odd number of items
 For immediate help type H <return>.
  ...                                              
 l. ...  }
 There must be a code part for each regex: found odd number of items (13) in
     Something odd.
 FALSE
-! LaTeX3 Error: \regex_case_replace_once:nN(TF) with odd number of items
+! LaTeX3 Error: \regex_replace_case_once:nN(TF) with odd number of items
 For immediate help type H <return>.
  ...                                              
 l. ...  }
 There must be a code part for each regex: found odd number of items (1) in
     *
-! LaTeX3 Error: \regex_case_replace_all:nN(TF) with odd number of items
+! LaTeX3 Error: \regex_replace_case_all:nN(TF) with odd number of items
 For immediate help type H <return>.
  ...                                              
 l. ...  }
 There must be a code part for each regex: found odd number of items (13) in
     Something odd.
 FALSE
-! LaTeX3 Error: \regex_case_replace_all:nN(TF) with odd number of items
-For immediate help type H <return>.
+! Undefined control sequence.
+<argument> ...{\FALSE }\regex_case_replace_all:nN 
+                                                  {*}{..}
+l. ...  }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+! LaTeX Error: Missing \begin{document}.
+See the LaTeX manual or LaTeX Companion for explanation.
+Type  H <return>  for immediate help.
  ...                                              
 l. ...  }
-There must be a code part for each regex: found odd number of items (1) in
-    *
+You're in trouble here.  Try typing  <return>  to proceed.
+If that doesn't work, type  X <return>  to quit.
 ============================================================





More information about the latex3-commits mailing list.