diff options
author | Karl Berry <karl@freefriends.org> | 2010-04-27 01:01:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-04-27 01:01:05 +0000 |
commit | 2a02b4779d0acc1e6bfd719c6c19e12940617bec (patch) | |
tree | cd84dfbfa5bbed35e60b5a31d28ff46a5efd0273 /Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty | |
parent | 61d5522194a84bc8c81973ff2fd8901e5ce10de0 (diff) |
xpackages update (26apr10)
git-svn-id: svn://tug.org/texlive/trunk@18019 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty | 73 |
1 files changed, 63 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty index a5204eeef15..18e704e88cd 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty @@ -57,7 +57,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: xparse.dtx 1876 2010-03-27 07:20:51Z joseph $ +\GetIdInfo$Id: xparse.dtx 1897 2010-04-26 05:56:56Z joseph $ {Generic document command parser} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -654,16 +654,60 @@ \tl_to_str:n {#1} } } -\cs_new:Npn \xparse_process_comma_split:n #1 { - \tl_if_in:nnTF {#1} { , } { - \xparse_process_comma_split_aux:w #1 \q_stop - }{ - \tl_set:Nn \ProcessedArgument { {#1} { \NoValue } } - } -} -\cs_new:Npn \xparse_process_comma_split_aux:w #1 , #2 \q_stop { - \tl_set:Nn \ProcessedArgument { {#1} {#2} } +\cs_new_protected:Npn \_xparse_bool_reverse:N #1 { + \bool_if:NTF #1 + { \tl_set:Nn \ProcessedArgument { \c_false_bool } } + { \tl_set:Nn \ProcessedArgument { \c_true_bool } } } +\tl_new:N \_l_xparse_split_argument_tl +\group_begin: + \char_make_active:N \@ + \cs_gset_protected:Npn \_xparse_split_argument:nnn #1#2#3 + { + \tl_set:Nn \_l_xparse_split_argument_tl {#3} + \group_begin: + \char_set_lccode:nn { `\@ } { `#2} + \tl_to_lowercase:n + { + \group_end: + \tl_replace_all_in:Nnn \_l_xparse_split_argument_tl { @ } {#2} + } + \cs_set_protected:Npn \_xparse_split_argument_aux_i:w + ##1 \q_nil ##2 #2 ##3 \q_stop + { + \tl_put_right:Nn \ProcessedArgument { {##2} } + ##1 \q_nil ##3 \q_stop + } + \cs_set_protected:Npn \_xparse_split_argument_aux_iii:w + ##1 #2 ##2 \q_stop + { + \IfNoValueF {##1} + { + \msg_kernel_error:nnxxx { xparse } { split-excess-tokens } + { \exp_not:n {#2} } {#1} { \exp_not:n {#3} } + } + } + \tl_set:Nx \_l_xparse_tmp_tl + { + \prg_replicate:nn { #1 + 1 } + { \_xparse_split_argument_aux_i:w } + \_xparse_split_argument_aux_ii:w + \exp_not:N \q_nil + \exp_not:V \_l_xparse_split_argument_tl + \prg_replicate:nn {#1} { \exp_not:n {#2} \NoValue } + \exp_not:n { #2 \q_stop } + } + \_l_xparse_tmp_tl + } +\group_end: +\cs_set_protected:Npn \_xparse_split_argument_aux_i:w { } +\cs_set_protected:Npn \_xparse_split_argument_aux_ii:w + #1 \q_nil #2 \q_stop + { + \tl_if_empty:nF {#2} + { \_xparse_split_argument_aux_iii:w #2 \q_stop } + } +\cs_set_protected:Npn \_xparse_split_argument_aux_iii:w { } \cs_new:Npn \xparse_exp_add_type_d:w #1#2 { \xparse_exp_add_type_D:w #1 #2 { \NoValue } } @@ -938,6 +982,13 @@ Argument~specification~'#1'~contains~a~processor~function:\\ this~is~only~supported~for~standard~robust~functions. } +\msg_kernel_set:nnnn { xparse } { split-excess-tokens } + { Too~many~'#1'~tokens~when~trying~to~split~argument. } + { + LaTeX~was~asked~to~split~the~input~'#3'\\ + at~each~occurrence~of~the~token~'#1',~up~to~a~maximum~of~#2~tokens.\\ + There~were~too~many~'#1'~tokens. + } \msg_kernel_new:nnnn { xparse } { unknown-argument-type } { Unknown~argument~type~'#1'~replaced~by~'m'.~Fingers~crossed~... } { @@ -1036,6 +1087,8 @@ } \cs_new_protected:Npn \NoValue { -NoValue- } \cs_new:Npn \ProcessedArgument { } +\cs_new_eq:NN \ReverseBoolean \_xparse_bool_reverse:N +\cs_new_eq:NN \SplitArgument \_xparse_split_argument:nnn \endinput %% %% End of file `xparse.sty'. |