summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-14 21:07:53 +0000
committerKarl Berry <karl@freefriends.org>2017-11-14 21:07:53 +0000
commit8c82df0007c957004cc2268b49ccf3ceca914f58 (patch)
treeae29044a1727ceb31a488437f43cde1a31e6e007 /Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
parent4bd2a337b834181c967e774caddf57b3f747e127 (diff)
l3 (14nov17)
git-svn-id: svn://tug.org/texlive/trunk@45802 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx99
1 files changed, 32 insertions, 67 deletions
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index 30b8ff8abd8..3727f843911 100644
--- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
@@ -27,8 +27,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2017/09/18]
-%<package>\@ifpackagelater{expl3}{2017/09/18}
+\RequirePackage{expl3}[2017/11/14]
+%<package>\@ifpackagelater{expl3}{2017/11/14}
%<package> {}
%<package> {%
%<package> \PackageError{xparse}{Support package l3kernel too old}
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2017/09/18}
+% \date{Released 2017/11/14}
%
% \maketitle
%
@@ -776,22 +776,12 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2017/09/18}{}
+\ProvidesExplPackage{xparse}{2017/11/14}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
% \subsection{Variables and constants}
%
-% \begin{variable}{\c_@@_no_value_tl}
-% A special \enquote{awkward} token list: it contains two |-|~tokens with
-% different category codes. This is used as the marker for nothing being
-% returned when no optional argument is given.
-% \begin{macrocode}
-\tl_const:Nx \c_@@_no_value_tl
- { \char_generate:nn { `\- } { 11 } NoValue- }
-% \end{macrocode}
-% \end{variable}
-%
% \begin{variable}{\c_@@_special_chars_seq}
% In \IniTeX{} mode, we store special characters in a sequence.
% Maybe |$| or |&| will have to be added later.
@@ -1357,7 +1347,7 @@
{
\exp_not:N \exp_not:n
{
- \@@_if_no_value:nTF {#2}
+ \tl_if_novalue:nTF {#2}
{ \exp_not:o {#3} }
{ \exp_not:n { ## #1 } }
}
@@ -1388,7 +1378,7 @@
\cs_new_protected:Npn \@@_args_process_loop:nn #1#2
{
\tl_set:Nn \ProcessedArgument {#1}
- \@@_if_no_value:nF {#1}
+ \tl_if_novalue:nF {#1}
{ \tl_map_function:nN {#2} \@@_args_process_aux:n }
\tl_put_right:No \l_@@_args_ii_tl
{ \exp_after:wN { \ProcessedArgument } }
@@ -1461,7 +1451,7 @@
}
\cs_new:Npn \@@_end_expandable_defaults:nnw #1#2
{
- \@@_if_no_value:nTF {#2}
+ \tl_if_novalue:nTF {#2}
{ \exp_args:No \@@_end_expandable_defaults:nw {#1} }
{ \@@_end_expandable_defaults:nw {#2} }
}
@@ -1617,7 +1607,7 @@
\cs_new_protected:Npn \@@_normalize_type_s:w
{ \@@_normalize_type_t:w * }
}
-\exp_args:No \@@_tmp:w { \c_@@_no_value_tl }
+\exp_args:No \@@_tmp:w { \c_novalue_tl }
% \end{macrocode}
% \end{macro}
%
@@ -2145,7 +2135,7 @@
\cs_new_protected:Npn \@@_add_type_v:w
{
\@@_flush_m_args:
- \exp_args:No \@@_add_default:n \c_@@_no_value_tl
+ \exp_args:No \@@_add_default:n \c_novalue_tl
\@@_add_grabber_mandatory:N v
\@@_prepare_signature:N
}
@@ -2222,16 +2212,16 @@
% \begin{macro}{\@@_add_default:n, \@@_add_default:, \@@_add_default_E:nn}
% Store the default value of an argument, or rather code that gives
% that default value (it may involve other arguments). This is
-% \cs{c_@@_no_value_tl} for arguments with no actual default or with
+% \cs{c_novalue_tl} for arguments with no actual default or with
% default |-NoValue-|; and (in a brace group) \cs{prg_do_nothing:}
% followed by a default value for others. For \texttt{E}-type
-% arguments, pad the defaults |#2| with some \cs{c_@@_no_value_tl}
+% arguments, pad the defaults |#2| with some \cs{c_novalue_tl}
% until there are as many as embellishments~|#1|. These functions are
% also used when defining expandable commands.
% \begin{macrocode}
\cs_new_protected:Npn \@@_add_default:n #1
{
- \@@_if_no_value:nTF {#1}
+ \tl_if_novalue:nTF {#1}
{ \@@_add_default: }
{
\int_incr:N \l_@@_current_arg_int
@@ -2242,7 +2232,7 @@
\cs_new_protected:Npn \@@_add_default:
{
\int_incr:N \l_@@_current_arg_int
- \tl_put_right:Nn \l_@@_defaults_tl { \c_@@_no_value_tl }
+ \tl_put_right:Nn \l_@@_defaults_tl { \c_novalue_tl }
}
\cs_new_protected:Npn \@@_add_default_E:nn #1#2
{
@@ -2350,7 +2340,7 @@
{ \exp_not:o \l_@@_tmpb_tl }
{
\prg_replicate:nn { \tl_count:n {#1} }
- { { \c_@@_no_value_tl } }
+ { { \c_novalue_tl } }
}
}
\@@_prepare_signature:N
@@ -2544,7 +2534,7 @@
\@@_grab_D_aux:NNnN #1#2 {#3} #4
\use:c { peek_meaning_remove #5 :NTF } #1
{ \@@_grab_D_call:Nw #1 }
- { \@@_add_arg:o \c_@@_no_value_tl }
+ { \@@_add_arg:o \c_novalue_tl }
}
% \end{macrocode}
% Inside the \enquote{standard} grabber, there is a test to see if the
@@ -2729,7 +2719,7 @@
\tl_map_inline:nn {#1}
{
\prop_get:NnNF \l_@@_tmp_prop {####1} \l_@@_tmpb_tl
- { \tl_set_eq:NN \l_@@_tmpb_tl \c_@@_no_value_tl }
+ { \tl_set_eq:NN \l_@@_tmpb_tl \c_novalue_tl }
\tl_put_right:Nx \l_@@_args_tl
{ { \exp_not:V \l_@@_tmpb_tl } }
}
@@ -2782,7 +2772,7 @@
{ \@@_add_arg:n {##1} }
\use:c { peek_meaning #3 :NTF } \c_group_begin_token
{ \l_@@_fn_tl }
- { \@@_add_arg:o \c_@@_no_value_tl }
+ { \@@_add_arg:o \c_novalue_tl }
}
% \end{macrocode}
% \end{macro}
@@ -2939,7 +2929,7 @@
\__msg_kernel_error:nnxx { xparse } { missing-required }
{ \exp_after:wN \token_to_str:N \l_@@_fn_tl }
{ \token_to_str:N #1 }
- \@@_add_arg:o \c_@@_no_value_tl
+ \@@_add_arg:o \c_novalue_tl
}
}
% \end{macrocode}
@@ -3222,14 +3212,14 @@
{ \exp_after:wN \token_to_str:N \l_@@_fn_tl }
{ \tl_to_str:N \l_@@_v_arg_tl }
{ \tl_to_str:n {#1} }
- \@@_add_arg:o \c_@@_no_value_tl
+ \@@_add_arg:o \c_novalue_tl
}
{
\__msg_kernel_error:nnxxx { xparse } { verbatim-tokenized }
{ \exp_after:wN \token_to_str:N \l_@@_fn_tl }
{ \tl_to_str:N \l_@@_v_arg_tl }
{ \tl_to_str:n {#1} }
- \@@_add_arg:o \c_@@_no_value_tl
+ \@@_add_arg:o \c_novalue_tl
}
}
% \end{macrocode}
@@ -3354,7 +3344,7 @@
{ ##4 {#1} \q_@@ ##5 ##6 {##7} }
}
}
-\exp_args:No \@@_tmp:w { \c_@@_no_value_tl }
+\exp_args:No \@@_tmp:w { \c_novalue_tl }
% \end{macrocode}
% At this stage, |#7| is \cs{q_nil} \Arg{piece 1} \meta{more for piece 1},
% and we want to concatenate all that, removing \cs{q_nil}, and keeping the
@@ -3440,7 +3430,7 @@
{ ##3 {#1} \q_@@ ##4 ##5 {##6} }
}
}
-\exp_args:No \@@_tmp:w { \c_@@_no_value_tl }
+\exp_args:No \@@_tmp:w { \c_novalue_tl }
\cs_new:Npn \@@_expandable_grab_D_alt:NNwn #1#2#3 \q_@@ #4
{
\tl_if_blank:oTF { \use_none:n #4 }
@@ -3510,7 +3500,7 @@
\quark_if_nil:NTF #4
{ \@@_expandable_grab_E_end:nnw {#1} {#3} }
{
- \@@_if_no_value:nTF {#8}
+ \tl_if_novalue:nTF {#8}
{ \str_if_eq:onTF { #4 { } #1 #5 } {#5} }
{ \use_ii:nn }
{ \@@_expandable_grab_E_find:w { #2 #4 #5 #6 } {#3} ~ }
@@ -3582,7 +3572,7 @@
}
}
}
-\exp_args:No \@@_tmp:w { \c_@@_no_value_tl }
+\exp_args:No \@@_tmp:w { \c_novalue_tl }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -3618,7 +3608,7 @@
}
}
}
-\exp_args:No \@@_tmp:w { \c_@@_no_value_tl }
+\exp_args:No \@@_tmp:w { \c_novalue_tl }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -3760,7 +3750,7 @@
\tl_put_right:Nx \ProcessedArgument
{
\prg_replicate:nn { #2 + 1 - (#1) }
- { { \exp_not:V \c_@@_no_value_tl } }
+ { { \exp_not:V \c_novalue_tl } }
}
}
}
@@ -3887,31 +3877,6 @@
%
% \subsection{Utilities}
%
-% \begin{macro}[TF]{\@@_if_no_value:n}
-% Tests for |-NoValue-|: this is similar to \cs{tl_if_in:nn} but set
-% up to be expandable and to check the value exactly. The question
-% mark prevents the auxiliary from losing braces.
-% \begin{macrocode}
-\use:x
- {
- \prg_new_conditional:Npnn \exp_not:N \@@_if_no_value:n ##1
- { T , F , TF }
- {
- \exp_not:N \str_if_eq:onTF
- {
- \exp_not:N \@@_if_value_aux:w ? ##1 { }
- \c_@@_no_value_tl
- }
- { ? { } \c_@@_no_value_tl }
- { \exp_not:N \prg_return_true: }
- { \exp_not:N \prg_return_false: }
- }
- \cs_new:Npn \exp_not:N \@@_if_value_aux:w ##1 \c_@@_no_value_tl
- {##1}
- }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\@@_check_definable:nNT, \@@_check_definable_aux:nN}
% Check that a token list is appropriate as a first argument of
% \cs{NewDocumentCommand} and similar functions and otherwise
@@ -4421,17 +4386,17 @@
% \begin{macro}{\IfNoValueT, \IfNoValueF, \IfNoValueTF}
% Simple re-naming.
% \begin{macrocode}
-\cs_new_eq:NN \IfNoValueF \@@_if_no_value:nF
-\cs_new_eq:NN \IfNoValueT \@@_if_no_value:nT
-\cs_new_eq:NN \IfNoValueTF \@@_if_no_value:nTF
+\cs_new_eq:NN \IfNoValueF \tl_if_novalue:nF
+\cs_new_eq:NN \IfNoValueT \tl_if_novalue:nT
+\cs_new_eq:NN \IfNoValueTF \tl_if_novalue:nTF
% \end{macrocode}
% \end{macro}
% \begin{macro}{\IfValueT, \IfValueF, \IfValueTF}
% Inverted logic.
% \begin{macrocode}
-\cs_new:Npn \IfValueF { \@@_if_no_value:nT }
-\cs_new:Npn \IfValueT { \@@_if_no_value:nF }
-\cs_new:Npn \IfValueTF #1#2#3 { \@@_if_no_value:nTF {#1} {#3} {#2} }
+\cs_new:Npn \IfValueF { \tl_if_novalue:nT }
+\cs_new:Npn \IfValueT { \tl_if_novalue:nF }
+\cs_new:Npn \IfValueTF #1#2#3 { \tl_if_novalue:nTF {#1} {#3} {#2} }
% \end{macrocode}
% \end{macro}
%