diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3seq.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3seq.sty | 90 |
1 files changed, 33 insertions, 57 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty index 2df60faf409..758407cb40f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap} -\GetIdInfo$Id: l3seq.dtx 4581 2013-07-28 08:38:50Z joseph $ +\GetIdInfo$Id: l3seq.dtx 4623 2013-12-14 13:53:40Z bruno $ {L3 Sequences and stacks} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -58,7 +58,8 @@ } \tl_new:N \l__seq_internal_a_tl \tl_new:N \l__seq_internal_b_tl -\tl_const:Nn \c_empty_seq { \s__seq \s_obj_end } +\cs_new_eq:NN \__seq_tmp:w ? +\tl_const:Nn \c_empty_seq { \s__seq } \cs_new_protected:Npn \seq_new:N #1 { \__chk_if_free_cs:N #1 @@ -110,7 +111,7 @@ } \tl_set:Nx \l__seq_internal_a_tl { \l__seq_internal_a_tl } } - #1 #2 { \s__seq \l__seq_internal_a_tl \s_obj_end } + #1 #2 { \s__seq \l__seq_internal_a_tl } } \cs_new:Npn \__seq_set_split_auxi:w #1 \__seq_set_split_end: { @@ -123,11 +124,9 @@ \cs_generate_variant:Nn \seq_set_split:Nnn { NnV } \cs_generate_variant:Nn \seq_gset_split:Nnn { NnV } \cs_new_protected:Npn \seq_concat:NNN #1#2#3 - { \tl_set:Nf #1 { \exp_last_unbraced:NNo \__seq_concat:NN #2 #3 } } + { \tl_set:Nf #1 { \exp_after:wN \use_i:nn \exp_after:wN #2 #3 } } \cs_new_protected:Npn \seq_gconcat:NNN #1#2#3 - { \tl_gset:Nf #1 { \exp_last_unbraced:NNo \__seq_concat:NN #2 #3 } } -\cs_new:Npn \__seq_concat:NN #1#2 { \exp_after:wN \__seq_concat:w #1 } -\cs_new:Npn \__seq_concat:w #1 \s_obj_end {#1} + { \tl_gset:Nf #1 { \exp_after:wN \use_i:nn \exp_after:wN #2 #3 } } \cs_generate_variant:Nn \seq_concat:NNN { ccc } \cs_generate_variant:Nn \seq_gconcat:NNN { ccc } \prg_new_eq_conditional:NNn \seq_if_exist:N \cs_if_exist:N { TF , T , F , p } @@ -154,22 +153,9 @@ \cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , No , Nx } \cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , co , cx } \cs_new_protected:Npn \seq_put_right:Nn #1#2 - { - \tl_set:Nx #1 - { - \exp_after:wN \__seq_put_right_aux:w #1 - \exp_not:n { \__seq_item:n {#2} \s_obj_end } - } - } + { \tl_put_right:Nn #1 { \__seq_item:n {#2} } } \cs_new_protected:Npn \seq_gput_right:Nn #1#2 - { - \tl_gset:Nx #1 - { - \exp_after:wN \__seq_put_right_aux:w #1 - \exp_not:n { \__seq_item:n {#2} \s_obj_end } - } - } -\cs_new:Npn \__seq_put_right_aux:w #1 \s_obj_end { \exp_not:n {#1} } + { \tl_gput_right:Nn #1 { \__seq_item:n {#2} } } \cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , No , Nx } \cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , co , cx } \cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , No , Nx } @@ -299,17 +285,13 @@ \cs_generate_variant:Nn \seq_pop_left:NN { c } \cs_generate_variant:Nn \seq_gpop_left:NN { c } \cs_new_protected:Npn \seq_get_right:NN #1#2 - { \exp_after:wN \__seq_get_right_setup:wN #1 #2 } -\cs_new_protected:Npn \__seq_get_right_setup:wN \s__seq #1 \s_obj_end #2 { - \__seq_get_right_loop:nn - \q_no_value + \exp_after:wN \use_i_ii:nnn + \exp_after:wN \__seq_get_right_loop:nn + \exp_after:wN \q_no_value #1 - { - ?? - \tex_afterassignment:D \use_none:n - \tl_set:Nn #2 - } + { ?? \tl_set:Nn #2 } + { } { } } \cs_new_protected:Npn \__seq_get_right_loop:nn #1#2 { @@ -318,26 +300,25 @@ } \cs_generate_variant:Nn \seq_get_right:NN { c } \cs_new_protected_nopar:Npn \seq_pop_right:NN - { \__seq_pop:NNNN \__seq_pop_right_aux:NNN \tl_set:Nx } + { \__seq_pop:NNNN \__seq_pop_right:NNN \tl_set:Nx } \cs_new_protected_nopar:Npn \seq_gpop_right:NN - { \__seq_pop:NNNN \__seq_pop_right_aux:NNN \tl_gset:Nx } -\cs_new_protected:Npn \__seq_pop_right_aux:NNN #1#2#3 + { \__seq_pop:NNNN \__seq_pop_right:NNN \tl_gset:Nx } +\cs_new_protected:Npn \__seq_pop_right:NNN #1#2#3 { - \cs_set_eq:NN \seq_tmp:w \__seq_item:n + \cs_set_eq:NN \__seq_tmp:w \__seq_item:n \cs_set_eq:NN \__seq_item:n \scan_stop: #1 #2 { \if_false: } \fi: \s__seq - \exp_after:wN \__seq_pop_right_setup:w + \exp_after:wN \use_i:nnn + \exp_after:wN \__seq_pop_right_loop:nn #2 { - \s_obj_end \if_false: { \fi: } - \tex_afterassignment:D \use_none:n + \if_false: { \fi: } \tl_set:Nx #3 } - \cs_set_eq:NN \__seq_item:n \seq_tmp:w + { } \use_none:nn + \cs_set_eq:NN \__seq_item:n \__seq_tmp:w } -\cs_new:Npn \__seq_pop_right_setup:w \s__seq #1 \s_obj_end - { \exp_after:wN \__seq_pop_right_loop:nn \use_none:n #1 } \cs_new:Npn \__seq_pop_right_loop:nn #1#2 { #2 { \exp_not:n {#1} } @@ -360,9 +341,9 @@ \prg_new_protected_conditional:Npnn \seq_gpop_left:NN #1#2 { T , F , TF } { \__seq_pop_TF:NNNN \__seq_pop_left:NNN \tl_gset:Nn #1 #2 } \prg_new_protected_conditional:Npnn \seq_pop_right:NN #1#2 { T , F , TF } - { \__seq_pop_TF:NNNN \__seq_pop_right_aux:NNN \tl_set:Nx #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \tl_set:Nx #1 #2 } \prg_new_protected_conditional:Npnn \seq_gpop_right:NN #1#2 { T , F , TF } - { \__seq_pop_TF:NNNN \__seq_pop_right_aux:NNN \tl_gset:Nx #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \tl_gset:Nx #1 #2 } \cs_generate_variant:Nn \seq_pop_left:NNT { c } \cs_generate_variant:Nn \seq_pop_left:NNF { c } \cs_generate_variant:Nn \seq_pop_left:NNTF { c } @@ -380,10 +361,12 @@ \cs_new_nopar:Npn \seq_map_break:n { \__prg_map_break:Nn \seq_map_break: } \cs_new:Npn \seq_map_function:NN #1#2 - { \exp_after:wN \__seq_map_function:wN #1 #2 } -\cs_new:Npn \__seq_map_function:wN \s__seq #1 \s_obj_end #2 { - \__seq_map_function:NNn #2 #1 { ? \seq_map_break: } { } + \exp_after:wN \use_i_ii:nnn + \exp_after:wN \__seq_map_function:NNn + \exp_after:wN #2 + #1 + { ? \seq_map_break: } { } \__prg_break_point:Nn \seq_map_break: { } } \cs_new:Npn \__seq_map_function:NNn #1#2#3 @@ -451,12 +434,8 @@ \int_case:nnF { \seq_count:N #1 } { { 0 } { } - { 1 } - { - \exp_after:wN \__seq_use:wnwnn #1 - \__seq_item:n { } \s_obj_end { } - } - { 2 } { \exp_after:wN \__seq_use:wnwnn #1 {#2} } + { 1 } { \exp_after:wN \__seq_use:NNnNnn #1 ? { } { } } + { 2 } { \exp_after:wN \__seq_use:NNnNnn #1 {#2} } } { \exp_after:wN \__seq_use_setup:w #1 \__seq_item:n @@ -468,11 +447,8 @@ { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#1} } } \cs_generate_variant:Nn \seq_use:Nnnn { c } -\cs_new:Npn \__seq_use:wnwnn - #1 \__seq_item:n #2#3 \__seq_item:n #4#5 \s_obj_end #6 - { \exp_not:n { #2 #6 #4 } } -\cs_new:Npn \__seq_use_setup:w \s__seq #1 \s_obj_end - { \__seq_use:nwwwwnwn { } #1 } +\cs_new:Npn \__seq_use:NNnNnn #1#2#3#4#5#6 { \exp_not:n { #3 #6 #5 } } +\cs_new:Npn \__seq_use_setup:w \s__seq { \__seq_use:nwwwwnwn { } } \cs_new:Npn \__seq_use:nwwwwnwn #1 \__seq_item:n #2 \__seq_item:n #3 \__seq_item:n #4#5 \q_mark #6#7 \q_stop #8 |