summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-05-14 21:16:02 +0000
committerKarl Berry <karl@freefriends.org>2020-05-14 21:16:02 +0000
commitbb587f3190ec7933ee6a18e994099e566c6e8009 (patch)
tree6619bbe50d37ded7861833bc580028c2a8cca64c /Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx
parent9e186a1e49f4a0ef3154b453e114e0e7adc6ae6c (diff)
l3 (14may20)
git-svn-id: svn://tug.org/texlive/trunk@55142 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx')
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx143
1 files changed, 23 insertions, 120 deletions
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx
index 1ebd28dafc7..84bb42f2ac1 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.ltx
@@ -23,6 +23,7 @@
\message{xparse <2020-03-03>}%
}
\ExplSyntaxOn
+\file_input:n { xparse-generic.tex }
\tl_new:N \l__xparse_arg_spec_tl
\tl_new:N \l__xparse_args_tl
\tl_new:N \l__xparse_args_i_tl
@@ -190,7 +191,6 @@
\str_set:Nx \l__xparse_environment_str {#1}
\str_set:Nx \l__xparse_environment_str
{ \tl_trim_spaces:o { \l__xparse_environment_str } }
- \cs_if_exist:cTF { \l__xparse_environment_str }
{
\__kernel_msg_info:nnxx { xparse } { redefine-environment }
{ \l__xparse_environment_str } { \tl_to_str:n {#2} }
@@ -221,13 +221,10 @@
\cs_generate_from_arg_count:cNnn
{ environment~ #1 ~end~aux~ } \cs_set:Npn
\l__xparse_current_arg_int {#4}
- \cs_set_eq:cc {#1} { environment~ #1 }
- \cs_set_eq:cc { end #1 } { environment~ #1 ~end }
}
}
\cs_new_protected:Npn \__xparse_start_env:nnnnn #1#2
{
- \cs_if_exist_use:N \conditionally@traceoff
\str_set:Nn \l__xparse_environment_str {#2}
\bool_set_true:N \l__xparse_environment_bool
\__xparse_start_aux:ccnnnn
@@ -237,7 +234,6 @@
}
\cs_new_protected:Npx \__xparse_start:nNNnnn #1#2#3
{
- \exp_not:n { \cs_if_exist_use:N \conditionally@traceoff }
\exp_not:c { xparse~function~is~not~expandable }
\exp_not:n { \bool_set_false:N \l__xparse_environment_bool }
\exp_not:N \__xparse_start_aux:NNnnnn
@@ -257,7 +253,6 @@
{
\tl_if_empty:NF \l__xparse_defaults_tl { \__xparse_defaults: }
\tl_if_empty:NF \l__xparse_process_all_tl { \__xparse_args_process: }
- \cs_if_exist_use:N \conditionally@traceon
\exp_after:wN \l__xparse_fn_code_tl \l__xparse_args_tl
}
\cs_new_protected:Npn \__xparse_defaults:
@@ -416,8 +411,21 @@
\int_incr:N \l__xparse_current_arg_int
\cs_if_exist_use:cF { __xparse_normalize_type_ \tl_to_str:n {#1} :w }
{
- \__kernel_msg_error:nnxx { xparse } { unknown-argument-type }
- { \__xparse_environment_or_command: } { \tl_to_str:n {#1} }
+ \bool_lazy_any:nTF
+ {
+ { \str_if_eq_p:nn {#1} { G } }
+ { \str_if_eq_p:nn {#1} { g } }
+ { \str_if_eq_p:nn {#1} { l } }
+ { \str_if_eq_p:nn {#1} { u } }
+ }
+ {
+ \__kernel_msg_error:nnxx { xparse } { xparse-argument-type }
+ { \__xparse_environment_or_command: } { \tl_to_str:n {#1} }
+ }
+ {
+ \__kernel_msg_error:nnxx { xparse } { unknown-argument-type }
+ { \__xparse_environment_or_command: } { \tl_to_str:n {#1} }
+ }
\__xparse_bad_def:wn
}
}
@@ -433,8 +441,6 @@
\quark_if_recursion_tail_stop_do:nn {##1} { \__xparse_bad_arg_spec:wn }
\__xparse_normalize_type_E:w {##1} { }
}
- \cs_new_protected:Npn \__xparse_normalize_type_g:w
- { \__xparse_normalize_type_G:w {#1} }
\cs_new_protected:Npn \__xparse_normalize_type_o:w
{ \__xparse_normalize_type_D:w [ ] {#1} }
\cs_new_protected:Npn \__xparse_normalize_type_O:w
@@ -522,14 +528,6 @@
\__xparse_normalize_E_unique_check:w #2 \q_stop
}
}
-\cs_new_protected:Npn \__xparse_normalize_type_G:w #1
- {
- \quark_if_recursion_tail_stop_do:nn {#1} { \__xparse_bad_arg_spec:wn }
- \__xparse_normalize_check_gv:N G
- \__xparse_add_arg_spec:n { G {#1} }
- \tl_put_right:Nn \l__xparse_last_delimiters_tl { { } }
- \__xparse_normalize_arg_spec_loop:n
- }
\cs_new_protected:Npn \__xparse_normalize_type_t:w #1
{
\quark_if_recursion_tail_stop_do:Nn #1 { \__xparse_bad_arg_spec:wn }
@@ -545,12 +543,6 @@
\bool_set_false:N \l__xparse_long_bool
\__xparse_normalize_arg_spec_loop:n
}
-\cs_new_protected:Npn \__xparse_normalize_type_l:w
- {
- \__xparse_normalize_check_lu:N l
- \__xparse_add_arg_spec_mandatory:n { l }
- \__xparse_normalize_arg_spec_loop:n
- }
\cs_new_protected:Npn \__xparse_normalize_type_m:w
{
\__xparse_delimiter_check:nnn { } { m } { \iow_char:N \{ }
@@ -567,13 +559,6 @@
\__xparse_add_arg_spec_mandatory:n { R #1 #2 {#3} }
\__xparse_normalize_arg_spec_loop:n
}
-\cs_new_protected:Npn \__xparse_normalize_type_u:w #1
- {
- \quark_if_recursion_tail_stop_do:nn {#1} { \__xparse_bad_arg_spec:wn }
- \__xparse_normalize_check_lu:N u
- \__xparse_add_arg_spec_mandatory:n { u {#1} }
- \__xparse_normalize_arg_spec_loop:n
- }
\cs_new_protected:Npn \__xparse_normalize_type_v:w
{
\__xparse_normalize_check_gv:N v
@@ -779,20 +764,6 @@
\tl_put_right:Nn \l__xparse_signature_tl { {#1} }
\__xparse_prepare_signature:N
}
-\cs_new_protected:Npn \__xparse_add_type_G:w #1
- {
- \__xparse_flush_m_args:
- \__xparse_add_default:n {#1}
- \__xparse_add_grabber:N G
- \__xparse_prepare_signature:N
- }
-\cs_new_protected:Npn \__xparse_add_type_l:w
- {
- \__xparse_flush_m_args:
- \__xparse_add_default:
- \__xparse_add_grabber:N l
- \__xparse_prepare_signature:N
- }
\cs_new_protected:Npn \__xparse_add_type_m:w
{
\__xparse_add_default:
@@ -817,14 +788,6 @@
\tl_put_right:Nn \l__xparse_signature_tl {#1}
\__xparse_prepare_signature:N
}
-\cs_new_protected:Npn \__xparse_add_type_u:w #1
- {
- \__xparse_flush_m_args:
- \__xparse_add_default:
- \__xparse_add_grabber:N u
- \tl_put_right:Nn \l__xparse_signature_tl { {#1} }
- \__xparse_prepare_signature:N
- }
\cs_new_protected:Npn \__xparse_add_type_v:w
{
\__xparse_flush_m_args:
@@ -946,8 +909,6 @@
\tl_put_right:Nx \l__xparse_tmpb_tl
{ \exp_not:o \l__xparse_tmpa_tl \exp_not:N #1 }
}
-\cs_new_protected:Npn \__xparse_add_expandable_type_l:w
- { \__xparse_add_expandable_type_u:w ## }
\cs_new_protected:Npn \__xparse_add_expandable_type_m:w
{
\__xparse_add_default:
@@ -968,18 +929,6 @@
}
\__xparse_prepare_signature:N
}
-\cs_new_protected:Npn \__xparse_add_expandable_type_u:w #1
- {
- \__xparse_add_default:
- \bool_if:NTF \l__xparse_long_bool
- { \cs_set:cpn }
- { \cs_set_nopar:cpn }
- { \l__xparse_expandable_aux_name_tl } ##1 \q__xparse ##2 ##3 ##4 #1
- { ##1 {##4} \q__xparse ##2 ##3 }
- \__xparse_add_expandable_grabber:nn { u }
- { \exp_not:c { \l__xparse_expandable_aux_name_tl } }
- \__xparse_prepare_signature:N
- }
\cs_new_protected:Npn \__xparse_add_expandable_grabber:nn #1#2
{
\tl_put_right:Nx \l__xparse_signature_tl
@@ -1201,46 +1150,6 @@
}
}
\cs_new_protected:Npn \__xparse_grab_E_finalise: { }
-\cs_new_protected:Npn \__xparse_grab_G:w #1 \__xparse_run_code:
- {
- \__xparse_grab_G_aux:nNN {#1} \cs_set_protected_nopar:Npn
- \__xparse_peek_nonspace:NTF
- }
-\cs_new_protected:Npn \__xparse_grab_G_long:w #1 \__xparse_run_code:
- {
- \__xparse_grab_G_aux:nNN {#1} \cs_set_protected:Npn
- \__xparse_peek_nonspace:NTF
- }
-\cs_new_protected:Npn \__xparse_grab_G_obey_spaces:w #1 \__xparse_run_code:
- {
- \__xparse_grab_G_aux:nNN {#1} \cs_set_protected_nopar:Npn
- \peek_meaning:NTF
- }
-\cs_new_protected:Npn \__xparse_grab_G_long_obey_spaces:w #1 \__xparse_run_code:
- {
- \__xparse_grab_G_aux:nNN {#1} \cs_set_protected:Npn
- \peek_meaning:NTF
- }
-\cs_new_protected:Npn \__xparse_grab_G_aux:nNN #1#2#3
- {
- \tl_set:Nn \l__xparse_signature_tl {#1}
- \exp_after:wN #2 \l__xparse_fn_tl ##1
- { \__xparse_add_arg:n {##1} }
- #3 \c_group_begin_token
- { \l__xparse_fn_tl }
- { \__xparse_add_arg:o \c_novalue_tl }
- }
-\cs_new_protected:Npn \__xparse_grab_l:w #1 \__xparse_run_code:
- { \__xparse_grab_l_aux:nN {#1} \cs_set_protected_nopar:Npn }
-\cs_new_protected:Npn \__xparse_grab_l_long:w #1 \__xparse_run_code:
- { \__xparse_grab_l_aux:nN {#1} \cs_set_protected:Npn }
-\cs_new_protected:Npn \__xparse_grab_l_aux:nN #1#2
- {
- \tl_set:Nn \l__xparse_signature_tl {#1}
- \exp_after:wN #2 \l__xparse_fn_tl ##1##
- { \__xparse_add_arg:n {##1} }
- \l__xparse_fn_tl
- }
\cs_new_protected:Npn \__xparse_grab_m:w #1 \__xparse_run_code:
{
\tl_set:Nn \l__xparse_signature_tl {#1}
@@ -1345,17 +1254,6 @@
}
\l__xparse_fn_tl
}
-\cs_new_protected:Npn \__xparse_grab_u:w #1#2 \__xparse_run_code:
- { \__xparse_grab_u_aux:nnN {#1} {#2} \cs_set_protected_nopar:Npn }
-\cs_new_protected:Npn \__xparse_grab_u_long:w #1#2 \__xparse_run_code:
- { \__xparse_grab_u_aux:nnN {#1} {#2} \cs_set_protected:Npn }
-\cs_new_protected:Npn \__xparse_grab_u_aux:nnN #1#2#3
- {
- \tl_set:Nn \l__xparse_signature_tl {#2}
- \exp_after:wN #3 \l__xparse_fn_tl ##1 #1
- { \__xparse_add_arg:n {##1} }
- \l__xparse_fn_tl
- }
\tl_new:N \l__xparse_v_arg_tl
\cs_new_protected:Npn \__xparse_grab_v:w
{
@@ -1468,8 +1366,6 @@
}
\cs_new_protected:Npn \__xparse_grab_v_aux_catcodes:
{
- \cs_set_eq:NN \do \char_set_catcode_other:N
- \dospecials
\tex_endlinechar:D = `\^^M \scan_stop:
\bool_if:NTF \l__xparse_long_bool
{ \char_set_catcode_other:n { \tex_endlinechar:D } }
@@ -2143,6 +2039,13 @@
The~letter~'#2'~does~not~specify~a~known~argument~type.
\c__xparse_ignore_def_tl
}
+\__kernel_msg_new:nnnn { xparse } { xparse-argument-type }
+ { Deprecated~argument~type~'#2'~for~the~#1~requires~xparse. }
+ {
+ The~letter~'#2'~specifies~a~known~argument~type~that~requires~
+ the~xparse~package.
+ \c__xparse_ignore_def_tl
+ }
\__kernel_msg_new:nnn { xparse } { if-boolean }
{ Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
\__kernel_msg_new:nnnn { xparse } { loop-in-defaults }