diff options
author | Karl Berry <karl@freefriends.org> | 2017-11-14 21:07:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-11-14 21:07:53 +0000 |
commit | 8c82df0007c957004cc2268b49ccf3ceca914f58 (patch) | |
tree | ae29044a1727ceb31a488437f43cde1a31e6e007 /Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx | |
parent | 4bd2a337b834181c967e774caddf57b3f747e127 (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.dtx | 99 |
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} % |