summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty')
-rw-r--r--Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty1198
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'.