[latex3-commits] [git/LaTeX3-latex3-latex3] master: Use module-specific compare error functions (330889a)
Joseph Wright
joseph.wright at morningstar2.co.uk
Mon Mar 26 14:45:36 CEST 2018
Repository : https://github.com/latex3/latex3
On branch : master
Link : https://github.com/latex3/latex3/commit/330889ac890004058c91b32235b0f0e63b5731b2
>---------------------------------------------------------------
commit 330889ac890004058c91b32235b0f0e63b5731b2
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Mon Mar 26 13:45:36 2018 +0100
Use module-specific compare error functions
>---------------------------------------------------------------
330889ac890004058c91b32235b0f0e63b5731b2
l3kernel/l3int.dtx | 34 +++++++++++--------------------
l3kernel/l3skip.dtx | 14 ++++++++++---
l3kernel/testfiles/m3expl001.luatex.tlg | 5 +++--
l3kernel/testfiles/m3expl001.ptex.tlg | 5 +++--
l3kernel/testfiles/m3expl001.tlg | 5 +++--
l3kernel/testfiles/m3expl001.uptex.tlg | 5 +++--
l3kernel/testfiles/m3expl001.xetex.tlg | 5 +++--
l3kernel/testfiles/m3expl003.luatex.tlg | 5 +++--
l3kernel/testfiles/m3expl003.ptex.tlg | 5 +++--
l3kernel/testfiles/m3expl003.tlg | 5 +++--
l3kernel/testfiles/m3expl003.uptex.tlg | 5 +++--
l3kernel/testfiles/m3expl003.xetex.tlg | 5 +++--
12 files changed, 53 insertions(+), 45 deletions(-)
diff --git a/l3kernel/l3int.dtx b/l3kernel/l3int.dtx
index d7af92f..e80694a 100644
--- a/l3kernel/l3int.dtx
+++ b/l3kernel/l3int.dtx
@@ -958,16 +958,6 @@
% \end{texnote}
% \end{function}
%
-% \begin{function}{\__prg_compare_error:, \__prg_compare_error:Nw}
-% \begin{syntax}
-% \cs{__prg_compare_error:}
-% \cs{__prg_compare_error:Nw} \meta{token}
-% \end{syntax}
-% These are used within \cs{int_compare:nTF}, \cs{dim_compare:nTF}
-% and so on to recover correctly if the \texttt{n}-type argument does not
-% contain a properly-formed relation.
-% \end{function}
-%
% \end{documentation}
%
% \begin{implementation}
@@ -1428,27 +1418,27 @@
%
% \subsection{Integer expression conditionals}
%
-% \begin{macro}[EXP]{\__prg_compare_error:, \__prg_compare_error:Nw}
+% \begin{macro}[EXP]{\@@_compare_error:, \@@_compare_error:Nw}
% Those functions are used for comparison tests which use a simple
% syntax where only one set of braces is required and additional
% operators such as |!=| and |>=| are supported. The tests first
% evaluate their left-hand side, with a trailing
-% \cs{__prg_compare_error:}. This marker is normally not expanded,
+% \cs{@@_compare_error:}. This marker is normally not expanded,
% but if the relation symbol is missing from the test's argument, then
% the marker inserts |=| (and itself) after triggering the relevant
% \TeX{} error. If the first token which appears after evaluating and
% removing the left-hand side is not a known relation symbol, then a
-% judiciously placed \cs{__prg_compare_error:Nw} gets expanded,
+% judiciously placed \cs{@@_compare_error:Nw} gets expanded,
% cleaning up the end of the test and telling the user what the
% problem was.
% \begin{macrocode}
-\cs_new_protected:Npn \__prg_compare_error:
+\cs_new_protected:Npn \@@_compare_error:
{
\if_int_compare:w \c_zero \c_zero \fi:
=
- \__prg_compare_error:
+ \@@_compare_error:
}
-\cs_new:Npn \__prg_compare_error:Nw
+\cs_new:Npn \@@_compare_error:Nw
#1#2 \q_stop
{
{ }
@@ -1500,7 +1490,7 @@
% left hand side of the (in)equality using \cs{@@_eval:w}. Since the
% relation symbols |<|, |>|, |=| and |!| are not allowed in integer
% expressions, they would terminate the expression. If the argument contains no
-% relation symbol, \cs{__prg_compare_error:} is expanded,
+% relation symbol, \cs{@@_compare_error:} is expanded,
% inserting~|=| and itself after an error. In all cases,
% \cs{@@_compare:w} receives as its argument an integer, a relation
% symbol, and some more tokens. We then setup the loop, which is
@@ -1510,9 +1500,9 @@
\prg_new_conditional:Npnn \int_compare:n #1 { p , T , F , TF }
{
\exp_after:wN \@@_compare:w
- \@@_value:w \@@_eval:w #1 \__prg_compare_error:
+ \@@_value:w \@@_eval:w #1 \@@_compare_error:
}
-\cs_new:Npn \@@_compare:w #1 \__prg_compare_error:
+\cs_new:Npn \@@_compare:w #1 \@@_compare_error:
{
\exp_after:wN \if_false: \@@_value:w
\@@_compare:Nw #1 e { = nd_ } \q_stop
@@ -1530,7 +1520,7 @@
% hence the test for that as a second token. If the relation symbol
% is unknown, then the control sequence is turned by \TeX{} into
% \cs{scan_stop:}, ignored thanks to \tn{unexpanded}, and
-% \cs{__prg_compare_error:Nw} raises an error.
+% \cs{@@_compare_error:Nw} raises an error.
% \begin{macrocode}
\cs_new:Npn \@@_compare:Nw #1#2 \q_stop
{
@@ -1547,7 +1537,7 @@
\if_meaning:w = #2 = \fi:
:NNw
}
- \__prg_compare_error:Nw #1
+ \@@_compare_error:Nw #1
}
% \end{macrocode}
% When the last \meta{operand} is seen, \cs{@@_compare:NNw} receives
@@ -1580,7 +1570,7 @@
% \end{macrocode}
% The actual comparisons are then simple function calls, using the
% relation as delimiter for a delimited argument and discarding
-% \cs{__prg_compare_error:Nw} \meta{token} responsible for error
+% \cs{@@_compare_error:Nw} \meta{token} responsible for error
% detection.
% \begin{macrocode}
\cs_new:cpn { @@_compare_=:NNw } #1#2#3 =
diff --git a/l3kernel/l3skip.dtx b/l3kernel/l3skip.dtx
index cf65030..a9d6b62 100644
--- a/l3kernel/l3skip.dtx
+++ b/l3kernel/l3skip.dtx
@@ -1370,10 +1370,11 @@
% \@@_compare_<:w,
% \@@_compare_>:w
% }
+% \begin{macro}{\@@_compare_error:}
% This code is adapted from the \cs{int_compare:nTF} function. First
% make sure that there is at least one relation operator, by
% evaluating a dimension expression with a trailing
-% \cs{__prg_compare_error:}. Just like for integers, the looping
+% \cs{@@_compare_error:}. Just like for integers, the looping
% auxiliary \cs{@@_compare:wNN} closes a primitive conditional and
% opens a new one. It is actually easier to grab a dimension operand
% than an integer one, because once evaluated, dimensions all end with
@@ -1384,9 +1385,9 @@
\prg_new_conditional:Npnn \dim_compare:n #1 { p , T , F , TF }
{
\exp_after:wN \@@_compare:w
- \dim_use:N \@@_eval:w #1 \__prg_compare_error:
+ \dim_use:N \@@_eval:w #1 \@@_compare_error:
}
-\cs_new:Npn \@@_compare:w #1 \__prg_compare_error:
+\cs_new:Npn \@@_compare:w #1 \@@_compare_error:
{
\exp_after:wN \if_false: \exp:w \exp_end_continue_f:w
\@@_compare:wNN #1 ? { = \@@_compare_end:w \else: } \q_stop
@@ -1415,10 +1416,17 @@
#1 \reverse_if:N #2 > #3 = { #1 #2 < #3 }
\cs_new:Npn \@@_compare_end:w #1 \prg_return_false: #2 \q_stop
{ #1 \prg_return_false: \else: \prg_return_true: \fi: }
+\cs_new_protected:Npn \@@_compare_error:
+ {
+ \if_int_compare:w \c_zero \c_zero \fi:
+ =
+ \@@_compare_error:
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}[EXP, noTF]{\dim_case:nn}
% \begin{macro}{\@@_case:nnTF}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 3650131..d79eed5 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -1694,8 +1694,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3292,6 +3292,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 2ed915c..9deb293 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index a99ca91..9d521c4 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index 69716b2..820970d 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 28daa39..2b52c5b 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -1692,8 +1692,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3290,6 +3290,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 3650131..d79eed5 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -1694,8 +1694,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3292,6 +3292,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 2ed915c..9deb293 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index a99ca91..9d521c4 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index 69716b2..820970d 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -1375,8 +1375,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3229,6 +3229,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 28daa39..2b52c5b 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -1692,8 +1692,8 @@ Defining \int_set:cn on line ...
Defining \int_gset:cn on line ...
Defining \int_use:N on line ...
Defining \int_use:c on line ...
-Defining \__prg_compare_error: on line ...
-Defining \__prg_compare_error:Nw on line ...
+Defining \__int_compare_error: on line ...
+Defining \__int_compare_error:Nw on line ...
Defining \int_compare_p:n on line ...
Defining \int_compare:nT on line ...
Defining \int_compare:nF on line ...
@@ -3290,6 +3290,7 @@ Defining \__dim_compare_=:w on line ...
Defining \__dim_compare_<:w on line ...
Defining \__dim_compare_>:w on line ...
Defining \__dim_compare_end:w on line ...
+Defining \__dim_compare_error: on line ...
Defining \dim_case:nnTF on line ...
Defining \dim_case:nnT on line ...
Defining \dim_case:nnF on line ...
More information about the latex3-commits
mailing list