diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty | 1198 |
1 files changed, 0 insertions, 1198 deletions
diff --git a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty deleted file mode 100644 index bdb507e62ff..00000000000 --- a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty +++ /dev/null @@ -1,1198 +0,0 @@ -%% -%% This is file `xparse.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xparse.dtx (with options: `package') -%% -%% (C) Copyright The LaTeX3 Project and any individual authors -%% listed elsewhere in this file. -%% -%% This is a generated file. -%% -%% This file was generated from file(s) of the xbase bundle. -%% --------------------------------------------------------- -%% -%% This file may only be distributed together with a copy of this bundle. -%% You may however distribute the bundle without such generated files. -%% -%% ====================================================================== -%% -%% File: xparse.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley, -%% David Carlisle -%% (C) Copyright 2004-2008 Frank Mittelbach, -%% LaTeX3 Project -%% (C) Copyright 2009-2010 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3c of this -%% license or (at your option) any later version. The latest version -%% of this license is in the file -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the ``xbase bundle'' (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% The released version of this bundle is available from CTAN. -%% -%% ----------------------------------------------------------------------- -%% -%% The development version of the bundle can be found at -%% -%% http://www.latex-project.org/svnroot/experimental/trunk/ -%% -%% for those people who are interested. -%% -%%%%%%%%%%% -%% NOTE: %% -%%%%%%%%%%% -%% -%% Snapshots taken from the repository represent work in progress and may -%% not work or may contain conflicting material! We therefore ask -%% people _not_ to put them into distributions, archives, etc. without -%% prior consultation with the LaTeX Project Team. -%% -%% ----------------------------------------------------------------------- -%% -\RequirePackage{l3names} -\GetIdInfo$Id: xparse.dtx 2219 2011-04-08 21:07:45Z joseph $ - {Generic document command parser} -\ProvidesExplPackage - {\filename}{\filedate}{\fileversion}{\filedescription} -\RequirePackage{expl3} -\prop_new:N \c_xparse_shorthands_prop -\prop_put:Nnn \c_xparse_shorthands_prop { o } { d[] } -\prop_put:Nnn \c_xparse_shorthands_prop { O } { D[] } -\prop_put:Nnn \c_xparse_shorthands_prop { s } { t* } -\tl_new:N \l_xparse_arg_tl -\tl_new:N \l_xparse_args_tl -\bool_new:N \l_xparse_environment_bool -\bool_new:N \l_xparse_error_bool -\tl_new:N \l_xparse_function_tl -\tl_new:N \l_xparse_last_arg_tl -\bool_new:N \l_xparse_long_bool -\int_new:N \l_xparse_m_args_int -\bool_new:N \l_xparse_m_only_bool -\int_new:N \l_xparse_mandatory_args_int -\bool_new:N \l_xparse_processor_bool -\int_new:N \l_xparse_processor_int -\tl_new:N \l_xparse_signature_tl -\tl_new:N \l_xparse_tmp_tl -\int_new:N \l_xparse_total_args_int -\cs_new_nopar:Npn \xparse_add_grabber_mandatory:N #1 { - \tl_put_right:Nx \l_xparse_signature_tl { - \exp_not:c { - xparse_grab_ #1 \bool_if:NT \l_xparse_long_bool { _long } :w - } - } - \bool_set_false:N \l_xparse_long_bool - \int_decr:N \l_xparse_mandatory_args_int -} -\cs_new_nopar:Npn \xparse_add_grabber_optional:N #1 { - \tl_put_right:Nx \l_xparse_signature_tl { - \exp_not:c { - xparse_grab_ #1 - \bool_if:NT \l_xparse_long_bool { _long } - \int_compare:nF { - \l_xparse_mandatory_args_int > \c_zero - } { _trailing } - :w - } - } - \bool_set_false:N \l_xparse_long_bool -} -\cs_new_nopar:cpn { xparse_add_type_+:w } { - \xparse_flush_m_args: - \bool_set_true:N \l_xparse_long_bool - \bool_set_false:N \l_xparse_m_only_bool - \int_decr:N \l_xparse_total_args_int - \xparse_prepare_signature:N -} -\cs_new:cpn { xparse_add_type_>:w } #1 { - \bool_set_true:N \l_xparse_processor_bool - \xparse_flush_m_args: - \int_decr:N \l_xparse_total_args_int - \tl_put_right:Nn \l_xparse_signature_tl { - \xparse_process_arg:n {#1} - } - \xparse_prepare_signature_aux:N -} -\cs_new:Npn \xparse_add_type_d:w #1#2 { - \xparse_add_type_D:w #1 #2 { \NoValue } -} -\cs_new:Npn \xparse_add_type_D:w #1#2#3 { - \xparse_flush_m_args: - \xparse_add_grabber_optional:N D - \tl_put_right:Nn \l_xparse_signature_tl { #1 #2 {#3} } - \xparse_prepare_signature:N -} -\cs_new_nopar:Npn \xparse_add_type_g:w { - \xparse_add_type_G:w { \NoValue } -} -\cs_new:Npn \xparse_add_type_G:w #1 { - \xparse_flush_m_args: - \xparse_add_grabber_optional:N G - \tl_put_right:Nn \l_xparse_signature_tl { {#1} } - \xparse_prepare_signature:N -} -\cs_new_nopar:Npn \xparse_add_type_l:w { - \xparse_flush_m_args: - \xparse_add_grabber_mandatory:N l - \xparse_prepare_signature:N -} -\cs_new_nopar:Npn \xparse_add_type_m:w { - \bool_if:nTF { - \l_xparse_long_bool || \l_xparse_processor_bool - } { - \xparse_flush_m_args: - \xparse_add_grabber_mandatory:N m - }{ - \int_incr:N \l_xparse_m_args_int - } - \xparse_prepare_signature:N -} -\cs_new:Npn \xparse_add_type_t:w #1 { - \xparse_flush_m_args: - \xparse_add_grabber_optional:N t - \tl_put_right:Nn \l_xparse_signature_tl { #1 } - \xparse_prepare_signature:N -} -\cs_new:Npn \xparse_add_type_u:w #1 { - \xparse_flush_m_args: - \xparse_add_grabber_mandatory:N u - \tl_put_right:Nn \l_xparse_signature_tl { {#1} } - \xparse_prepare_signature:N -} -\cs_new_nopar:Npn \xparse_check_and_add:N #1 { - \cs_if_free:cTF { xparse_add_type_ #1 :w } { - \msg_kernel_error:nnx { xparse } { unknown-argument-type } {#1} - \xparse_add_type_m:w - }{ - \use:c { xparse_add_type_ #1 :w } - } -} -\cs_new:Npn \xparse_count_mandatory:n #1 { - \int_zero:N \l_xparse_mandatory_args_int - \xparse_count_mandatory:N #1 \q_nil -} -\cs_new:Npn \xparse_count_mandatory:N #1 { - \quark_if_nil:NF #1 { - \prop_if_in:NnTF \c_xparse_shorthands_prop {#1} { - \prop_get:NnN \c_xparse_shorthands_prop {#1} \l_xparse_tmp_tl - \exp_last_unbraced:NV \xparse_count_mandatory:N \l_xparse_tmp_tl - }{ - \xparse_count_mandatory_aux:N #1 - } - } -} -\cs_new:Npn \xparse_count_mandatory_aux:N #1 { - \cs_if_free:cTF { xparse_count_type_ #1 :w } { - \xparse_count_type_m:w - }{ - \use:c { xparse_count_type_ #1 :w } - } -} -\cs_new:cpn { xparse_count_type_>:w } #1 { - \xparse_count_mandatory:N -} -\cs_new_nopar:cpn { xparse_count_type_+:w } { - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_count_type_d:w #1#2 { - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_count_type_D:w #1#2#3 { - \xparse_count_mandatory:N -} -\cs_new_nopar:Npn \xparse_count_type_g:w { - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_count_type_G:w #1 { - \xparse_count_mandatory:N -} -\cs_new_nopar:Npn \xparse_count_type_l:w { - \int_incr:N \l_xparse_mandatory_args_int - \xparse_count_mandatory:N -} -\cs_new_nopar:Npn \xparse_count_type_m:w { - \int_incr:N \l_xparse_mandatory_args_int - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_count_type_t:w #1 { - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_count_type_u:w #1 { - \int_incr:N \l_xparse_mandatory_args_int - \xparse_count_mandatory:N -} -\cs_new:Npn \xparse_declare_cmd:Nnn #1#2 { - \cs_if_exist:NTF #1 - { - \msg_kernel_warning:nnxx { xparse } { redefine-command } - { \token_to_str:N #1 } { \exp_not:n {#2} } - } - { - \msg_kernel_info:nnxx { xparse } { define-command } - { \token_to_str:N #1 } { \exp_not:n {#2} } - } - \xparse_declare_cmd_aux:Nnn #1 {#2} -} -\cs_new:Npn \xparse_declare_cmd_aux:Nnn #1#2#3 { - \cs_if_exist:cF { l_xparse_ \token_to_str:N #1 _arg_spec_tl } - { \tl_new:c { l_xparse_ \token_to_str:N #1 _arg_spec_tl } } - \tl_set:cn { l_xparse_ \token_to_str:N #1 _arg_spec_tl } {#2} - \xparse_count_mandatory:n {#2} - \xparse_prepare_signature:n {#2} - \bool_if:NTF \l_xparse_m_only_bool { - \xparse_declare_cmd_all_m:Nn #1 {#3} - }{ - \xparse_declare_cmd_mixed:Nn #1 {#3} - } -} -\cs_generate_variant:Nn \xparse_declare_cmd_aux:Nnn { cnn } -\cs_new:Npn \xparse_declare_cmd_all_m:Nn #1#2 { - \cs_generate_from_arg_count:NNnn - #1 \cs_set_protected_nopar:Npn \l_xparse_total_args_int {#2} -} -\cs_new:Npn \xparse_declare_cmd_mixed:Nn #1#2 { - \group_begin: - \tex_escapechar:D 92 \scan_stop: - \tl_set:Nx \l_xparse_function_tl { \token_to_str:N #1 } - \exp_args:NNNo \group_end: - \tl_set:Nn \l_xparse_function_tl { \l_xparse_function_tl } - \cs_set_protected_nopar:Npx #1 { - \exp_not:n { - \int_zero:N \l_xparse_processor_int - \tl_set:Nn \l_xparse_args_tl - } { \exp_not:c { \l_xparse_function_tl } } - \exp_not:V \l_xparse_signature_tl - \exp_not:N \l_xparse_args_tl - } - \cs_generate_from_arg_count:cNnn - { \token_to_str:N #1 } \cs_set:Npn \l_xparse_total_args_int {#2} -} -\cs_new:Npn \xparse_declare_cmd_implementation:nNn #1#2#3 { - \cs_generate_from_arg_count:cNnn { implementation_ #1 :w } - \cs_set:Npn {#2} {#3} -} -\cs_new:Npn \xparse_declare_cmd_interface:Nnn #1#2#3 { - \xparse_prepare_signature:n {#3} - \bool_if:NTF \l_xparse_m_only_bool { - \xparse_declare_cmd_interface_all_m:Nn #1 {#2} - }{ - \xparse_declare_cmd_interface_mixed:Nn #1 {#2} - } - \cs_generate_from_arg_count:cNnn { implementation_ #2 :w } - \cs_set:Npn \l_xparse_total_args_int { ``#2'' } -} -\cs_new:Npn \xparse_declare_cmd_interface_all_m:Nn #1#2 { - \cs_generate_from_arg_count:NNnn - #1 \cs_set_protected_nopar:Npn \l_xparse_total_args_int - { \use:c { implementation_ #2 :w } } -} -\cs_new:Npn \xparse_declare_cmd_interface_mixed:Nn #1#2 { - \cs_set_protected_nopar:Npx #1 { - \exp_not:n { - \int_zero:N \l_xparse_processor_int - \tl_set:Nn \l_xparse_args_tl - } { \exp_not:c { \token_to_str:N #1 } } - \exp_not:V \l_xparse_signature_tl - \exp_not:N \l_xparse_args_tl - } - \cs_generate_from_arg_count:cNnn - { \token_to_str:N #1 } \cs_set:Npn \l_xparse_total_args_int - { \use:c { implementation_ #2 :w } } -} -\cs_new:Npn \xparse_declare_env:nnnn #1#2#3#4 { - \bool_set_true:N \l_xparse_environment_bool - \cs_if_exist:cTF {#1} - { - \msg_kernel_warning:nnxx { xparse } { redefine-environment } - {#1} { \exp_not:n {#2} } - } - { - \msg_kernel_info:nnxx { xparse } { define-environment } - {#1} { \exp_not:n {#2} } - } - \xparse_declare_cmd_aux:cnn { environment_begin_ #1 :w } {#2} { - \group_begin: - \cs_set_protected_nopar:cpx { environment_end_ #1 :w } - { - \exp_not:c { environment_end_ #1 _aux:N } - \exp_not:V \l_xparse_args_tl - \group_end: - } - #3 - } - \cs_set_protected_nopar:cpx { environment_end_ #1 : } - { \exp_not:c { environment_end_ #1 :w } } - \bool_set_false:N \l_xparse_environment_bool - \cs_set_nopar:cpx { environment_end_ #1 _aux:N } ##1 { - \exp_not:c { environment_end_ #1 _aux :w } - } - \cs_generate_from_arg_count:cNnn - { environment_end_ #1 _aux :w } \cs_set:Npn - \l_xparse_total_args_int {#4} - \cs_set_eq:cc {#1} { environment_begin_ #1 :w } - \cs_set_eq:cc { end #1 } { environment_end_ #1 : } -} -\cs_new_nopar:Npn \xparse_flush_m_args: { - \cs_if_exist:cT { - xparse_grab_m_ \int_use:N \l_xparse_m_args_int :w - } { - \tl_put_right:Nx \l_xparse_signature_tl { - \exp_not:c { xparse_grab_m_ \int_use:N \l_xparse_m_args_int :w } - } - \int_set:Nn \l_xparse_mandatory_args_int { - \l_xparse_mandatory_args_int - \l_xparse_m_args_int - } - } - \int_zero:N \l_xparse_m_args_int - \bool_set_false:N \l_xparse_m_only_bool -} -\prg_new_conditional:Nnn \xparse_if_no_value:n { TF,T,F } { - \str_if_eq:nnTF {#1} { \NoValue } { - \prg_return_true: - }{ - \prg_return_false: - } -} -\cs_new:Npn \xparse_prepare_signature:n #1 { - \bool_set_false:N \l_xparse_long_bool - \int_zero:N \l_xparse_m_args_int - \bool_if:NTF \l_xparse_environment_bool { - \bool_set_false:N \l_xparse_m_only_bool - }{ - \bool_set_true:N \l_xparse_m_only_bool - } - \bool_set_false:N \l_xparse_processor_bool - \tl_clear:N \l_xparse_signature_tl - \int_zero:N \l_xparse_total_args_int - \xparse_prepare_signature:N #1 \q_nil -} -\cs_new:Npn \xparse_prepare_signature:N #1 { - \bool_set_false:N \l_xparse_processor_bool - \xparse_prepare_signature_aux:N #1 -} -\cs_new:Npn \xparse_prepare_signature_aux:N #1 { - \quark_if_nil:NTF #1 { - \bool_if:NF \l_xparse_m_only_bool { - \xparse_flush_m_args: - } - }{ - \prop_if_in:NnTF \c_xparse_shorthands_prop {#1} { - \prop_get:NnN \c_xparse_shorthands_prop {#1} \l_xparse_tmp_tl - \exp_last_unbraced:NV \xparse_prepare_signature:N \l_xparse_tmp_tl - }{ - \int_incr:N \l_xparse_total_args_int - \xparse_check_and_add:N #1 - } - } -} -\cs_new:Npn \xparse_process_arg:n #1 { - \int_incr:N \l_xparse_processor_int - \cs_set:cpn { - xparse_processor_ \int_use:N \l_xparse_processor_int :n - } ##1 - { #1 {##1} } -} -\cs_new:Npn \xparse_add_arg:n #1 { - \int_compare:nTF { \l_xparse_processor_int = \c_zero } { - \tl_put_right:Nn \l_xparse_args_tl { {#1} } - }{ - \xparse_if_no_value:nTF {#1} { - \int_zero:N \l_xparse_processor_int - \tl_put_right:Nn \l_xparse_args_tl { {#1} } - }{ - \xparse_add_arg_aux:n {#1} - } - } -} -\cs_generate_variant:Nn \xparse_add_arg:n { V } -\cs_new:Npn \xparse_add_arg_aux:n #1 { - \tl_set_eq:NN \ProcessedArgument \l_xparse_arg_tl - \use:c { xparse_processor_ \int_use:N \l_xparse_processor_int :n } - {#1} - \int_decr:N \l_xparse_processor_int - \int_compare:nTF { \l_xparse_processor_int = \c_zero } { - \tl_put_right:Nx \l_xparse_args_tl { - { \exp_not:V \ProcessedArgument } - } - }{ - \xparse_add_arg_aux:V \ProcessedArgument - } -} -\cs_generate_variant:Nn \xparse_add_arg_aux:n { V } -\cs_new:Npn \xparse_grab_arg:w { } -\cs_new:Npn \xparse_grab_arg_aux_i:w { } -\cs_new:Npn \xparse_grab_arg_aux_ii:w { } -\cs_new:Npn \xparse_grab_D:w #1#2#3#4 \l_xparse_args_tl { - \xparse_grab_D_aux:NNnnNn #1 #2 {#3} {#4} \cs_set_nopar:Npn - { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_D_long:w #1#2#3#4 \l_xparse_args_tl { - \xparse_grab_D_aux:NNnnNn #1 #2 {#3} {#4} \cs_set:Npn - { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_D_trailing:w #1#2#3#4 \l_xparse_args_tl { - \xparse_grab_D_aux:NNnnNn #1 #2 {#3} {#4} \cs_set_nopar:Npn { } -} -\cs_new:Npn \xparse_grab_D_long_trailing:w #1#2#3#4 - \l_xparse_args_tl { - \xparse_grab_D_aux:NNnnNn #1 #2 {#3} {#4} \cs_set:Npn { } -} -\cs_new:Npn \xparse_grab_D_aux:NNnnNn #1#2#3#4#5#6 { - #5 \xparse_grab_arg:w #1 { - \peek_meaning:NTF \c_group_begin_token { - \xparse_grab_arg_aux_i:w - }{ - \xparse_grab_arg_aux_ii:w - } - } - #5 \xparse_grab_arg_aux_i:w ##1 { - \peek_charcode:NTF #2 { - \xparse_grab_arg_aux_ii:w { {##1} } - }{ - \xparse_grab_arg_aux_ii:w {##1} - } - } - #5 \xparse_grab_arg_aux_ii:w ##1 #2 { - \tl_if_in:nnTF {##1} {#1} { - \xparse_grab_D_nested:NNnnN #1 #2 {##1} {#4} #5 - }{ - \xparse_add_arg:n {##1} - #4 \l_xparse_args_tl - } - } - \use:c { peek_charcode #6 :NTF } #1 { - \xparse_grab_arg:w - }{ - \xparse_add_arg:n {#3} - #4 \l_xparse_args_tl - } -} -\tl_new:N \_l_xparse_nesting_a_tl -\tl_new:N \_l_xparse_nesting_b_tl -\quark_new:N \q_xparse -\cs_new_protected:Npn \xparse_grab_D_nested:NNnnN #1#2#3#4#5 { - \tl_clear:N \_l_xparse_nesting_a_tl - \tl_clear:N \_l_xparse_nesting_b_tl - #5 \xparse_grab_arg:w ##1 #1 ##2 \q_xparse ##3 #2 - { - \tl_put_right:Nn \_l_xparse_nesting_a_tl { ##1 #1 } - \tl_put_right:Nn \_l_xparse_nesting_b_tl { #2 ##3 } - \tl_if_in:nnTF {##2} {#1} - { \xparse_grab_arg:w ##2 \q_xparse } - { - \tl_put_right:Nn \_l_xparse_nesting_a_tl {##2} - \tl_if_in:NnTF \_l_xparse_nesting_b_tl {#1} - { - \tl_set_eq:NN \l_xparse_tmp_tl \_l_xparse_nesting_b_tl - \tl_clear:N \_l_xparse_nesting_b_tl - \exp_last_unbraced:NV \xparse_grab_arg:w - \l_xparse_tmp_tl \q_xparse - } - { - \tl_put_right:NV \_l_xparse_nesting_a_tl - \_l_xparse_nesting_b_tl - \xparse_add_arg:V \_l_xparse_nesting_a_tl - #4 \l_xparse_args_tl - } - } - } - \xparse_grab_arg:w #3 \q_xparse -} -\cs_new:Npn \xparse_grab_G:w #1#2 \l_xparse_args_tl { - \xparse_grab_G_aux:nnNn {#1} {#2} \cs_set_nopar:Npn { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_G_long:w #1#2 \l_xparse_args_tl { - \xparse_grab_G_aux:nnNn {#1} {#2} \cs_set:Npn { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_G_trailing:w #1#2 \l_xparse_args_tl { - \xparse_grab_G_aux:nnNn {#1} {#2} \cs_set_nopar:Npn { } -} -\cs_new:Npn \xparse_grab_G_long_trailing:w #1#2 \l_xparse_args_tl { - \xparse_grab_G_aux:nnNn {#1} {#2} \cs_set:Npn { } -} -\cs_set:Npn \xparse_grab_G_aux:nnNn #1#2#3#4 { - #3 \xparse_grab_arg:w ##1 { - \xparse_add_arg:n {##1} - #2 \l_xparse_args_tl - } - \use:c { peek_meaning #4 :NTF } \c_group_begin_token { - \xparse_grab_arg:w - }{ - \xparse_add_arg:n {#1} - #2 \l_xparse_args_tl - } -} -\cs_new:Npn \xparse_grab_l:w #1 \l_xparse_args_tl { - \xparse_grab_l_aux:nN {#1} \cs_set_nopar:Npn -} -\cs_new:Npn \xparse_grab_l_long:w #1 \l_xparse_args_tl { - \xparse_grab_l_aux:nN {#1} \cs_set:Npn -} -\cs_new:Npn \xparse_grab_l_aux:nN #1#2 { - #2 \xparse_grab_arg:w ##1## { - \xparse_add_arg:n {##1} - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:Npn \xparse_grab_m:w #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1 { - \xparse_add_arg:n {##1} - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:Npn \xparse_grab_m_long:w #1 \l_xparse_args_tl { - \cs_set:Npn \xparse_grab_arg:w ##1 { - \xparse_add_arg:n {##1} - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_1:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1 { - \tl_put_right:Nn \l_xparse_args_tl { {##1} } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_2:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2 { - \tl_put_right:Nn \l_xparse_args_tl { {##1} {##2} } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_3:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3 { - \tl_put_right:Nn \l_xparse_args_tl { {##1} {##2} {##3} } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_4:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3##4 { - \tl_put_right:Nn \l_xparse_args_tl { {##1} {##2} {##3} {##4} } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_5:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3##4##5 { - \tl_put_right:Nn \l_xparse_args_tl { - {##1} {##2} {##3} {##4} {##5} - } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_6:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3##4##5##6 { - \tl_put_right:Nn \l_xparse_args_tl { - {##1} {##2} {##3} {##4} {##5} {##6} - } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_7:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3##4##5##6##7 { - \tl_put_right:Nn \l_xparse_args_tl { - {##1} {##2} {##3} {##4} {##5} {##6} {##7} - } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:cpn { xparse_grab_m_8:w } #1 \l_xparse_args_tl { - \cs_set_nopar:Npn \xparse_grab_arg:w ##1##2##3##4##5##6##7##8 { - \tl_put_right:Nn \l_xparse_args_tl { - {##1} {##2} {##3} {##4} {##5} {##6} {##7} {##8} - } - #1 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:Npn \xparse_grab_t:w #1#2 \l_xparse_args_tl { - \xparse_grab_t_aux:NnNn #1 {#2} \cs_set_nopar:Npn { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_t_long:w #1#2 \l_xparse_args_tl { - \xparse_grab_t_aux:NnNn #1 {#2} \cs_set:Npn { _ignore_spaces } -} -\cs_new:Npn \xparse_grab_t_trailing:w #1#2 \l_xparse_args_tl { - \xparse_grab_t_aux:NnNn #1 {#2} \cs_set_nopar:Npn { } -} -\cs_new:Npn \xparse_grab_t_long_trailing:w #1#2 \l_xparse_args_tl { - \xparse_grab_t_aux:NnNn #1 {#2} \cs_set:Npn { } -} -\cs_new:Npn \xparse_grab_t_aux:NnNn #1#2#3#4 { - #3 \xparse_grab_arg:w { - \use:c { peek_charcode_remove #4 :NTF } #1 { - \xparse_add_arg:n { \BooleanTrue } - #2 \l_xparse_args_tl - }{ - \xparse_add_arg:n { \BooleanFalse } - #2 \l_xparse_args_tl - } - } - \xparse_grab_arg:w -} -\cs_new:Npn \xparse_grab_u:w #1#2 \l_xparse_args_tl { - \xparse_grab_u_aux:NnN {#1} {#2} \cs_set_nopar:Npn -} -\cs_new:Npn \xparse_grab_u_long:w #1#2 \l_xparse_args_tl { - \xparse_grab_u_aux:NnN {#1} {#2} \cs_set:Npn -} -\cs_new:Npn \xparse_grab_u_aux:NnN #1#2#3 { - #3 \xparse_grab_arg:w ##1 #1 { - \xparse_add_arg:n {##1} - #2 \l_xparse_args_tl - } - \xparse_grab_arg:w -} -\cs_new:Npn \xparse_process_to_str:n #1 { - \tl_set:Nx \ProcessedArgument { - \tl_to_str:n {#1} - } -} -\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_mark ##2 #2 ##3 \q_stop - { - \tl_put_right:Nn \ProcessedArgument { {##2} } - ##1 \q_mark ##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_mark - \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_mark #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 { } -\tl_new:N \_l_xparse_split_list_tl -\group_begin: - \char_make_active:N \@ - \cs_gset_protected:Npn \_xparse_split_list:nn #1#2 - { - \tl_set:Nn \_l_xparse_split_list_tl {#2} - \group_begin: - \char_set_lccode:nn { `\@ } { `#1 } - \tl_to_lowercase:n - { - \group_end: - \tl_replace_all_in:Nnn \_l_xparse_split_list_tl { @ } {#1} - } - \cs_set:Npn \_xparse_split_list_aux:w ##1 #1 - { - \quark_if_recursion_tail_stop:n {##1} - \tl_put_right:Nn \ProcessedArgument { {##1} } - \_xparse_split_list_aux:w - } - \tl_if_empty:NTF \_l_xparse_split_list_tl - { \tl_set:Nn \ProcessedArgument { { } } } - { - \tl_clear:N \ProcessedArgument - \exp_last_unbraced:NV \_xparse_split_list_aux:w - \_l_xparse_split_list_tl #1 - \q_recursion_tail #1 \q_recursion_stop - } - } -\group_end: -\cs_set:Npn \_xparse_split_list_aux:w { } -\cs_new:Npn \xparse_exp_add_type_d:w #1#2 { - \xparse_exp_add_type_D:w #1 #2 { \NoValue } -} -\cs_new:Npn \xparse_exp_add_type_D:w #1#2#3 { - \tl_set:Nx \l_xparse_tmp_tl { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_use:N \l_xparse_total_args_int - } - \xparse_exp_set:cpx { \l_xparse_tmp_tl } ##1 \q_xparse ##2 { - \exp_not:N \tl_if_head_eq_charcode:nNTF {##2} #1 { - \exp_not:c { \l_xparse_tmp_tl aux } - ##1 \exp_not:N \q_xparse - }{ - \exp_not:c { \l_xparse_tmp_tl aux } - ##1 \exp_not:N \q_xparse #3 #2 {##2} - } - } - \xparse_exp_set:cpx { \l_xparse_tmp_tl aux} ##1 \q_xparse ##2 #2 { - \exp_not:c { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_eval:n { \l_xparse_total_args_int + 1 } - } ##1 {##2} \exp_not:N \q_xparse - } - \xparse_exp_prepare_function:N -} -\cs_new_nopar:Npn \xparse_exp_add_type_l:w { - \xparse_exp_set:cpx { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_use:N \l_xparse_total_args_int - } ##1 \q_xparse ##2## { - \exp_not:c { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_eval:n { \l_xparse_total_args_int + 1 } - } - ##1 {##2} \exp_not:N \q_xparse - } - \xparse_exp_prepare_function:N -} -\cs_new_nopar:Npn \xparse_exp_add_type_m:w { - \int_incr:N \l_xparse_m_args_int - \xparse_exp_set:cpx { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_use:N \l_xparse_total_args_int - } ##1 \q_xparse ##2 { - \exp_not:c { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_eval:n { \l_xparse_total_args_int + 1 } - } - ##1 {##2} \exp_not:N \q_xparse - } - \xparse_exp_prepare_function:N -} -\cs_new:Npn \xparse_exp_add_type_t:w #1 { - \tl_set:Nx \l_xparse_tmp_tl { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_eval:n { \l_xparse_total_args_int + 1 } - } - \xparse_exp_set:cpx { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_use:N \l_xparse_total_args_int - } ##1 \q_xparse ##2 { - \exp_not:N \tl_if_head_eq_charcode:nNTF {##2} #1 { - \exp_not:c { \l_xparse_tmp_tl } - ##1 \exp_not:n { { \BooleanTrue } \q_xparse } - }{ - \exp_not:c { \l_xparse_tmp_tl } - ##1 \exp_not:n { { \BooleanFalse } \q_xparse {##2} } - } - } - \xparse_exp_prepare_function:N -} -\cs_new:Npn \xparse_exp_add_type_u:w #1 { - \xparse_exp_set:cpx { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_use:N \l_xparse_total_args_int - } ##1 \q_xparse ##2 #1 { - \exp_not:c { - \exp_after:wN \token_to_str:N \l_xparse_function_tl - \int_eval:n { \l_xparse_total_args_int + 1 } - } - ##1 {##2} \exp_not:N \q_xparse - } - \xparse_exp_prepare_function:N -} -\cs_new_nopar:Npn \xparse_exp_check_and_add:N #1 { - \cs_if_free:cTF { xparse_exp_add_type_ #1 :w } { - \msg_kernel_error:nnx { xparse } { unknown-argument-type } {#1} - \tl_set:Nn \l_xparse_last_arg_tl { m } - \xparse_exp_add_type_m:w - }{ - \tl_set:Nn \l_xparse_last_arg_tl {#1} - \use:c { xparse_exp_add_type_ #1 :w } - } -} -\cs_new:Npn \xparse_exp_declare_cmd:Nnn #1#2#3 { - \cs_if_exist:NTF #1 - { - \msg_kernel_warning:nnxx { xparse } { redefine-command } - { \token_to_str:N #1 } { \exp_not:n {#2} } - } - { - \msg_kernel_info:nnxx { xparse } { define-command } - { \token_to_str:N #1 } { \exp_not:n {#2} } - } - \group_begin: - \tex_escapechar:D 92 \scan_stop: - \tl_set:Nx \l_xparse_function_tl { \token_to_str:N #1} - \exp_args:NNNo \group_end: - \tl_set:Nn \l_xparse_function_tl { \l_xparse_function_tl } - \xparse_exp_prepare_function:n {#2} - \int_compare:nTF { - \l_xparse_total_args_int = \l_xparse_m_args_int - } { - \xparse_exp_declare_cmd_all_m:Nn #1 {#3} - }{ - \xparse_exp_declare_cmd_mixed:Nn #1 {#3} - } -} -\cs_new:Npn \xparse_exp_declare_cmd_all_m:Nn #1#2 { - \bool_if:NTF \l_xparse_long_bool { - \cs_generate_from_arg_count:NNnn - #1 \cs_set:Npn \l_xparse_total_args_int {#2} - }{ - \cs_generate_from_arg_count:NNnn - #1 \cs_set_nopar:Npn \l_xparse_total_args_int {#2} - } -} -\cs_new:Npn \xparse_exp_declare_cmd_mixed:Nn #1#2 { - \exp_args:NnV \tl_if_in:nnTF { l m u } \l_xparse_last_arg_tl { - \xparse_exp_declare_cmd_mixed_aux:Nn #1 {#2} - }{ - \msg_kernel_error:nn { xparse } { expandable-ending-optional } - } -} -\cs_new:Npn \xparse_exp_declare_cmd_mixed_aux:Nn #1#2 { - \cs_set_nopar:Npx #1 { - \exp_not:c { \token_to_str:N #1 1 } x \exp_not:N \q_xparse - } - \cs_set_nopar:cpx { - \token_to_str:N #1 \int_eval:n { \l_xparse_total_args_int + 1 } - } x ##1 \q_xparse { - \exp_not:c { \token_to_str:N #1 } ##1 - } - \cs_generate_from_arg_count:cNnn - { \token_to_str:N #1 } \cs_set:Npn \l_xparse_total_args_int {#2} -} -\cs_new:Npn \xparse_exp_prepare_function:n #1 { - \bool_set_false:N \l_xparse_error_bool - \tl_if_in:nnT {#1} { > } { - \msg_kernel_error:nnx { xparse } { processor-in-expandable } {#1} - \bool_set_true:N \l_xparse_error_bool - } - \tl_if_in:nnT {#1} { g } { - \msg_kernel_error:nnx { xparse } { grouped-in-expandable } - { g } {#1} - \bool_set_true:N \l_xparse_error_bool - } - \tl_if_in:nnT {#1} { G } { - \msg_kernel_error:nnx { xparse } { grouped-in-expandable } - { G } {#1} - \bool_set_true:N \l_xparse_error_bool - } - \bool_if:NF \l_xparse_error_bool { - \xparse_exp_prepare_function_aux:n {#1} - } -} -\cs_new:Npn \xparse_exp_prepare_function_aux:n #1 { - \cs_set_eq:NN \xparse_prepare_next:w \xparse_exp_prepare_function:N - \cs_set_eq:NN \xparse_exp_set:cpx \cs_set_nopar:cpx - \bool_set_false:N \l_xparse_long_bool - \int_zero:N \l_xparse_m_args_int - \int_zero:N \l_xparse_total_args_int - \tl_if_in:nnT {#1} { + } { - \bool_set_true:N \l_xparse_long_bool - \cs_set_eq:NN \xparse_exp_set:cpx \cs_set:cpx - } - \xparse_exp_prepare_function:N #1 \q_nil -} -\cs_new:Npn \xparse_exp_prepare_function:N #1 { - \bool_if:NTF \l_xparse_long_bool { - \xparse_exp_prepare_function_long:N #1 - }{ - \xparse_exp_prepare_function_short:N #1 - } -} -\cs_new:Npn \xparse_exp_prepare_function_long:N #1 { - \quark_if_nil:NF #1 { - \str_if_eq:nnTF {#1} { + } { - \xparse_exp_prepare_function_short:N - }{ - \msg_kernel_error:nn { xparse } { expandable-inconsistent-long } - \xparse_exp_prepare_function_short:N #1 - } - } -} -\cs_new:Npn \xparse_exp_prepare_function_short:N #1 { - \quark_if_nil:NF #1 { - \prop_if_in:NnTF \c_xparse_shorthands_prop {#1} { - \prop_get:NnN \c_xparse_shorthands_prop {#1} \l_xparse_tmp_tl - \bool_if:NT \l_xparse_long_bool { - \tl_put_left:Nn \l_xparse_tmp_tl { + } - } - \exp_last_unbraced:NV \xparse_exp_prepare_function:N - \l_xparse_tmp_tl - }{ - \int_incr:N \l_xparse_total_args_int - \xparse_exp_check_and_add:N #1 - } - } -} -\cs_new_eq:NN \xparse_exp_set:cpx \cs_set_nopar:cpx -\cs_new_protected:Npn \xparse_get_arg_spec:N #1 { - \cs_if_exist:cTF { l_xparse_ \token_to_str:N #1 _arg_spec_tl } - { - \tl_set_eq:Nc \ArgumentSpecification - { l_xparse_ \token_to_str:N #1 _arg_spec_tl } - } - { - \msg_kernel_error:nnx { xparse } { unknown-document-command } - { \token_to_str:N #1 } - } -} -\cs_new_protected:Npn \xparse_get_arg_spec:n #1 { - \cs_if_exist:cTF { l_xparse_ #1 _arg_spec_tl } - { - \tl_set_eq:Nc \ArgumentSpecification { l_xparse_ #1 _arg_spec_tl } - } - { - \msg_kernel_error:nnx { xparse } - { unknown-document-environment } {#1} - } -} -\tl_new:N \ArgumentSpecification -\cs_new_protected:Npn \xparse_show_arg_spec:N #1 { - \cs_if_exist:cTF { l_xparse_ \token_to_str:N #1 _arg_spec_tl } - { - \tl_set_eq:Nc \ArgumentSpecification - { l_xparse_ \token_to_str:N #1 _arg_spec_tl } - \tl_show:N \ArgumentSpecification - } - { - \msg_kernel_error:nnx { xparse } { unknown-document-command } - { \token_to_str:N #1 } - } -} -\cs_new_protected:Npn \xparse_show_arg_spec:n #1 { - \cs_if_exist:cTF { l_xparse_ #1 _arg_spec_tl } - { - \tl_set_eq:Nc \ArgumentSpecification { l_xparse_ #1 _arg_spec_tl } - \tl_show:N \ArgumentSpecification - } - { - \msg_kernel_error:nnx { xparse } - { unknown-document-environment } {#1} - } -} -\msg_kernel_new:nnnn { xparse } { command-already-defined } - { Command~'#1'~already~defined! } - { - You~have~used~\token_to_str:N \NewDocumentCommand \\ - with~a~command~that~already~has~a~definition.\\ - Perhaps~you~meant~\token_to_str:N \RenewDocumentCommand. - } -\msg_kernel_new:nnnn { xparse } { command-not-yet-defined } - { Command ~'#1'~not~yet~defined! } - { - You~have~used~\token_to_str:N \RenewDocumentCommand \\ - with~a~command~that~was~never~defined.\\ - Perhaps~you~meant~\token_to_str:N \NewDocumentCommand. - } -\msg_kernel_new:nnnn { xparse } { environment-already-defined } - { Environment~'#1'~already~defined! } - { - You~have~used~\token_to_str:N \NewDocumentEnvironment \\ - with~a~command~that~already~has~a~definition.\\ - Perhaps~you~meant~\token_to_str:N \RenewDocumentEnvironment. - } -\msg_kernel_new:nnnn { xparse } { environment-not-yet-defined } - {Environment~'#1'~not~yet~defined! } - { - You~have~used~\token_to_str:N \RenewDocumentEnvironment \\ - with~a command~that~was~never~defined.\\ - Perhaps~you~meant~\token_to_str:N \NewDocumentEnvironment. - } -\msg_kernel_new:nnnn { xparse } { expandable-ending-optional } - { - Signature~for~expandable~command~ends~with \\ - optional~argument~\msg_line_context:. - } - { - Expandable~commands~must~have~a~final~mandatory~argument \\ - (or~no arguments~at all).~You~cannot~have~a~terminal~optional \\ - argument~with~expandable~commands. - } -\msg_kernel_new:nnnn { xparse } { expandable-inconsistent-long } - { - Inconsistent~handling~of~long~arguments~for \\ - expandable~command~\msg_line_context:. - } - { - The~arguments~for~an~expandable~command~must~either~all~be \\ - short~or~all~be~long.~You~have~tried~to~mix~the~two~types. - } -\msg_kernel_new:nnnn { xparse } { grouped-in-expandable } - {% - Argument~specifier~'#1'~forbidden~in~expandable~commands~ - \msg_line_context:. - } - { - Argument~specification~'#2'~contains~the~optional~grouped~ - argument~#1':\\ - this~is only~supported~for~standard~robust~functions. - } -\msg_kernel_new:nnnn { xparse } { processor-in-expandable } - { - Argument~processors~cannot~be~used \\ - with~expandable~functions~\msg_line_context:. - } - { - Argument~specification~'#1'~contains~a~processor~function:\\ - this~is~only~supported~for~standard~robust~functions. - } -\msg_kernel_new: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~... } - { - The~letter~#1'~does~not~specify~a~known~argument~type.\\ - I'm~assuming~you~want~a~standard~mandatory~argument~(type~'m'). - } -\msg_kernel_new:nnnn { xparse } { unknown-document-command } - { Unknown~document~command~'#1'. } - { - You~have~asked~for~the~argument~specification~for~a~command~'#1',~ - but~this~is~not~a~document~command. - } -\msg_kernel_new:nnnn { xparse } { unknown-document-environment } - { Unknown~document~environment~'#1'. } - { - You~have~asked~for~the~argument~specification~for~a~command~'#1',~ - but~this~is~not~a~document~environment. - } -\msg_kernel_new:nnn { xparse } { define-command } - { - Defining~document~command~#1\\ - with~arg.~spec.~'#2'~\msg_line_context:. - } -\msg_kernel_new:nnn { xparse } { define-environment } - { - Defining~document~environment~'#1'\\ - with~arg.~spec.~'#2'~\msg_line_context:. - } -\msg_kernel_new:nnn { xparse } { redefine-command } - { - Redefining~document~command~#1\\ - with~arg.~spec.~'#2'~\msg_line_context:. - } -\msg_kernel_new:nnn { xparse } { redefine-environment } - { - Redefining~document~environment~'#1'\\ - with~arg.~spec.~'#2'~\msg_line_context:. - } -\cs_new_eq:NN \BooleanFalse \c_false_bool -\cs_new_eq:NN \BooleanTrue \c_true_bool -\cs_new_protected:Npn \DeclareDocumentCommand #1#2#3 { - \xparse_declare_cmd:Nnn #1 {#2} {#3} -} -\cs_new_protected:Npn \NewDocumentCommand #1#2#3 { - \cs_if_exist:NTF #1 { - \msg_kernel_error:nnx { xparse } { command-already-defined } - { \token_to_str:N #1 } - }{ - \xparse_declare_cmd:Nnn #1 {#2} {#3} - } -} -\cs_new_protected:Npn \RenewDocumentCommand #1#2#3 { - \cs_if_exist:NTF #1 { - \xparse_declare_cmd_aux:Nnn #1 {#2} {#3} - \msg_kernel_info:nnxx { xparse } { redefine-command } - { \token_to_str:N #1 } { \exp_not:n {#2} } - }{ - \msg_kernel_error:nnx { xparse } { command-not-yet-defined } - { \token_to_str:N #1 } - } -} -\cs_new_protected:Npn \ProvideDocumentCommand #1#2#3 { - \cs_if_exist:NF #1 { - \xparse_declare_cmd:Nnn #1 {#2} {#3} - } -} -\cs_new_protected:Npn \DeclareDocumentCommandImplementation #1#2#3 { - \xparse_declare_cmd_implementation:nNn {#1} #2 {#3} -} -\cs_new_protected:Npn \DeclareDocumentCommandInterface #1#2#3 { - \xparse_declare_cmd_interface:Nnn #1 {#2} {#3} -} -\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4 { - \xparse_declare_env:nnnn {#1} {#2} {#3} {#4} -} -\cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4 { - \cs_if_exist:cTF {#1} { - \msg_kernel_error:nnx { xparse } - { environment-already-defined } {#1} - }{ - \xparse_declare_env:nnnn {#1} {#2} {#3} {#4} - } -} -\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4 { - \cs_if_exist:cTF {#1} { - \xparse_declare_env:nnnn {#1} {#2} {#3} {#4} - }{ - \msg_kernel_error:nnx { xparse } - { environment-not-yet-defined } {#1} - } -} -\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4 { - \cs_if_exist:cF { #1 } { - \xparse_declare_env:nnnn {#1} {#2} {#3} {#4} - } -} -\cs_new_protected:Npn \DeclareExpandableDocumentCommand #1#2#3 { - \xparse_exp_declare_cmd:Nnn #1 {#2} {#3} -} -\cs_new_eq:NN \IfBooleanTF \bool_if:NTF -\cs_new_eq:NN \IfBooleanT \bool_if:NT -\cs_new_eq:NN \IfBooleanF \bool_if:NF -\cs_new_eq:NN \IfNoValueF \xparse_if_no_value:nF -\cs_new_eq:NN \IfNoValueT \xparse_if_no_value:nT -\cs_new_eq:NN \IfNoValueTF \xparse_if_no_value:nTF -\cs_set:Npn \IfValueF { \xparse_if_no_value:nT } -\cs_set:Npn \IfValueT { \xparse_if_no_value:nF } -\cs_set:Npn \IfValueTF #1#2#3 { - \xparse_if_no_value:nTF {#1} {#3} {#2} -} -\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 -\cs_new_eq:NN \SplitList \_xparse_split_list:nn -\cs_new_eq:NN \GetDocumentCommandArgSpec \xparse_get_arg_spec:N -\cs_new_eq:NN \GetDocumentEnvironmmentArgSpec \xparse_get_arg_spec:n -\cs_new_eq:NN \ShowDocumentCommandArgSpec \xparse_show_arg_spec:N -\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \xparse_show_arg_spec:n -\endinput -%% -%% End of file `xparse.sty'. |