diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3/l3toks.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3toks.sty | 220 |
1 files changed, 105 insertions, 115 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty index ea18f851ee0..79de834fd71 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3toks.dtx Copyright (C) 1990-2006 LaTeX3 project +%% File: l3toks.dtx Copyright (C) 1990-2009 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 @@ -33,7 +33,7 @@ %% %% The development version of the bundle can be found at %% -%% http://www.latex-project.org/cgi-bin/cvsweb.cgi/ +%% http://www.latex-project.org/svnroot/experimental/trunk/ %% %% for those people who are interested. %% @@ -48,128 +48,118 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3toks.dtx 728 2008-01-01 16:11:58Z morten $ +\GetIdInfo$Id: l3toks.dtx 1362 2009-05-28 20:19:21Z joseph $ {L3 Experimental Token Registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} -\RequirePackage{l3expan}\par -\let:NN \toks_new:N \newtoks % nick from LaTeX for the moment -\def_new:Npn \toks_new:c {\exp_args:Nc\toks_new:N} -\def_new:Npn \toks_clear:N #1{#1\c_empty_toks -} -\def_new:Npn \toks_gclear:N { - \pref_global:D - \toks_clear:N} -\let_new:NN \toks_use:N \the_internal:D -\def_new:Npn \toks_use:c {\exp_args:Nc\toks_use:N} -\def_new:Npn \toks_use_clear:N#1{ - \exp_after:NN - \toks_clear:N - \exp_after:NN - #1 - \toks_use:N#1} -\def_new:Npn \toks_use_gclear:N{ - \pref_global:D - \toks_use_clear:N} -\def_new:Npn \toks_put_left:Nn #1{ - \exp_after:NN\toks_put_left_aux:w\exp_after:NN\q_mark - \toks_use:N #1\q_stop #1} -\def_new:Npn \toks_put_left:No {\exp_args:NNo \toks_put_left:Nn} -\def_new:Npn \toks_gput_left:Nn { - \pref_global:D - \toks_put_left:Nn} -\def_new:Npn \toks_gput_left:Nx {\exp_args:NNx \toks_gput_left:Nn} -\def_long_new:Npn \toks_put_left_aux:w #1\q_stop #2#3{ - #2\exp_after:NN{\use_arg_i:nn{#3}#1} -} -\def_long_new:Npn \toks_put_right:Nn #1#2{#1\exp_after:NN{\toks_use:N #1#2} -} -\def_new:Npn \toks_gput_right:Nn { - \pref_global:D - \toks_put_right:Nn} -\def_long_new:Npn\toks_put_right:No#1#2{#1\exp_after:NN\exp_after:NN -\exp_after:NN{\exp_after:NN\toks_use:N\exp_after:NN #1#2}} -\def_long_new:Npn\toks_put_right:Nd#1#2{ - \exp_after:NN\toks_put_right:No\exp_after:NN#1\exp_after:NN{#2}} -\def_long_new:Npn \toks_put_right:Nf #1#2{ - #1\exp_after:NN\exp_after:NN\exp_after:NN{ - \exp_after:NN\toks_use:N\exp_after:NN #1\int_to_roman:w -`0#2}} -\def_new:Npn \toks_put_right:Nx {\exp_args:NNx \toks_put_right:Nn } -\def_new:Npn \toks_gput_right:No {\exp_args:NNo\toks_gput_right:Nn} -\def_new:Npn \toks_gput_right:Nx {\exp_args:NNx\toks_gput_right:Nn} - \let_new:NN \toks_set:Nn\use_noop: - \def_long_new:Npn \toks_set:No#1#2{#1\exp_after:NN{#2}} - \def_long_new:Npn \toks_set:Nd#1#2{ - #1\exp_after:NN\exp_after:NN\exp_after:NN{#2}} -\def_new:Npn \toks_set:Nx {\exp_args:NNx \toks_set:Nn} -\def_long_new:Npn\toks_set:Nf #1#2{ - #1\exp_after:NN{\int_to_roman:w -`0#2}} -\def_new:Npn \toks_set:cf {\exp_args:Nc\toks_set:Nf} -\def_new:Npn \toks_set:cn {\exp_args:Nc\toks_set:Nn} -\def_new:Npn \toks_set:co {\exp_args:Nc\toks_set:No} -\def_new:Npn \toks_set:cx {\exp_args:Nc\toks_set:Nx} - \let_new:NN \toks_gset:Nn\pref_global:D -\def_new:Npn \toks_gset:No {\exp_args:NNo \toks_gset:Nn} -\def_new:Npn \toks_gset:Nx {\exp_args:NNx \toks_gset:Nn} -\def_new:Npn \toks_gset:cn {\exp_args:Nc \toks_gset:Nn} -\def_new:Npn \toks_gset:co {\exp_args:Nc \toks_gset:No} -\def_new:Npn \toks_gset:cx {\exp_args:Nc \toks_gset:Nx} - \let_new:NN \toks_set_eq:NN \use_noop: - \let_new:NN \toks_gset_eq:NN \pref_global:D -\def_new:Npn \toks_set_eq:Nc {\exp_args:NNc\toks_set_eq:NN} -\def_new:Npn \toks_set_eq:cN {\exp_args:Nc\toks_set_eq:NN} -\def_new:Npn \toks_set_eq:cc {\exp_args:Ncc\toks_set_eq:NN} -\def_new:Npn \toks_gset_eq:Nc {\exp_args:NNc\toks_gset_eq:NN} -\def_new:Npn \toks_gset_eq:cN {\exp_args:Nc\toks_gset_eq:NN} -\def_new:Npn \toks_gset_eq:cc {\exp_args:Ncc\toks_gset_eq:NN} -\def_new:Npn\toks_if_empty_p:N#1{ - \if:w \tlist_if_empty_p:o{\toks_use:N #1} - \c_true - \else: - \c_false - \fi: -} -\def_test_function_new:npn{toks_if_empty:N}#1{\if:w \toks_if_empty_p:N #1} -\def_new:Npn\toks_if_empty:cTF{\exp_args:Nc\toks_if_empty:NTF} -\def_new:Npn\toks_if_empty:cT{\exp_args:Nc\toks_if_empty:NT} -\def_new:Npn\toks_if_empty:cF{\exp_args:Nc\toks_if_empty:NF} -\def_new:NNn \toks_if_eq:NNTF 2 { - \tlist_if_eq:xxTF{\toks_use:N #1}{\toks_use:N #2} -} -\def_new:NNn \toks_if_eq:NNT 2 { - \tlist_if_eq:xxT{\toks_use:N #1}{\toks_use:N #2} -} -\def_new:NNn \toks_if_eq:NNF 2 { - \tlist_if_eq:xxF{\toks_use:N #1}{\toks_use:N #2} -} -\def_new:Npn \toks_if_eq:NcTF {\exp_args:NNc \toks_if_eq:NNTF} -\def_new:Npn \toks_if_eq:NcT {\exp_args:NNc \toks_if_eq:NNT} -\def_new:Npn \toks_if_eq:NcF {\exp_args:NNc \toks_if_eq:NNF} -\def_new:Npn \toks_if_eq:cNTF {\exp_args:Nc \toks_if_eq:NNTF} -\def_new:Npn \toks_if_eq:cNT {\exp_args:Nc \toks_if_eq:NNT} -\def_new:Npn \toks_if_eq:cNF {\exp_args:Nc \toks_if_eq:NNF} -\def_new:Npn \toks_if_eq:ccTF {\exp_args:Ncc \toks_if_eq:NNTF} -\def_new:Npn \toks_if_eq:ccT {\exp_args:Ncc \toks_if_eq:NNT} -\def_new:Npn \toks_if_eq:ccF {\exp_args:Ncc \toks_if_eq:NNF} -\def_new:NNn \toks_if_eq_p:NN 2 { - \tlist_if_eq_p:xx {\toks_use:N #1} {\toks_use:N #2} -} -\def_new:Npn \toks_if_eq_p:cN {\exp_args:Nc \toks_if_eq_p:NN} -\def_new:Npn \toks_if_eq_p:Nc {\exp_args:NNc \toks_if_eq_p:NN} -\def_new:Npn \toks_if_eq_p:cc {\exp_args:Ncc \toks_if_eq_p:NN} -\tex_toksdef:D \l_tmpa_toks = 255 +\package_check_loaded_expl: +\cs_set_eq:NN \toks_new:N \newtoks % nick from LaTeX for the moment +\cs_generate_variant:Nn \toks_new:N {c} +\cs_new_eq:NN \toks_use:N \tex_the:D +\cs_generate_variant:Nn \toks_use:N {c} +\cs_new_eq:NN \toks_set:Nn \prg_do_nothing: +\cs_new:Npn \toks_set:NV #1#2 { + #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:N #2 } +} +\cs_new:Npn \toks_set:Nv #1#2 { + #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:c {#2} } +} +\cs_new:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} } +\cs_new:Npn \toks_set:Nd #1#2 { + #1 \exp_after:wN \exp_after:wN \exp_after:wN {#2} +} +\cs_new:Npn \toks_set:Nf #1#2 { + #1 \exp_after:wN { \int_to_roman:w -`0#2 } +} +\cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cd,cf} +\cs_new_eq:NN \toks_gset:Nn \pref_global:D +\cs_generate_variant:Nn \toks_gset:Nn {NV,No,Nx,cn,cV,co,cx} +\cs_new_eq:NN \toks_set_eq:NN \prg_do_nothing: +\cs_new_eq:NN \toks_gset_eq:NN \pref_global:D +\cs_generate_variant:Nn \toks_set_eq:NN {Nc,cN,cc} +\cs_generate_variant:Nn \toks_gset_eq:NN {Nc,cN,cc} +\cs_new_nopar:Npn \toks_clear:N #1 { + #1\c_empty_toks +} +\cs_new_nopar:Npn \toks_gclear:N { + \pref_global:D + \toks_clear:N +} +\cs_generate_variant:Nn \toks_clear:N {c} +\cs_generate_variant:Nn \toks_gclear:N {c} +\cs_new_nopar:Npn \toks_use_clear:N #1 { + \exp_last_unbraced:NNV \toks_clear:N #1 #1 +} +\cs_new_nopar:Npn \toks_use_gclear:N { + \pref_global:D + \toks_use_clear:N +} +\cs_generate_variant:Nn \toks_use_clear:N {c} +\cs_generate_variant:Nn \toks_use_gclear:N {c} +\cs_new_eq:NN \toks_show:N \tex_showthe:D +\cs_generate_variant:Nn \toks_show:N {c} +\cs_new_nopar:Npn \toks_put_left:Nn #1 { + \exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_mark + \toks_use:N #1 \q_stop #1 +} +\cs_generate_variant:Nn \toks_put_left:Nn {NV,No,Nx,cn,co,cV} +\cs_new_nopar:Npn \toks_gput_left:Nn { + \pref_global:D + \toks_put_left:Nn +} +\cs_generate_variant:Nn \toks_gput_left:Nn {NV,No,Nx,cn,cV,co} +\cs_new:Npn \toks_put_left_aux:w #1\q_stop #2#3 { + #2 \exp_after:wN { \use_i:nn {#3} #1 } +} +\cs_new:Npn \toks_put_right:Nn #1#2 { + #1 \exp_after:wN { \toks_use:N #1 #2 } +} +\cs_new_nopar:Npn \toks_gput_right:Nn { + \pref_global:D + \toks_put_right:Nn +} +\cs_new:Npn \toks_put_right:NV #1#2 { + #1 \exp_after:wN \exp_after:wN \exp_after:wN { + \exp_after:wN \toks_use:N \exp_after:wN #1 + \int_to_roman:w -`0 \exp_eval_register:N #2 + } +} +\cs_new:Npn \toks_put_right:No #1#2 { + #1 \exp_after:wN \exp_after:wN \exp_after:wN { + \exp_after:wN \toks_use:N \exp_after:wN #1 #2 + } +} +\cs_generate_variant:Nn \toks_put_right:Nn {Nx,cn,cV,co} +\cs_generate_variant:Nn \toks_gput_right:Nn {NV,No,Nx,cn,cV,co} +\cs_new:Npn \toks_put_right:Nf #1#2 { + #1 \exp_after:wN \exp_after:wN \exp_after:wN { + \exp_after:wN \toks_use:N \exp_after:wN #1 \int_to_roman:w -`0#2 + } +} +\prg_new_conditional:Nnn \toks_if_empty:N {p,TF,T,F} { + \tl_if_empty:VTF #1 {\prg_return_true:} {\prg_return_false:} +} +\cs_generate_variant:Nn \toks_if_empty_p:N {c} +\cs_generate_variant:Nn \toks_if_empty:NTF {c} +\cs_generate_variant:Nn \toks_if_empty:NT {c} +\cs_generate_variant:Nn \toks_if_empty:NF {c} +\prg_new_conditional:Nnn \toks_if_eq:NN {p,TF,T,F} { + \tl_if_eq:xxTF {\toks_use:N #1} {\toks_use:N #2} + {\prg_return_true:} {\prg_return_false:} +} +\cs_generate_variant:Nn \toks_if_eq_p:NN {Nc,c,cc} +\cs_generate_variant:Nn \toks_if_eq:NNTF {Nc,c,cc} +\cs_generate_variant:Nn \toks_if_eq:NNT {Nc,c,cc} +\cs_generate_variant:Nn \toks_if_eq:NNF {Nc,c,cc} +\tex_toksdef:D \l_tmpa_toks = 255\scan_stop: \toks_new:N \l_tmpb_toks \toks_new:N \l_tmpc_toks \toks_new:N \g_tmpa_toks \toks_new:N \g_tmpb_toks \toks_new:N \g_tmpc_toks \toks_new:N \c_empty_toks -\def_new:Npn \toks_remove_extra_brace_group:N #1{ - \exp_after:NN \toks_remove_extra_brace_group_aux:NNw - \exp_after:NN \toks_set:Nn \exp_after:NN #1 - \toks_use:N#1\q_nil -} -\def_long_new:Npn\toks_remove_extra_brace_group_aux:NNw #1#2#3\q_nil{#1#2{#3}} +\toks_new:N \l_tl_replace_toks + %% %% %% End of file `l3toks.sty'. |